From 6ea5da75a7d9faf2182343a8141fce8d55329b93 Mon Sep 17 00:00:00 2001 From: Andrii Tserkovnyi Date: Thu, 2 Jan 2025 12:52:32 +0200 Subject: [PATCH] its --- .../release-notes-202212.0.md | 2 +- _data/sidebars/dg_dev_sidebar.yml | 2 + .../develop-an-app/app-manifest.md | 2 +- .../develop-an-app/sync-api.md | 2 +- .../configuring-debugging-in-devvm.md | 2 +- ...ing-spryker-after-installing-with-devvm.md | 2 +- .../201811.0/catalog-schema.md | 12 +-- .../201811.0/sales-schema.md | 2 +- .../201903.0/catalog-schema.md | 12 +-- .../201903.0/sales-schema.md | 2 +- .../201907.0/catalog-schema.md | 12 +-- .../201907.0/sales-schema.md | 2 +- .../202001.0/catalog-schema.md | 12 +-- .../202001.0/sales-schema.md | 2 +- .../202005.0/catalog-schema.md | 12 +-- .../202005.0/sales-schema.md | 2 +- .../202009.0/catalog-schema.md | 12 +-- .../202009.0/sales-schema.md | 2 +- .../202108.0/catalog-schema.md | 12 +-- .../202108.0/sales-schema.md | 2 +- _drafts/drafts-dev/roadmap.md | 2 +- _drafts/for-commerce-quest/faq.md | 4 +- .../mvp-project-structuring.md | 6 +- ...astructure-for-publish-and-sync-workers.md | 2 +- .../202311.0/items-response-attributes.md | 2 +- .../202311.0/orders-response-attributes.md | 4 +- .../202311.0/shipments-response-attributes.md | 4 +- .../202404.0/items-response-attributes.md | 2 +- .../202404.0/orders-response-attributes.md | 4 +- ...nagement-attributes-response-attributes.md | 2 +- ...t-measurement-units-response-attributes.md | 2 +- .../sales-units-response-attributes.md | 6 +- .../202404.0/shipments-response-attributes.md | 4 +- .../202410.0/items-response-attributes.md | 2 +- .../202410.0/orders-response-attributes.md | 4 +- ...nagement-attributes-response-attributes.md | 2 +- ...t-measurement-units-response-attributes.md | 2 +- .../sales-units-response-attributes.md | 6 +- .../202410.0/shipments-response-attributes.md | 4 +- .../202307.0/enable-gift-cards.md | 2 +- ...l-dynamic-multistore-the-prices-feature.md | 2 +- .../202307.0/install-dynamic-multistore.md | 2 +- .../install-the-multiple-carts-glue-api.md | 2 +- .../install-the-navigation-glue-api.md | 2 +- .../install-the-agent-assist-feature.md | 2 +- .../install-the-approval-process-feature.md | 4 +- ...l-the-availability-notification-feature.md | 2 +- .../install-the-category-image-feature.md | 2 +- ...install-the-category-management-feature.md | 2 +- .../install-the-company-account-feature.md | 4 +- ...install-the-configurable-bundle-feature.md | 2 +- .../install-the-customer-access-feature.md | 2 +- ...ntinued-products-product-labels-feature.md | 2 +- .../install-the-file-manager-feature.md | 2 +- ...tall-the-merchant-custom-prices-feature.md | 2 +- .../install-the-multiple-carts-feature.md | 4 +- .../install-the-packaging-units-feature.md | 2 +- .../install-the-product-bundles-feature.md | 2 +- .../install-the-product-category-feature.md | 2 +- ...duct-images-configurable-bundle-feature.md | 2 +- ...ll-the-product-measurement-unit-feature.md | 8 +- .../install-the-product-sets-feature.md | 2 +- ...tation-process-approval-process-feature.md | 2 +- .../install-the-shopping-lists-feature.md | 2 +- ...ll-the-spryker-core-back-office-feature.md | 4 +- .../install-the-spryker-core-feature.md | 2 +- ...arketplace-inventory-management-feature.md | 2 +- ...nstall-the-marketplace-merchant-feature.md | 8 +- ...he-marketplace-order-management-feature.md | 2 +- ...-marketplace-product-offer-cart-feature.md | 2 +- ...the-marketplace-product-options-feature.md | 2 +- ...e-marketplace-return-management-feature.md | 2 +- ...tall-the-merchant-opening-hours-feature.md | 2 +- .../202311.0/enable-gift-cards.md | 2 +- ...l-dynamic-multistore-the-prices-feature.md | 2 +- .../202311.0/install-dynamic-multistore.md | 2 +- .../install-the-multiple-carts-glue-api.md | 2 +- .../install-the-navigation-glue-api.md | 2 +- .../install-the-agent-assist-feature.md | 2 +- .../install-the-approval-process-feature.md | 4 +- ...l-the-availability-notification-feature.md | 2 +- .../install-the-category-image-feature.md | 2 +- ...install-the-category-management-feature.md | 2 +- .../install-the-company-account-feature.md | 4 +- ...install-the-configurable-bundle-feature.md | 2 +- .../install-the-customer-access-feature.md | 2 +- ...ntinued-products-product-labels-feature.md | 2 +- ...tall-the-merchant-custom-prices-feature.md | 2 +- .../install-the-multiple-carts-feature.md | 4 +- .../install-the-packaging-units-feature.md | 2 +- .../install-the-product-bundles-feature.md | 2 +- .../install-the-product-category-feature.md | 2 +- ...duct-images-configurable-bundle-feature.md | 2 +- ...ll-the-product-measurement-unit-feature.md | 8 +- ...he-product-offer-service-points-feature.md | 2 +- ...tall-the-product-offer-shipment-feature.md | 2 +- .../install-the-product-sets-feature.md | 2 +- ...tation-process-approval-process-feature.md | 2 +- .../install-the-service-points-feature.md | 6 +- .../202311.0/install-the-shipment-feature.md | 2 +- .../install-the-shopping-lists-feature.md | 2 +- ...ll-the-spryker-core-back-office-feature.md | 4 +- .../install-the-spryker-core-feature.md | 2 +- ...arketplace-inventory-management-feature.md | 2 +- ...nstall-the-marketplace-merchant-feature.md | 8 +- ...he-marketplace-order-management-feature.md | 2 +- ...-marketplace-product-offer-cart-feature.md | 2 +- ...the-marketplace-product-options-feature.md | 2 +- ...e-marketplace-return-management-feature.md | 2 +- ...tall-the-merchant-opening-hours-feature.md | 2 +- ...l-the-warehouse-picking-product-feature.md | 2 +- .../202404.0/enable-gift-cards.md | 2 +- ...l-dynamic-multistore-the-prices-feature.md | 2 +- .../202404.0/install-dynamic-multistore.md | 2 +- .../install-the-multiple-carts-glue-api.md | 2 +- .../install-the-navigation-glue-api.md | 2 +- .../install-the-agent-assist-feature.md | 2 +- .../install-the-approval-process-feature.md | 4 +- ...l-the-availability-notification-feature.md | 2 +- .../install-the-category-image-feature.md | 2 +- ...install-the-category-management-feature.md | 2 +- .../install-the-company-account-feature.md | 4 +- ...install-the-configurable-bundle-feature.md | 2 +- .../install-the-customer-access-feature.md | 2 +- ...ntinued-products-product-labels-feature.md | 2 +- ...-merchant-b2b-contract-requests-feature.md | 4 +- ...tall-the-merchant-custom-prices-feature.md | 2 +- .../install-the-multiple-carts-feature.md | 4 +- .../install-the-packaging-units-feature.md | 2 +- .../install-the-product-bundles-feature.md | 2 +- .../install-the-product-category-feature.md | 2 +- ...duct-images-configurable-bundle-feature.md | 2 +- ...ll-the-product-measurement-unit-feature.md | 8 +- ...he-product-offer-service-points-feature.md | 2 +- ...tall-the-product-offer-shipment-feature.md | 2 +- .../install-the-product-sets-feature.md | 2 +- ...tation-process-approval-process-feature.md | 2 +- .../install-the-service-points-feature.md | 6 +- .../202404.0/install-the-shipment-feature.md | 2 +- .../install-the-shopping-lists-feature.md | 2 +- ...ll-the-spryker-core-back-office-feature.md | 4 +- .../install-the-spryker-core-feature.md | 2 +- ...arketplace-inventory-management-feature.md | 2 +- ...nstall-the-marketplace-merchant-feature.md | 8 +- ...he-marketplace-order-management-feature.md | 2 +- ...-marketplace-product-offer-cart-feature.md | 2 +- ...the-marketplace-product-options-feature.md | 2 +- ...e-marketplace-return-management-feature.md | 2 +- ...tall-the-merchant-opening-hours-feature.md | 2 +- ...l-the-warehouse-picking-product-feature.md | 2 +- .../202410.0/enable-gift-cards.md | 2 +- ...l-dynamic-multistore-the-prices-feature.md | 2 +- .../202410.0/install-dynamic-multistore.md | 2 +- .../install-the-multiple-carts-glue-api.md | 2 +- .../install-the-navigation-glue-api.md | 2 +- .../install-the-approval-process-feature.md | 4 +- ...l-the-availability-notification-feature.md | 2 +- .../install-the-category-image-feature.md | 2 +- ...install-the-category-management-feature.md | 2 +- .../install-the-company-account-feature.md | 4 +- ...install-the-configurable-bundle-feature.md | 2 +- .../install-the-customer-access-feature.md | 2 +- ...ntinued-products-product-labels-feature.md | 2 +- ...-merchant-b2b-contract-requests-feature.md | 4 +- ...tall-the-merchant-custom-prices-feature.md | 2 +- .../install-the-packaging-units-feature.md | 2 +- .../install-the-product-bundles-feature.md | 2 +- .../install-the-product-category-feature.md | 2 +- .../install-the-product-comparison-feature.md | 2 +- ...duct-images-configurable-bundle-feature.md | 2 +- ...ll-the-product-measurement-unit-feature.md | 8 +- ...he-product-offer-service-points-feature.md | 2 +- ...tall-the-product-offer-shipment-feature.md | 2 +- .../install-the-product-sets-feature.md | 2 +- ...tation-process-approval-process-feature.md | 2 +- .../install-the-service-points-feature.md | 6 +- .../202410.0/install-the-shipment-feature.md | 2 +- .../install-the-shopping-lists-feature.md | 2 +- ...arketplace-inventory-management-feature.md | 2 +- ...nstall-the-marketplace-merchant-feature.md | 8 +- ...-marketplace-product-offer-cart-feature.md | 2 +- ...the-marketplace-product-options-feature.md | 2 +- ...e-marketplace-return-management-feature.md | 2 +- ...tall-the-merchant-opening-hours-feature.md | 2 +- ...l-the-warehouse-picking-product-feature.md | 2 +- ...the-marketplace-shopping-lists-glue-api.md | 2 +- ...the-marketplace-shopping-lists-glue-api.md | 2 +- ...the-marketplace-shopping-lists-glue-api.md | 2 +- .../upgrade-the-calculation-module.md | 2 +- .../upgrade-the-categorypagesearch-module.md | 2 +- .../upgrade-the-collector-module.md | 2 +- .../upgrade-the-companyuser-module.md | 2 +- ...de-the-environment-configuration-module.md | 4 +- .../upgrade-modules/upgrade-the-oms-module.md | 2 +- .../upgrade-the-product-module.md | 2 +- ...upgrade-the-productconfiguration-module.md | 2 +- .../upgrade-the-productlistgui-module.md | 2 +- .../upgrade-the-productoption-module.md | 2 +- .../upgrade-the-search-module.md | 2 +- .../upgrade-the-transfer-module.md | 2 +- _templates/best-practices-file-template.md | 2 +- .../feature-installation-guide-template.md | 12 +-- _templates/syntax-and-formatting-rules.md | 2 +- docs/about/all/about-spryker.md | 2 +- .../edit-the-docs-locally.md | 2 +- .../merge-docs-pull-requests.md | 2 +- docs/about/all/master-suite.md | 2 +- .../security-release-notes-202302.0.md | 2 +- .../marketplace-concept.md | 2 +- .../all/support/gdpr-compliance-guidelines.md | 2 +- ...getting-the-most-out-of-spryker-support.md | 2 +- .../all/support/how-spryker-support-works.md | 2 +- .../all/support/prioritzing-support-cases.md | 4 +- .../project-level-and-core-level-fixes.md | 2 +- .../all/support/support-case-escalations.md | 4 +- .../all/support/support-ticket-statuses.md | 2 +- docs/about/all/support/understanding-slas.md | 6 +- .../add-variables-in-the-parameter-store.md | 2 +- .../best-practises-jenkins-stability.md | 2 +- .../jenkins-operational-best-practices.md | 4 +- .../deployment-in-states.md | 2 +- .../deployment-pipelines.md | 2 +- docs/ca/dev/environment-provisioning.md | 2 +- docs/ca/dev/environment-scaling.md | 2 +- ...tting-started-with-cloud-administration.md | 2 +- .../multistore-setup-options.md | 6 +- ...ormance-testing-in-staging-enivronments.md | 2 +- ...me-with-a-third-party-dns-zone-provider.md | 2 +- ...t-up-a-custom-domain-name-with-route-53.md | 2 +- .../setting-up-a-custom-ssl-certificate.md | 2 +- .../tutorial-troubleshooting-403-error.md | 2 +- ...ial-troubleshooting-a-failed-deployment.md | 2 +- .../developing-with-spryker-code-upgrader.md | 2 +- ...are-a-project-for-spryker-code-upgrader.md | 2 +- ...p-extension-is-missing-from-your-system.md | 2 +- docs/dg/dev/acp/acp-security-assessment.md | 4 +- .../architecture/architectural-convention.md | 2 +- .../dev/architecture/conceptual-overview.md | 2 +- ...oning-major-vs.-minor-vs.-patch-release.md | 4 +- .../dev/architecture/programming-concepts.md | 6 +- .../dev/backend-development/client/client.md | 2 +- ...-configure-redis-as-a-key-value-storage.md | 4 +- .../console-commands/console-commands.md | 2 +- .../cronjobs/optimizing-jenkins-execution.md | 14 ++-- ...hout-p&s-and-data-importers-refactoring.md | 10 +-- .../configuration-management.md | 6 +- .../data-ingestion/spryker-link-middleware.md | 2 +- .../replace-module-dependencies.md | 2 +- .../data-publishing/add-publish-events.md | 2 +- .../bypass-the-key-value-storage.md | 2 +- ...e-data-with-publish-and-synchronization.md | 2 +- .../implement-publish-and-synchronization.md | 8 +- ...ion-behavior-enabling-multiple-mappings.md | 2 +- .../extend-the-core.md | 2 +- .../backend-development/factory/factory.md | 2 +- .../get-an-overview-of-the-used-plugins.md | 2 +- .../zed/business-layer/custom-exceptions.md | 2 +- .../facade/a-facade-implementation.md | 2 +- .../facade/design-by-contract-dbc-facade.md | 2 +- .../persistence-layer/database-overview.md | 2 +- .../database-schema-definition.md | 4 +- .../zed/persistence-layer/entity-manager.md | 2 +- .../query-objects-creation-and-usage.md | 2 +- .../zed/persistence-layer/repository.md | 2 +- ...c-seo-techniques-to-use-in-your-project.md | 2 +- .../best-practices/coding-best-practices.md | 6 +- .../202311.0/data-importers-implementation.md | 2 +- ...rting-data-with-the-queue-data-importer.md | 2 +- .../202404.0/data-importers-implementation.md | 2 +- ...rting-data-with-the-queue-data-importer.md | 2 +- .../202410.0/data-importers-implementation.md | 2 +- ...rting-data-with-the-queue-data-importer.md | 2 +- docs/dg/dev/example-modules.md | 2 +- .../202311.0/marketplace/angular-services.md | 2 +- .../table-feature-batch-actions.md | 2 +- .../data-transformers/data-transformers.md | 2 +- ...ependency-injection-advanced-strategies.md | 2 +- .../dependency-injection.md | 2 +- .../oryx-integration-of-backend-apis.md | 2 +- .../reactivity/reactive-components.md | 2 +- .../architecture/reactivity/reactivity.md | 2 +- .../oryx/architecture/reactivity/signals.md | 2 +- .../oryx-application-feature.md | 2 +- .../oryx-application-plugins.md | 2 +- .../styling/oryx-typography.md | 2 +- .../oryx-component-types.md | 2 +- .../oryx-implementing-components.md | 4 +- .../oryx-managing-component-options.md | 2 +- .../oryx/getting-started/oryx-boilerplate.md | 2 +- .../oryx/getting-started/oryx-technology.md | 2 +- .../oryx/getting-started/oryx-versioning.md | 2 +- .../yves/atomic-frontend/atomic-frontend.md | 8 +- .../customizing-spryker-frontend.md | 2 +- .../integrate-jquery-into-atomic-frontend.md | 2 +- .../extending-components.md | 4 +- .../overriding-components.md | 2 +- .../managing-components/using-components.md | 2 +- .../frontend-assets-building-and-loading.md | 4 +- .../yves/frontend-builder-for-yves.md | 2 +- .../202404.0/marketplace/angular-services.md | 2 +- .../table-feature-batch-actions.md | 2 +- .../data-transformers/data-transformers.md | 2 +- ...ependency-injection-advanced-strategies.md | 2 +- .../dependency-injection.md | 2 +- .../oryx-integration-of-backend-apis.md | 2 +- .../reactivity/reactive-components.md | 2 +- .../architecture/reactivity/reactivity.md | 2 +- .../oryx/architecture/reactivity/signals.md | 2 +- .../oryx-application-feature.md | 2 +- .../oryx-application-plugins.md | 2 +- .../styling/oryx-typography.md | 2 +- .../oryx-component-types.md | 2 +- .../oryx-implementing-components.md | 4 +- .../oryx-managing-component-options.md | 2 +- .../oryx/getting-started/oryx-boilerplate.md | 2 +- .../oryx/getting-started/oryx-technology.md | 2 +- .../oryx/getting-started/oryx-versioning.md | 2 +- .../yves/atomic-frontend/atomic-frontend.md | 8 +- .../customizing-spryker-frontend.md | 2 +- .../integrate-jquery-into-atomic-frontend.md | 2 +- .../extending-components.md | 4 +- .../overriding-components.md | 2 +- .../managing-components/using-components.md | 2 +- .../frontend-assets-building-and-loading.md | 4 +- .../yves/frontend-builder-for-yves.md | 2 +- .../202410.0/marketplace/angular-services.md | 2 +- .../table-feature-batch-actions.md | 2 +- .../data-transformers/data-transformers.md | 2 +- ...ependency-injection-advanced-strategies.md | 2 +- .../dependency-injection.md | 2 +- .../oryx-integration-of-backend-apis.md | 2 +- .../reactivity/reactive-components.md | 2 +- .../architecture/reactivity/reactivity.md | 2 +- .../oryx/architecture/reactivity/signals.md | 2 +- .../oryx-application-feature.md | 2 +- .../oryx-application-plugins.md | 2 +- .../styling/oryx-typography.md | 2 +- .../oryx-component-types.md | 2 +- .../oryx-implementing-components.md | 4 +- .../oryx-managing-component-options.md | 2 +- .../oryx/getting-started/oryx-boilerplate.md | 2 +- .../oryx/getting-started/oryx-technology.md | 2 +- .../oryx/getting-started/oryx-versioning.md | 2 +- .../yves/atomic-frontend/atomic-frontend.md | 8 +- .../customizing-spryker-frontend.md | 2 +- .../integrate-jquery-into-atomic-frontend.md | 2 +- .../extending-components.md | 4 +- .../overriding-components.md | 2 +- .../managing-components/using-components.md | 2 +- .../frontend-assets-building-and-loading.md | 4 +- .../yves/frontend-builder-for-yves.md | 2 +- .../authentication-and-authorization.md | 2 +- .../configure-the-included-section.md | 2 +- .../glue-api/202311.0/decoupled-glue-api.md | 2 +- .../document-glue-api-resources.md | 6 +- docs/dg/dev/glue-api/202311.0/glue-spryks.md | 16 ++-- .../202311.0/integrate-a-ciam-provider.md | 2 +- ...ue-api-authentication-and-authorization.md | 2 +- .../glue-api-security-and-authentication.md | 4 +- .../glue-infrastructure.md | 6 +- .../old-glue-infrastructure/glue-rest-api.md | 4 +- .../202311.0/routing/create-routes.md | 2 +- .../202311.0/security-and-authentication.md | 2 +- .../202311.0/use-default-glue-parameters.md | 6 +- .../authentication-and-authorization.md | 2 +- .../configure-the-included-section.md | 2 +- .../glue-api/202404.0/decoupled-glue-api.md | 2 +- .../document-glue-api-resources.md | 6 +- docs/dg/dev/glue-api/202404.0/glue-spryks.md | 16 ++-- .../202404.0/integrate-a-ciam-provider.md | 2 +- ...ue-api-authentication-and-authorization.md | 2 +- .../glue-api-security-and-authentication.md | 4 +- .../glue-infrastructure.md | 6 +- .../old-glue-infrastructure/glue-rest-api.md | 4 +- .../202404.0/routing/create-routes.md | 2 +- .../202404.0/security-and-authentication.md | 2 +- .../202404.0/use-default-glue-parameters.md | 6 +- .../authentication-and-authorization.md | 2 +- .../configure-the-included-section.md | 2 +- .../glue-api/202410.0/decoupled-glue-api.md | 2 +- .../document-glue-api-resources.md | 6 +- docs/dg/dev/glue-api/202410.0/glue-spryks.md | 16 ++-- .../202410.0/integrate-a-ciam-provider.md | 2 +- ...ue-api-authentication-and-authorization.md | 2 +- .../glue-api-security-and-authentication.md | 4 +- .../glue-infrastructure.md | 6 +- .../old-glue-infrastructure/glue-rest-api.md | 4 +- .../202410.0/routing/create-routes.md | 2 +- .../202410.0/security-and-authentication.md | 2 +- .../202410.0/use-default-glue-parameters.md | 6 +- .../coding-guidelines/code-style-guide.md | 2 +- .../plugins-registration.md | 4 +- .../minimum-allowed-shop-version.md | 4 +- .../spryker-dev-packages-checker.md | 2 +- .../architecture-performance-guidelines.md | 6 +- .../general-performance-guidelines.md | 2 +- .../project-development-guidelines.md | 2 +- ...lding-tests-for-test-driven-devleopment.md | 2 +- .../executing-tests/test-console-commands.md | 2 +- ...the-publish-and-synchronization-process.md | 2 +- .../running-tests-with-robot-framework.md | 2 +- .../best-practices-for-effective-testing.md | 2 +- .../test-types-best-practices.md | 2 +- .../testing-concepts.md | 16 ++-- .../implementing-graceful-shutdown.md | 2 +- .../integrate-elastic-computing.md | 2 +- ...-a-case-sensitive-file-system-on-mac-os.md | 2 +- .../add-new-store-in-multi-db-setup.md | 2 +- ...adding-stores-in-a-multi-database-setup.md | 80 +++++++++++-------- .../handling-internationalization.md | 4 +- .../simulating-deployments-locally.md | 2 +- ...tomization-strategies-and-upgradability.md | 4 +- .../dev/sdks/sdk/development-tools/phpstan.md | 2 +- docs/dg/dev/sdks/sdk/extending-spryker-sdk.md | 2 +- .../deploy-file/deploy-file-reference.md | 4 +- .../the-docker-sdk/deploy-file/deploy-file.md | 4 +- .../manage-dependencies-with-composer.md | 4 +- .../redis-session-lock.md | 2 +- .../silex-replacement/container.md | 6 +- .../silex-replacement/router/router-yves.md | 2 +- .../silex-replacement/router/router-zed.md | 2 +- docs/dg/dev/zed-api/tutorial-using-zed-api.md | 4 +- .../import-file-details-shipment-price.csv.md | 2 +- .../import-file-details-shipment-price.csv.md | 2 +- .../import-file-details-shipment-price.csv.md | 2 +- .../calculation-data-structure.md | 2 +- ...ckout-process-review-and-implementation.md | 4 +- .../extend-and-customize/checkout-steps.md | 4 +- .../approval-process-feature-overview.md | 4 +- ...ck-order-from-the-catalog-page-overview.md | 2 +- .../order-thresholds-overview.md | 2 +- .../comments-feature-overview.md | 2 +- .../define-global-thresholds.md | 2 +- .../define-merchant-order-thresholds.md | 2 +- .../check-out/glue-api-check-out-purchases.md | 2 +- .../glue-api-submit-checkout-data.md | 4 +- ...ue-api-manage-carts-of-registered-users.md | 2 +- ...nage-items-in-carts-of-registered-users.md | 4 +- .../glue-api-manage-guest-cart-items.md | 4 +- .../glue-api-manage-guest-carts.md | 2 +- .../tutorial-calculator-plugin.md | 2 +- .../manage-carts-of-registered-users.md | 4 +- ...nage-items-in-carts-of-registered-users.md | 8 +- .../guest-carts/manage-guest-cart-items.md | 6 +- .../guest-carts/manage-guest-carts.md | 4 +- .../calculation-data-structure.md | 2 +- ...ckout-process-review-and-implementation.md | 4 +- .../extend-and-customize/checkout-steps.md | 4 +- .../approval-process-feature-overview.md | 4 +- ...ck-order-from-the-catalog-page-overview.md | 2 +- .../order-thresholds-overview.md | 2 +- .../comments-feature-overview.md | 2 +- .../define-global-thresholds.md | 2 +- .../define-merchant-order-thresholds.md | 2 +- .../check-out/glue-api-check-out-purchases.md | 2 +- ...ue-api-manage-carts-of-registered-users.md | 2 +- ...nage-items-in-carts-of-registered-users.md | 4 +- .../glue-api-manage-guest-cart-items.md | 4 +- .../glue-api-manage-guest-carts.md | 2 +- .../tutorial-calculator-plugin.md | 2 +- .../manage-carts-of-registered-users.md | 4 +- ...nage-items-in-carts-of-registered-users.md | 8 +- .../guest-carts/manage-guest-cart-items.md | 6 +- .../guest-carts/manage-guest-carts.md | 4 +- .../calculation-data-structure.md | 2 +- ...ckout-process-review-and-implementation.md | 4 +- .../extend-and-customize/checkout-steps.md | 4 +- .../approval-process-feature-overview.md | 4 +- ...ck-order-from-the-catalog-page-overview.md | 2 +- .../order-thresholds-overview.md | 2 +- .../comments-feature-overview.md | 2 +- .../define-global-thresholds.md | 2 +- .../define-merchant-order-thresholds.md | 2 +- .../check-out/glue-api-check-out-purchases.md | 2 +- ...ue-api-manage-carts-of-registered-users.md | 2 +- ...nage-items-in-carts-of-registered-users.md | 4 +- .../glue-api-manage-guest-cart-items.md | 4 +- .../glue-api-manage-guest-carts.md | 2 +- .../tutorial-calculator-plugin.md | 2 +- .../manage-carts-of-registered-users.md | 4 +- ...nage-items-in-carts-of-registered-users.md | 8 +- .../guest-carts/manage-guest-cart-items.md | 6 +- .../guest-carts/manage-guest-carts.md | 4 +- .../cms-blocks-overview.md | 2 +- .../email-as-a-cms-block-overview.md | 4 +- .../templates-and-slots-overview.md | 8 +- .../import-file-details-cms-slot.csv.md | 2 +- .../blocks/create-email-cms-blocks.md | 2 +- .../product-sets/reorder-product-sets.md | 4 +- .../glue-api-retrieve-navigation-trees.md | 2 +- ...fine-the-maximum-size-of-content-fields.md | 2 +- ...t-and-search-personalized-catalog-pages.md | 2 +- .../cms-blocks-overview.md | 2 +- .../email-as-a-cms-block-overview.md | 4 +- .../templates-and-slots-overview.md | 8 +- .../import-file-details-cms-slot.csv.md | 2 +- .../blocks/create-email-cms-blocks.md | 2 +- .../product-sets/reorder-product-sets.md | 4 +- .../glue-api-retrieve-navigation-trees.md | 2 +- ...fine-the-maximum-size-of-content-fields.md | 2 +- ...t-and-search-personalized-catalog-pages.md | 2 +- .../cms-blocks-overview.md | 2 +- .../email-as-a-cms-block-overview.md | 4 +- .../templates-and-slots-overview.md | 8 +- .../import-file-details-cms-slot.csv.md | 2 +- .../blocks/create-email-cms-blocks.md | 2 +- .../product-sets/reorder-product-sets.md | 4 +- .../glue-api-retrieve-navigation-trees.md | 2 +- ...fine-the-maximum-size-of-content-fields.md | 2 +- ...t-and-search-personalized-catalog-pages.md | 2 +- .../business-units-overview.md | 2 +- .../company-accounts-overview.md | 4 +- ...any-user-roles-and-permissions-overview.md | 2 +- .../password-management-overview.md | 2 +- .../company-units/create-company-units.md | 2 +- .../manage-companies.md | 2 +- .../glue-api-retrieve-business-units.md | 2 +- .../customers/glue-api-manage-customers.md | 2 +- .../business-units-overview.md | 2 +- .../company-accounts-overview.md | 4 +- ...any-user-roles-and-permissions-overview.md | 2 +- .../password-management-overview.md | 2 +- .../company-units/create-company-units.md | 2 +- .../manage-companies.md | 2 +- .../glue-api-retrieve-business-units.md | 2 +- .../customers/glue-api-manage-customers.md | 2 +- .../business-units-overview.md | 2 +- .../company-accounts-overview.md | 4 +- .../password-management-overview.md | 2 +- .../company-units/create-company-units.md | 2 +- .../manage-companies.md | 2 +- .../glue-api-retrieve-business-units.md | 2 +- .../customers/glue-api-manage-customers.md | 2 +- ...sending-requests-with-data-exchange-api.md | 4 +- .../akeneo-pim-integration-app.md | 2 +- ...e-data-mapping-between-akeneo-and-sccos.md | 2 +- ...nd-import-products-from-akeneo-to-sccos.md | 2 +- ...sending-requests-with-data-exchange-api.md | 4 +- .../akeneo-pim-integration-app.md | 2 +- ...e-data-mapping-between-akeneo-and-sccos.md | 2 +- ...nd-import-products-from-akeneo-to-sccos.md | 2 +- ...sending-requests-with-data-exchange-api.md | 4 +- .../akeneo-pim-integration-app.md | 2 +- ...e-data-mapping-between-akeneo-and-sccos.md | 2 +- ...nd-import-products-from-akeneo-to-sccos.md | 2 +- .../create-discounts.md | 2 +- .../edit-discounts.md | 2 +- .../promotions-discounts-feature-overview.md | 6 +- ...e-promotions-discounts-feature-overview.md | 6 +- .../create-discounts.md | 2 +- .../edit-discounts.md | 2 +- .../promotions-discounts-feature-overview.md | 6 +- ...e-promotions-discounts-feature-overview.md | 6 +- .../create-discounts.md | 2 +- .../edit-discounts.md | 2 +- .../promotions-discounts-feature-overview.md | 6 +- ...e-promotions-discounts-feature-overview.md | 6 +- .../pbc/all/gift-cards/202311.0/gift-cards.md | 4 +- .../pbc/all/gift-cards/202404.0/gift-cards.md | 4 +- .../pbc/all/gift-cards/202410.0/gift-cards.md | 4 +- .../restricted-products-behavior.md | 12 +-- .../glue-api-retrieve-merchants.md | 16 ++-- .../persistence-acl-configuration.md | 2 +- .../restricted-products-behavior.md | 12 +-- .../glue-api-retrieve-merchants.md | 16 ++-- .../persistence-acl-configuration.md | 2 +- .../restricted-products-behavior.md | 12 +-- .../glue-api-retrieve-merchants.md | 16 ++-- .../persistence-acl-configuration.md | 2 +- ...eate-merchant-commission-collector-rule.md | 2 +- .../exporting-product-data-for-fact-finder.md | 4 +- .../installing-and-configuring-fact-finder.md | 2 +- .../fact-finder/using-fact-finder-search.md | 2 +- .../exporting-product-data-for-fact-finder.md | 4 +- .../installing-and-configuring-fact-finder.md | 2 +- .../fact-finder/using-fact-finder-search.md | 2 +- .../exporting-product-data-for-fact-finder.md | 4 +- .../installing-and-configuring-fact-finder.md | 2 +- .../fact-finder/using-fact-finder-search.md | 2 +- .../glue-api-retrieve-product-offers.md | 2 +- ...-feature-domain-model-and-relationships.md | 2 +- .../product-offer-storage.md | 2 +- ...ketplace-product-offer-feature-overview.md | 8 +- ...rchant-product-offers-on-the-storefront.md | 2 +- .../glue-api-retrieve-product-offers.md | 2 +- ...-feature-domain-model-and-relationships.md | 2 +- .../product-offer-storage.md | 2 +- ...ketplace-product-offer-feature-overview.md | 8 +- ...rchant-product-offers-on-the-storefront.md | 2 +- .../glue-api-retrieve-product-offers.md | 2 +- ...-feature-domain-model-and-relationships.md | 2 +- .../product-offer-storage.md | 2 +- ...ketplace-product-offer-feature-overview.md | 8 +- ...rchant-product-offers-on-the-storefront.md | 2 +- .../order-management-system-multi-thread.md | 2 +- ...er-process-modelling-via-state-machines.md | 2 +- ...for-order-item-states-on-the-storefront.md | 2 +- .../base-shop/email-invoices-using-bcc.md | 2 +- ...he-state-of-order-items-in-reclamations.md | 2 +- .../oms-order-management-system-matrix.md | 4 +- .../order-management-feature-overview.md | 2 +- ...external-erp-services-for-order-updates.md | 2 +- ...-machine-cookbook-build-a-state-machine.md | 2 +- ...ine-cookbook-state-machine-fundamentals.md | 10 +-- .../glue-api-retrieve-marketplace-orders.md | 14 ++-- ...ile-details-merchant-order-expenses.csv.md | 16 ++-- ...t-file-details-merchant-order-items.csv.md | 20 ++--- ...export-file-details-merchant-orders.csv.md | 14 ++-- ...-file-details-merchant-order-status.csv.md | 2 +- .../manage-marketplace-orders.md | 2 +- ...-feature-domain-model-and-relationships.md | 2 +- .../order-management-system-multi-thread.md | 2 +- ...er-process-modelling-via-state-machines.md | 2 +- ...for-order-item-states-on-the-storefront.md | 2 +- .../base-shop/email-invoices-using-bcc.md | 2 +- ...he-state-of-order-items-in-reclamations.md | 2 +- .../oms-order-management-system-matrix.md | 4 +- .../order-management-feature-overview.md | 2 +- ...external-erp-services-for-order-updates.md | 2 +- ...-machine-cookbook-build-a-state-machine.md | 2 +- ...ine-cookbook-state-machine-fundamentals.md | 10 +-- .../glue-api-retrieve-marketplace-orders.md | 12 +-- ...ile-details-merchant-order-expenses.csv.md | 16 ++-- ...t-file-details-merchant-order-items.csv.md | 20 ++--- ...export-file-details-merchant-orders.csv.md | 14 ++-- ...-file-details-merchant-order-status.csv.md | 2 +- .../manage-marketplace-orders.md | 2 +- ...-feature-domain-model-and-relationships.md | 2 +- .../order-management-system-multi-thread.md | 2 +- ...er-process-modelling-via-state-machines.md | 2 +- ...for-order-item-states-on-the-storefront.md | 2 +- .../base-shop/email-invoices-using-bcc.md | 2 +- ...he-state-of-order-items-in-reclamations.md | 2 +- .../oms-order-management-system-matrix.md | 4 +- .../order-management-feature-overview.md | 2 +- ...external-erp-services-for-order-updates.md | 2 +- ...-machine-cookbook-build-a-state-machine.md | 2 +- ...ine-cookbook-state-machine-fundamentals.md | 10 +-- .../glue-api-retrieve-marketplace-orders.md | 12 +-- ...ile-details-merchant-order-expenses.csv.md | 16 ++-- ...t-file-details-merchant-order-items.csv.md | 20 ++--- ...export-file-details-merchant-orders.csv.md | 14 ++-- ...-file-details-merchant-order-status.csv.md | 2 +- .../manage-marketplace-orders.md | 2 +- ...-feature-domain-model-and-relationships.md | 2 +- ...-party-payment-providers-using-glue-api.md | 4 +- .../adyen/install-and-configure-adyen.md | 2 +- .../amazon-pay-sandbox-simulations.md | 4 +- .../amazon-pay/amazon-pay-state-machine.md | 2 +- .../amazon-pay/configure-amazon-pay.md | 2 +- .../handling-orders-with-amazon-pay-api.md | 14 ++-- .../third-party-integrations/billie.md | 2 +- .../billpay/integrate-billpay.md | 2 +- .../braintree/braintree-request-workflow.md | 2 +- .../braintree/braintree.md | 2 +- .../computop/computop-api-calls.md | 2 +- ...credit-card-payment-method-for-computop.md | 2 +- .../crefopay/crefopay-payment-methods.md | 2 +- ...ard-secure-payment-method-for-heidelpay.md | 6 +- ...rect-debit-payment-method-for-heidelpay.md | 2 +- ...asy-credit-payment-method-for-heidelpay.md | 6 +- ...-the-ideal-payment-method-for-heidelpay.md | 2 +- ...ecured-b2c-payment-method-for-heidelpay.md | 2 +- ...-authorize-payment-method-for-heidelpay.md | 2 +- .../third-party-integrations/klarna/klarna.md | 2 +- .../payolution/payolution-request-flow.md | 2 +- .../payolution/payolution.md | 2 +- .../payone-acp-app.md | 6 +- .../ratenkauf-by-easycredit.md | 2 +- ...-party-payment-providers-using-glue-api.md | 4 +- .../adyen/install-and-configure-adyen.md | 2 +- .../amazon-pay-sandbox-simulations.md | 4 +- .../amazon-pay/amazon-pay-state-machine.md | 2 +- .../amazon-pay/configure-amazon-pay.md | 2 +- .../handling-orders-with-amazon-pay-api.md | 14 ++-- .../third-party-integrations/billie.md | 2 +- .../billpay/integrate-billpay.md | 2 +- .../braintree/braintree-request-workflow.md | 2 +- .../braintree/braintree.md | 2 +- .../computop/computop-api-calls.md | 2 +- ...credit-card-payment-method-for-computop.md | 2 +- .../crefopay/crefopay-payment-methods.md | 2 +- ...ard-secure-payment-method-for-heidelpay.md | 6 +- ...rect-debit-payment-method-for-heidelpay.md | 2 +- ...asy-credit-payment-method-for-heidelpay.md | 6 +- ...-the-ideal-payment-method-for-heidelpay.md | 2 +- ...ecured-b2c-payment-method-for-heidelpay.md | 2 +- ...-authorize-payment-method-for-heidelpay.md | 2 +- .../third-party-integrations/klarna/klarna.md | 2 +- .../payolution/payolution-request-flow.md | 2 +- .../payolution/payolution.md | 2 +- .../payone-acp-app.md | 6 +- .../ratenkauf-by-easycredit.md | 2 +- ...-party-payment-providers-using-glue-api.md | 4 +- .../adyen/install-and-configure-adyen.md | 2 +- .../amazon-pay-sandbox-simulations.md | 4 +- .../amazon-pay/amazon-pay-state-machine.md | 2 +- .../amazon-pay/configure-amazon-pay.md | 2 +- .../handling-orders-with-amazon-pay-api.md | 14 ++-- .../third-party-integrations/billie.md | 2 +- .../billpay/integrate-billpay.md | 2 +- .../braintree/braintree-request-workflow.md | 2 +- .../braintree/braintree.md | 2 +- .../computop/computop-api-calls.md | 2 +- ...credit-card-payment-method-for-computop.md | 2 +- .../crefopay/crefopay-payment-methods.md | 2 +- ...ard-secure-payment-method-for-heidelpay.md | 6 +- ...rect-debit-payment-method-for-heidelpay.md | 2 +- ...asy-credit-payment-method-for-heidelpay.md | 6 +- ...-the-ideal-payment-method-for-heidelpay.md | 2 +- ...ecured-b2c-payment-method-for-heidelpay.md | 2 +- ...-authorize-payment-method-for-heidelpay.md | 2 +- .../third-party-integrations/klarna/klarna.md | 2 +- .../payolution/payolution-request-flow.md | 2 +- .../payolution/payolution.md | 2 +- .../payone-acp-app.md | 2 +- .../ratenkauf-by-easycredit.md | 2 +- .../money-module-reference-information.md | 2 +- ...iple-currencies-per-store-configuration.md | 2 +- ...import-and-export-price-management-data.md | 2 +- ...e-million-prices-in-spryker-commerce-os.md | 4 +- .../money-module-reference-information.md | 2 +- ...iple-currencies-per-store-configuration.md | 2 +- ...import-and-export-price-management-data.md | 2 +- ...e-million-prices-in-spryker-commerce-os.md | 4 +- .../money-module-reference-information.md | 2 +- ...iple-currencies-per-store-configuration.md | 2 +- ...import-and-export-price-management-data.md | 2 +- ...e-million-prices-in-spryker-commerce-os.md | 4 +- ...surement-units-feature-module-relations.md | 6 +- .../alternative-products-feature-overview.md | 2 +- .../configurable-bundle-feature-overview.md | 4 +- .../measurement-units-feature-overview.md | 8 +- .../packaging-units-feature-overview.md | 4 +- .../product-bundles-feature-overview.md | 4 +- .../discontinued-products-overview.md | 2 +- .../product-attributes-overview.md | 4 +- .../product-labels-feature-overview.md | 2 +- .../product-options-feature-overview.md | 2 +- ...port-file-details-category-template.csv.md | 2 +- .../import-file-details-category.csv.md | 12 +-- ...mport-file-details-product-abstract.csv.md | 4 +- ...-file-details-product-attribute-key.csv.md | 2 +- ...mport-file-details-product-concrete.csv.md | 2 +- .../install-the-measurement-units-feature.md | 8 +- .../add-product-alternatives.md | 2 +- .../create-product-variants.md | 2 +- .../discontinue-products.md | 2 +- .../edit-product-variants.md | 2 +- .../glue-api-retrieve-concrete-products.md | 4 +- .../glue-api-retrieve-sales-units.md | 6 +- .../glue-api-retrieve-measurement-units.md | 2 +- .../glue-api-retrieve-product-attributes.md | 2 +- ...able-bundle-templates-in-the-storefront.md | 2 +- ...duct-data-from-import-to-frontend-views.md | 2 +- .../product-options/create-product-options.md | 2 +- .../product-options/manage-product-options.md | 2 +- .../products/create-product-variants.md | 2 +- .../create-marketplace-abstract-products.md | 2 +- .../glue-api-retrieve-abstract-products.md | 6 +- ...tplace-product-options-feature-overview.md | 2 +- ...surement-units-feature-module-relations.md | 6 +- .../alternative-products-feature-overview.md | 2 +- .../configurable-bundle-feature-overview.md | 4 +- .../measurement-units-feature-overview.md | 8 +- .../packaging-units-feature-overview.md | 4 +- .../product-bundles-feature-overview.md | 4 +- .../discontinued-products-overview.md | 2 +- .../product-attributes-overview.md | 4 +- .../product-labels-feature-overview.md | 2 +- .../product-options-feature-overview.md | 2 +- ...port-file-details-category-template.csv.md | 2 +- .../import-file-details-category.csv.md | 12 +-- ...mport-file-details-product-abstract.csv.md | 4 +- ...-file-details-product-attribute-key.csv.md | 2 +- ...mport-file-details-product-concrete.csv.md | 2 +- .../install-the-measurement-units-feature.md | 8 +- .../add-product-alternatives.md | 2 +- .../create-product-variants.md | 2 +- .../discontinue-products.md | 2 +- .../edit-product-variants.md | 2 +- .../glue-api-retrieve-concrete-products.md | 4 +- ...able-bundle-templates-in-the-storefront.md | 2 +- ...duct-data-from-import-to-frontend-views.md | 2 +- .../product-options/create-product-options.md | 2 +- .../product-options/manage-product-options.md | 2 +- .../products/create-product-variants.md | 2 +- .../create-marketplace-abstract-products.md | 2 +- .../glue-api-retrieve-abstract-products.md | 6 +- ...tplace-product-options-feature-overview.md | 2 +- ...surement-units-feature-module-relations.md | 6 +- .../alternative-products-feature-overview.md | 2 +- .../configurable-bundle-feature-overview.md | 4 +- .../measurement-units-feature-overview.md | 8 +- .../packaging-units-feature-overview.md | 4 +- .../product-bundles-feature-overview.md | 4 +- .../discontinued-products-overview.md | 2 +- .../product-attributes-overview.md | 4 +- .../product-labels-feature-overview.md | 2 +- .../product-options-feature-overview.md | 2 +- ...port-file-details-category-template.csv.md | 2 +- .../import-file-details-category.csv.md | 12 +-- ...mport-file-details-product-abstract.csv.md | 4 +- ...-file-details-product-attribute-key.csv.md | 2 +- ...mport-file-details-product-concrete.csv.md | 2 +- .../install-the-measurement-units-feature.md | 8 +- .../add-product-alternatives.md | 2 +- .../create-product-variants.md | 2 +- .../discontinue-products.md | 2 +- .../edit-product-variants.md | 2 +- .../glue-api-retrieve-concrete-products.md | 4 +- ...able-bundle-templates-in-the-storefront.md | 2 +- ...duct-data-from-import-to-frontend-views.md | 2 +- .../product-options/create-product-options.md | 2 +- .../product-options/manage-product-options.md | 2 +- .../products/create-product-variants.md | 2 +- .../create-marketplace-abstract-products.md | 2 +- .../glue-api-retrieve-abstract-products.md | 6 +- ...tplace-product-options-feature-overview.md | 2 +- .../glue-api-retrieve-related-products.md | 12 +-- .../product-relationship-management.md | 6 +- .../glue-api-retrieve-related-products.md | 12 +-- .../product-relationship-management.md | 6 +- .../glue-api-retrieve-related-products.md | 12 +-- .../product-relationship-management.md | 6 +- ...nage-product-reviews-in-the-back-office.md | 2 +- .../configure-bazaarvoice.md | 2 +- ...nage-product-reviews-in-the-back-office.md | 2 +- .../configure-bazaarvoice.md | 2 +- ...nage-product-reviews-in-the-back-office.md | 2 +- .../configure-bazaarvoice.md | 2 +- .../use-cases-request-for-quote-processes.md | 2 +- .../use-cases-request-for-quote-processes.md | 2 +- .../use-cases-request-for-quote-processes.md | 2 +- ...eturn-management-process-best-practices.md | 2 +- .../glue-api-manage-returns.md | 4 +- .../glue-api-manage-marketplace-returns.md | 4 +- ...eturn-management-process-best-practices.md | 2 +- .../glue-api-manage-returns.md | 4 +- .../glue-api-manage-marketplace-returns.md | 4 +- ...eturn-management-process-best-practices.md | 2 +- .../glue-api-manage-returns.md | 4 +- .../glue-api-manage-marketplace-returns.md | 4 +- .../best-practices/data-driven-ranking.md | 4 +- .../best-practices/generic-faceted-search.md | 2 +- .../best-practices/other-best-practices.md | 2 +- .../define-search-preferences.md | 2 +- .../search-feature-overview.md | 4 +- .../algolia/integrate-algolia.md | 2 +- .../configure-a-search-query.md | 4 +- .../configure-elasticsearch.md | 2 +- ...bute-cart-based-catalog-personalization.md | 4 +- .../best-practices/data-driven-ranking.md | 4 +- .../best-practices/generic-faceted-search.md | 2 +- .../best-practices/other-best-practices.md | 2 +- .../define-search-preferences.md | 2 +- .../search-feature-overview.md | 4 +- .../algolia/integrate-algolia.md | 2 +- .../configure-a-search-query.md | 4 +- .../configure-elasticsearch.md | 2 +- ...bute-cart-based-catalog-personalization.md | 4 +- .../best-practices/data-driven-ranking.md | 4 +- .../best-practices/generic-faceted-search.md | 2 +- .../best-practices/other-best-practices.md | 2 +- .../define-search-preferences.md | 2 +- .../search-feature-overview.md | 4 +- .../integrate-algolia-personalization.md | 2 +- .../configure-a-search-query.md | 4 +- .../configure-elasticsearch.md | 2 +- ...bute-cart-based-catalog-personalization.md | 4 +- .../glue-api-manage-marketplace-wishlists.md | 6 +- ...etplace-shopping-lists-feature-overview.md | 24 +++--- .../glue-api-manage-marketplace-wishlists.md | 6 +- ...etplace-shopping-lists-feature-overview.md | 24 +++--- .../glue-api-manage-marketplace-wishlists.md | 6 +- ...etplace-shopping-lists-feature-overview.md | 24 +++--- .../vertex/install-vertex/install-vertex.md | 2 +- ...cp-connector-module-for-tax-calculation.md | 4 +- .../integrate-the-vertex-app.md | 2 +- ...cp-connector-module-for-tax-calculation.md | 4 +- ...cp-connector-module-for-tax-calculation.md | 4 +- .../base-shop/user-and-rights-overview.md | 2 +- .../rules-and-scopes/inherited-scope.md | 4 +- .../base-shop/user-and-rights-overview.md | 2 +- .../rules-and-scopes/inherited-scope.md | 4 +- .../base-shop/user-and-rights-overview.md | 2 +- .../rules-and-scopes/inherited-scope.md | 4 +- ...ilability-notification-feature-overview.md | 2 +- ...ory-management-feature-modules-overview.md | 4 +- .../import-file-details-product-stock.csv.md | 2 +- .../inventory-management-feature-overview.md | 2 +- ...e-inventory-management-feature-overview.md | 2 +- .../fulfillment-app-overview.md | 2 +- ...ilability-notification-feature-overview.md | 2 +- ...ory-management-feature-modules-overview.md | 4 +- .../import-file-details-product-stock.csv.md | 2 +- .../inventory-management-feature-overview.md | 2 +- ...e-inventory-management-feature-overview.md | 2 +- .../fulfillment-app-overview.md | 2 +- ...ilability-notification-feature-overview.md | 2 +- ...ory-management-feature-modules-overview.md | 4 +- .../import-file-details-product-stock.csv.md | 2 +- .../inventory-management-feature-overview.md | 2 +- ...e-inventory-management-feature-overview.md | 2 +- .../fulfillment-app-overview.md | 2 +- 905 files changed, 1575 insertions(+), 1563 deletions(-) diff --git a/_archive/release-notes/release-notes-202212.0/release-notes-202212.0.md b/_archive/release-notes/release-notes-202212.0/release-notes-202212.0.md index f580fc06f97..626d557e7c4 100644 --- a/_archive/release-notes/release-notes-202212.0/release-notes-202212.0.md +++ b/_archive/release-notes/release-notes-202212.0/release-notes-202212.0.md @@ -48,7 +48,7 @@ Adapting your offerings to your customers' needs and locales is crucial for prov #### Number formatting in the Storefront -For an effortless shopping experience, the localized number formatting is available throughout the Storefront for any user locale. Whether it is a catalog, product details page, cart, checkout, or customer account, your customers and guests can now enjoy their known number format. This helps to avoid any confusion about pricing or quantities. +For an effortless shopping experience, the localized number formatting is available throughout the Storefront for any user locale. Whether it's a catalog, product details page, cart, checkout, or customer account, your customers and guests can now enjoy their known number format. This helps to avoid any confusion about pricing or quantities. ##### Documentation diff --git a/_data/sidebars/dg_dev_sidebar.yml b/_data/sidebars/dg_dev_sidebar.yml index fc5adec1cdf..26ccd59c6ee 100644 --- a/_data/sidebars/dg_dev_sidebar.yml +++ b/_data/sidebars/dg_dev_sidebar.yml @@ -909,6 +909,8 @@ entries: - title: Internationalization and multi-store nested: + - title: Adding stores in a multi-database setup + url: /docs/dg/dev/internationalization-and-multi-store/adding-stores-in-a-multi-database-setup.html - title: Handling internationalization url: /docs/dg/dev/internationalization-and-multi-store/handling-internationalization.html - title: Managing glossary keys diff --git a/_drafts/acp-apps-development/develop-an-app/app-manifest.md b/_drafts/acp-apps-development/develop-an-app/app-manifest.md index 646f99a3158..dd6838aa823 100644 --- a/_drafts/acp-apps-development/develop-an-app/app-manifest.md +++ b/_drafts/acp-apps-development/develop-an-app/app-manifest.md @@ -119,7 +119,7 @@ For the manifest, make sure to follow these conditions: |description | Full description of the app. New line symbols and HTML tags are not allowed. | "description": "BS PAYONE GmbH is headquartered in Frankfurt am Main and is one of the leading omnichannel-payment providers in Europe. In addition to providing customer support to numerous Savings Banks (Sparkasse) the full-service payment service provider also provides cashless payment transaction services to more than 255,000 customers from stationary trade to the automated and holistic processing of e-commerce and mobile payments." | |developedBy | Optional. Provides information about who developed the App. | "developedBy": "Spryker Systems GmbH" | |url | URL to a homepage of the application provider (not visible in the AppCatalog). | "url": "https://www.payone.com/DE-en" | -|isAvailable | Shows if the application is currently available. Possible values:
| "isAvailable": true | +|isAvailable | Shows if the application is currently available. Possible values:
| "isAvailable": true | |businessModels | An array of suite types that are compatible with the application. Possible values: | See *businessModels example* under this table. | |categories | An array of categories that the application belongs to. Possible values: | See *categories example* under this table. | |pages | Adds additional content to the application detail page. This part contains an object with a page type and its blocks.
Possible page types (object keys):Each page can contain no or multiple blocks. Each block should be specified by an object with the following keys: | See *pages example* under this table. | diff --git a/_drafts/acp-apps-development/develop-an-app/sync-api.md b/_drafts/acp-apps-development/develop-an-app/sync-api.md index 2e6b2014b31..e79aafa1658 100644 --- a/_drafts/acp-apps-development/develop-an-app/sync-api.md +++ b/_drafts/acp-apps-development/develop-an-app/sync-api.md @@ -7,7 +7,7 @@ redirect_from: - /docs/acp/user/sync-api.html --- -[Sync API](https://github.com/spryker-sdk/sync-api/) is the synchronous API that Spryker supports. In the Spryker terminology, it is also known as [Glue API](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/glue-rest-api.html) with its [REST API B2C Demo Shop](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/rest-api-marketplace-b2c-demo-shop-reference.html) and [REST API B2B Demo Shop](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/rest-api-b2b-demo-shop-reference.html) endpoints. The schema files we use follow the [OpenAPI specification](https://swagger.io/specification/). +[Sync API](https://github.com/spryker-sdk/sync-api/) is the synchronous API that Spryker supports. In the Spryker terminology, it's also known as [Glue API](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/glue-rest-api.html) with its [REST API B2C Demo Shop](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/rest-api-marketplace-b2c-demo-shop-reference.html) and [REST API B2B Demo Shop](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/rest-api-b2b-demo-shop-reference.html) endpoints. The schema files we use follow the [OpenAPI specification](https://swagger.io/specification/). Spryker uses schema files to generate code for your project, including predefined test cases. The purpose of doing so is to let you focus on building your business logic without caring about the boilerplate code. ## Code generation diff --git a/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-debugging-in-devvm/configuring-debugging-in-devvm.md b/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-debugging-in-devvm/configuring-debugging-in-devvm.md index c637166ee18..a190347ec97 100644 --- a/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-debugging-in-devvm/configuring-debugging-in-devvm.md +++ b/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-debugging-in-devvm/configuring-debugging-in-devvm.md @@ -99,7 +99,7 @@ Define servers in PhpStorm: 1. In PhpStorm, go to **Preferences** > **Languages & Frameworks** > **PHP** > **Servers**. 2. Add a new server: 1. Select **+**. - 2. Enter a **Name**. For example, `zed.mysprykershop.com` (it is used in CLI below). + 2. Enter a **Name**. For example, `zed.mysprykershop.com` (it's used in CLI below). 3. For **Host**, enter `~^zed\.de\..+\.local$`. 4. Select **Use path mappings**. 5. For **Absolute path on server**, select `/data/shop/development/current`. diff --git a/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-spryker-with-devvm/configuring-spryker-after-installing-with-devvm.md b/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-spryker-with-devvm/configuring-spryker-after-installing-with-devvm.md index 5df93698045..68a85f3ac4a 100644 --- a/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-spryker-with-devvm/configuring-spryker-after-installing-with-devvm.md +++ b/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-spryker-with-devvm/configuring-spryker-after-installing-with-devvm.md @@ -37,7 +37,7 @@ We will soon deprecate the DevVM and stop supporting it. Therefore, we highly re ## Configuring Git -If you want to commit from within the VM, it is recommended to set the right Git preferences: +If you want to commit from within the VM, it's recommended to set the right Git preferences: ```bash git config --global user.email "your.email@domain.tld" diff --git a/_drafts/drafts-dev/database-schema-guide/201811.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/201811.0/catalog-schema.md index 966e67f6c44..afc9d174fdd 100644 --- a/_drafts/drafts-dev/database-schema-guide/201811.0/catalog-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/201811.0/catalog-schema.md @@ -53,7 +53,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value **Structure:** * Attributes are identified by the key (e.g. "material"). -* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata +* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata * Super-Attributes must be declared here with `is_super=true`. * **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data. @@ -193,7 +193,7 @@ Structure: ### Measurement Units {% info_block infoBox %} -Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit is the base one that we use for all internal calculations. +Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit's the base one that we use for all internal calculations. {% endinfo_block %} ![Measurement units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/measurement-units.png) @@ -212,7 +212,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca * **Base Unit** - An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item") - - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). + - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). * **Sales Unit** @@ -253,7 +253,7 @@ Even when the product is marked as splittable, Spryker may still save them into ### Packaging Units {% info_block infoBox %} -A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant: +A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant: {% endinfo_block %} ![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png) @@ -269,7 +269,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a **Structure:** -* A Packaging Unit is represented by a Concrete Product +* A Packaging Unit's represented by a Concrete Product * The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount. - `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples @@ -373,7 +373,7 @@ Spryker ships with several price related features. Here is an overview: | Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. | | Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- | | Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. | -| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | +| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | {% info_block errorBox %} The Promotional price feature is currently under development. {% endinfo_block %} diff --git a/_drafts/drafts-dev/database-schema-guide/201811.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/201811.0/sales-schema.md index bba8dde9f73..b43e142146e 100644 --- a/_drafts/drafts-dev/database-schema-guide/201811.0/sales-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/201811.0/sales-schema.md @@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have ### Customer Data -The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes. +The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes. ![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png) **Structure**: diff --git a/_drafts/drafts-dev/database-schema-guide/201903.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/201903.0/catalog-schema.md index 0eb14398d5d..3046eeeefd0 100644 --- a/_drafts/drafts-dev/database-schema-guide/201903.0/catalog-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/201903.0/catalog-schema.md @@ -52,7 +52,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value **Structure:** * Attributes are identified by the key (e.g. "material"). -* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata +* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata * Super-Attributes must be declared here with `is_super=true`. * **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data. @@ -191,7 +191,7 @@ Structure: ### Measurement Units {% info_block infoBox %} -Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit is the base one that we use for all internal calculations. +Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit's the base one that we use for all internal calculations. {% endinfo_block %} ![Measurement units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/measurement-units.png) @@ -210,7 +210,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca * **Base Unit** - An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item") - - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). + - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). * **Sales Unit** @@ -251,7 +251,7 @@ Even when the product is marked as splittable, Spryker may still save them into ### Packaging Units {% info_block infoBox %} -A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant: +A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant: {% endinfo_block %} ![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png) @@ -267,7 +267,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a **Structure:** -* A Packaging Unit is represented by a Concrete Product +* A Packaging Unit's represented by a Concrete Product * The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount. - `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples @@ -371,7 +371,7 @@ Spryker ships with several price related features. Here is an overview: | Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. | | Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- | | Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. | -| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | +| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | {% info_block errorBox %} The Promotional price feature is currently under development. {% endinfo_block %} diff --git a/_drafts/drafts-dev/database-schema-guide/201903.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/201903.0/sales-schema.md index 28910b77f4c..2a77f17d998 100644 --- a/_drafts/drafts-dev/database-schema-guide/201903.0/sales-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/201903.0/sales-schema.md @@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have ### Customer Data -The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes. +The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes. ![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png) **Structure**: diff --git a/_drafts/drafts-dev/database-schema-guide/201907.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/201907.0/catalog-schema.md index 617e89d94db..296fc9d6812 100644 --- a/_drafts/drafts-dev/database-schema-guide/201907.0/catalog-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/201907.0/catalog-schema.md @@ -52,7 +52,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value **Structure:** * Attributes are identified by the key (e.g. "material"). -* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata +* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata * Super-Attributes must be declared here with `is_super=true`. * **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data. @@ -191,7 +191,7 @@ Structure: ### Measurement Units {% info_block infoBox %} -Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit is the base one that we use for all internal calculations. +Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit's the base one that we use for all internal calculations. {% endinfo_block %} ![Measurement units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/measurement-units.png) @@ -210,7 +210,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca * **Base Unit** - An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item") - - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). + - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). * **Sales Unit** @@ -251,7 +251,7 @@ Even when the product is marked as splittable, Spryker may still save them into ### Packaging Units {% info_block infoBox %} -A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant: +A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant: {% endinfo_block %} ![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png) @@ -267,7 +267,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a **Structure:** -* A Packaging Unit is represented by a Concrete Product +* A Packaging Unit's represented by a Concrete Product * The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount. - `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples @@ -371,7 +371,7 @@ Spryker ships with several price related features. Here is an overview: | Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. | | Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- | | Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. | -| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | +| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | {% info_block errorBox %} The Promotional price feature is currently under development. {% endinfo_block %} diff --git a/_drafts/drafts-dev/database-schema-guide/201907.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/201907.0/sales-schema.md index 5ebded26a10..e04160e0000 100644 --- a/_drafts/drafts-dev/database-schema-guide/201907.0/sales-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/201907.0/sales-schema.md @@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have ### Customer Data -The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes. +The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes. ![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png) **Structure**: diff --git a/_drafts/drafts-dev/database-schema-guide/202001.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/202001.0/catalog-schema.md index 4ad3f44846d..de8b2b80a51 100644 --- a/_drafts/drafts-dev/database-schema-guide/202001.0/catalog-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/202001.0/catalog-schema.md @@ -52,7 +52,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value **Structure:** * Attributes are identified by the key (e.g. "material"). -* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata +* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata * Super-Attributes must be declared here with `is_super=true`. * **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data. @@ -191,7 +191,7 @@ Structure: ### Measurement Units {% info_block infoBox %} -Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit is the base one that we use for all internal calculations. +Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit's the base one that we use for all internal calculations. {% endinfo_block %} ![Measurement units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/measurement-units.png) @@ -210,7 +210,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca * **Base Unit** - An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item") - - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). + - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). * **Sales Unit** @@ -251,7 +251,7 @@ Even when the product is marked as splittable, Spryker may still save them into ### Packaging Units {% info_block infoBox %} -A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant: +A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant: {% endinfo_block %} ![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png) @@ -267,7 +267,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a **Structure:** -* A Packaging Unit is represented by a Concrete Product +* A Packaging Unit's represented by a Concrete Product * The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount. - `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples @@ -371,7 +371,7 @@ Spryker ships with several price related features. Here is an overview: | Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. | | Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- | | Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. | -| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | +| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | {% info_block errorBox %} The Promotional price feature is currently under development. {% endinfo_block %} diff --git a/_drafts/drafts-dev/database-schema-guide/202001.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/202001.0/sales-schema.md index d3fe09fe0b0..ddb1afe9de0 100644 --- a/_drafts/drafts-dev/database-schema-guide/202001.0/sales-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/202001.0/sales-schema.md @@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have ### Customer Data -The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes. +The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes. ![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png) **Structure**: diff --git a/_drafts/drafts-dev/database-schema-guide/202005.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/202005.0/catalog-schema.md index dfeba60691f..808b00c99ff 100644 --- a/_drafts/drafts-dev/database-schema-guide/202005.0/catalog-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/202005.0/catalog-schema.md @@ -52,7 +52,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value **Structure:** * Attributes are identified by the key (e.g. "material"). -* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata +* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata * Super-Attributes must be declared here with `is_super=true`. * **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data. @@ -191,7 +191,7 @@ Structure: ### Measurement Units {% info_block infoBox %} -Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit is the base one that we use for all internal calculations. +Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit's the base one that we use for all internal calculations. {% endinfo_block %} ![Measurement units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/measurement-units.png) @@ -210,7 +210,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca * **Base Unit** - An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item") - - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). + - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). * **Sales Unit** @@ -251,7 +251,7 @@ Even when the product is marked as splittable, Spryker may still save them into ### Packaging Units {% info_block infoBox %} -A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant: +A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant: {% endinfo_block %} ![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png) @@ -267,7 +267,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a **Structure:** -* A Packaging Unit is represented by a Concrete Product +* A Packaging Unit's represented by a Concrete Product * The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount. - `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples @@ -371,7 +371,7 @@ Spryker ships with several price related features. Here is an overview: | Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. | | Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- | | Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. | -| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | +| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | {% info_block errorBox %} The Promotional price feature is currently under development. {% endinfo_block %} diff --git a/_drafts/drafts-dev/database-schema-guide/202005.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/202005.0/sales-schema.md index a8845a957ea..4e11182d2c5 100644 --- a/_drafts/drafts-dev/database-schema-guide/202005.0/sales-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/202005.0/sales-schema.md @@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have ### Customer Data -The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes. +The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes. ![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png) **Structure**: diff --git a/_drafts/drafts-dev/database-schema-guide/202009.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/202009.0/catalog-schema.md index 3950fb7fe37..e4d41b8aa3c 100644 --- a/_drafts/drafts-dev/database-schema-guide/202009.0/catalog-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/202009.0/catalog-schema.md @@ -52,7 +52,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value **Structure:** * Attributes are identified by the key (e.g. "material"). -* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata +* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata * Super-Attributes must be declared here with `is_super=true`. * **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data. @@ -192,7 +192,7 @@ Structure: ### Measurement Units {% info_block infoBox %} -Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit is the base one that we use for all internal calculations. +Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit's the base one that we use for all internal calculations. {% endinfo_block %} ![Measurement units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/measurement-units.png) @@ -211,7 +211,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca * **Base Unit** - An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item") - - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). + - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). * **Sales Unit** @@ -252,7 +252,7 @@ Even when the product is marked as splittable, Spryker may still save them into ### Packaging Units {% info_block infoBox %} -A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant: +A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant: {% endinfo_block %} ![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png) @@ -268,7 +268,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a **Structure:** -* A Packaging Unit is represented by a Concrete Product +* A Packaging Unit's represented by a Concrete Product * The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount. - `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples @@ -372,7 +372,7 @@ Spryker ships with several price related features. Here is an overview: | Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. | | Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- | | Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. | -| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | +| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | {% info_block errorBox %} The Promotional price feature is currently under development. {% endinfo_block %} diff --git a/_drafts/drafts-dev/database-schema-guide/202009.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/202009.0/sales-schema.md index 6cffc1e199f..3566ad2b6e3 100644 --- a/_drafts/drafts-dev/database-schema-guide/202009.0/sales-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/202009.0/sales-schema.md @@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have ### Customer Data -The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes. +The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes. ![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png) **Structure**: diff --git a/_drafts/drafts-dev/database-schema-guide/202108.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/202108.0/catalog-schema.md index c3f118c0c6d..43df3fbddb7 100644 --- a/_drafts/drafts-dev/database-schema-guide/202108.0/catalog-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/202108.0/catalog-schema.md @@ -54,7 +54,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value **Structure:** * Attributes are identified by the key (e.g. "material"). -* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata +* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata * Super-Attributes must be declared here with `is_super=true`. * **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data. @@ -193,7 +193,7 @@ Structure: ### Measurement Units {% info_block infoBox %} -Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit is the base one that we use for all internal calculations. +Products can be sold in different **Measurement Units**. For instance, apples can be sold in "Item" and "Kilogram" amounts. Each product variant can be sold in one or multiple different units but only one unit's the base one that we use for all internal calculations. {% endinfo_block %} ![Measurement units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/measurement-units.png) @@ -212,7 +212,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca * **Base Unit** - An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item") - - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). + - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram). * **Sales Unit** @@ -253,7 +253,7 @@ Even when the product is marked as splittable, Spryker may still save them into ### Packaging Units {% info_block infoBox %} -A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant: +A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant: {% endinfo_block %} ![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png) @@ -269,7 +269,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a **Structure:** -* A Packaging Unit is represented by a Concrete Product +* A Packaging Unit's represented by a Concrete Product * The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount. - `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples @@ -373,7 +373,7 @@ Spryker ships with several price related features. Here is an overview: | Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. | | Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- | | Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. | -| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | +| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit: | {% info_block errorBox %} The Promotional price feature is currently under development. {% endinfo_block %} diff --git a/_drafts/drafts-dev/database-schema-guide/202108.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/202108.0/sales-schema.md index f78061069ed..746da8346d2 100644 --- a/_drafts/drafts-dev/database-schema-guide/202108.0/sales-schema.md +++ b/_drafts/drafts-dev/database-schema-guide/202108.0/sales-schema.md @@ -50,7 +50,7 @@ It is currently not possible to realize splits with Sales Order Items that have ### Customer Data -The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes. +The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes. ![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png) **Structure**: diff --git a/_drafts/drafts-dev/roadmap.md b/_drafts/drafts-dev/roadmap.md index 633e7b0f8ff..654f7dced43 100644 --- a/_drafts/drafts-dev/roadmap.md +++ b/_drafts/drafts-dev/roadmap.md @@ -44,7 +44,7 @@ The roadmap contains features and not architectural items, enhancements, technol |Click and Collect | | |Service and appointment scheduling| | |Pick and Collect application || -|Multistore - channels and stores|Channels decouple *what* you sell from *how* it is presented.
**Channels:****Stores:**| +|Multistore - channels and stores|Channels decouple *what* you sell from *how* it's presented.
**Channels:****Stores:**| |API enhancements| | |Back-Office UI improvements | | diff --git a/_drafts/for-commerce-quest/faq.md b/_drafts/for-commerce-quest/faq.md index 26ec9bb2f7c..c3ab4bd8629 100644 --- a/_drafts/for-commerce-quest/faq.md +++ b/_drafts/for-commerce-quest/faq.md @@ -23,7 +23,7 @@ Yes. We refer to third-party integrations as industry partners. They include ser ## Which new trends does your OS support? -As vendors of an operating system, our task is to ensure the quick development of apps. Since ROI timescales shorten increasingly and technology develops in ever quicker succession, it is difficult to look ahead even to 12 months. With this in mind, Spryker provides a starting point from which to develop applications in such areas as voice, chatbots, blockchain, AI, and more. +As vendors of an operating system, our task is to ensure the quick development of apps. Since ROI timescales shorten increasingly and technology develops in ever quicker succession, it's difficult to look ahead even to 12 months. With this in mind, Spryker provides a starting point from which to develop applications in such areas as voice, chatbots, blockchain, AI, and more. ## What is Spryker's solution for omnichannel? @@ -43,7 +43,7 @@ Capabilities are groups of features that are composed of modules, such as a cart ## How expensive is an average Spryker project? -The price depends on the number of apps and on the type of app you are going to build. As a rule of thumb, it is possible to build and deploy a single slimline app for most standard use cases within a few weeks—for example, a voice app for Alexa or a simple chatbot. The aim is to keep each app simple and relevant and to lock away as much of it in the OS as possible. This means that building a standard, run-of-the-mill webshop with Spryker does not take longer than with other systems. Spryker's real strength, however, is the variety of apps. So, building a B2C case with 4-5 apps (for example, a shop, a web app, a chatbot, voice, and POS) using a standard system would be complex, very expensive, and frustratingly slow undertaking. Unlike standard systems, such a use case is part of Spryker's DNA. Besides, in IoT scenarios, Spryker is actually better than most of the other solutions because of the absence of dedicated technology. +The price depends on the number of apps and on the type of app you are going to build. As a rule of thumb, it's possible to build and deploy a single slimline app for most standard use cases within a few weeks—for example, a voice app for Alexa or a simple chatbot. The aim is to keep each app simple and relevant and to lock away as much of it in the OS as possible. This means that building a standard, run-of-the-mill webshop with Spryker does not take longer than with other systems. Spryker's real strength, however, is the variety of apps. So, building a B2C case with 4-5 apps (for example, a shop, a web app, a chatbot, voice, and POS) using a standard system would be complex, very expensive, and frustratingly slow undertaking. Unlike standard systems, such a use case is part of Spryker's DNA. Besides, in IoT scenarios, Spryker is actually better than most of the other solutions because of the absence of dedicated technology. ## How might an MVP look like? diff --git a/_drafts/for-commerce-quest/mvp-project-structuring.md b/_drafts/for-commerce-quest/mvp-project-structuring.md index 1e918b6bdc6..391a2c83fd0 100644 --- a/_drafts/for-commerce-quest/mvp-project-structuring.md +++ b/_drafts/for-commerce-quest/mvp-project-structuring.md @@ -98,7 +98,7 @@ The following image below is an example of how to map functionality to assess th {% endinfo_block %} -Once functionality has been mapped, it is easier to assess the scope, importance, and cost of each feature. +Once functionality has been mapped, it's easier to assess the scope, importance, and cost of each feature. The next step is to map features to specific releases. With this method, you can formulate a fair assessment of the progression of your release scope and plan your work and resources accordingly. @@ -137,7 +137,7 @@ Both methods result in a document listing the tasks, resources, and timeline nee {% info_block infoBox "Examples:" %} -The Data Export functionality is ideal to be tackled with the spike tickets approach because it is a single functionality with no other external dependencies that need to be considered.

On the other hand, something like an ERP Connection that spans many processes and many edge cases needs in-depth analysis. +The Data Export functionality is ideal to be tackled with the spike tickets approach because it's a single functionality with no other external dependencies that need to be considered.

On the other hand, something like an ERP Connection that spans many processes and many edge cases needs in-depth analysis. So you would have a plan of attack workshops with the shop and ERP team and also with logistics and payment experts and combine the conclusions into a single plan. @@ -156,7 +156,7 @@ Choose the launch scenario that best suits the nature of the functionality that {% info_block infoBox %} -For example, if the new feature has to do with financial or highly sensitive information, it is better to choose the more conservative canary appropriate. +For example, if the new feature has to do with financial or highly sensitive information, it's better to choose the more conservative canary appropriate. {% endinfo_block %} diff --git a/_drafts/scalable-application-infrastructure-for-publish-and-sync-workers.md b/_drafts/scalable-application-infrastructure-for-publish-and-sync-workers.md index c88cfe40d98..6ecc13f80d9 100644 --- a/_drafts/scalable-application-infrastructure-for-publish-and-sync-workers.md +++ b/_drafts/scalable-application-infrastructure-for-publish-and-sync-workers.md @@ -79,7 +79,7 @@ Symbols: ## RAM distribution -To exclude runtime memory limit issues, the memory allocated to each worker is also managed by computational resource manager. +To exclude runtime memory limit'ssues, the memory allocated to each worker is also managed by computational resource manager. The amount of RAM available for workers is calculated based on `memory_get_usage();` and `ini_get('memory_limit');` and distributed evenly. Formula: diff --git a/_includes/pbc/all/glue-api-guides/202311.0/items-response-attributes.md b/_includes/pbc/all/glue-api-guides/202311.0/items-response-attributes.md index 52784388981..fd25941e044 100644 --- a/_includes/pbc/all/glue-api-guides/202311.0/items-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202311.0/items-response-attributes.md @@ -5,7 +5,7 @@ | items | groupKey | String | Unique item identifier. The value is generated based on product properties. | | items | abstractSku | String | Unique identifier of the abstract product owning this concrete product. | | items | amount | Integer | Amount of the products in the cart. | -| items | unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | +| items | unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | | items | sumPrice | Integer | Sum of all items prices calculated. | | items | taxRate | Integer | Current tax rate in per cent. | | items | unitNetPrice | Integer | Single item net price. | diff --git a/_includes/pbc/all/glue-api-guides/202311.0/orders-response-attributes.md b/_includes/pbc/all/glue-api-guides/202311.0/orders-response-attributes.md index e5c5bef8f35..7eb753fc7c6 100644 --- a/_includes/pbc/all/glue-api-guides/202311.0/orders-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202311.0/orders-response-attributes.md @@ -64,7 +64,7 @@ | items.taxRate | Integer | Current tax rate, in percent. | | items.unitNetPrice | Integer | Single item net price. | | items.sumNetPrice | Integer | Sum total of net prices for all items. | -| items.unitPrice | Integer | Single item price without assuming if it is new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. | +| items.unitPrice | Integer | Single item price without assuming if it's new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. | | items.unitTaxAmountFullAggregation | Integer | Total tax amount for a given item, with additions. | | items.sumTaxAmountFullAggregation | Integer | Total tax amount for a given sum of items, with additions. | | items.refundableAmount | Integer | Available refundable amount for an item (order only). | @@ -104,7 +104,7 @@ | RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | | salesUnit | Object | List of attributes defining the sales unit to be used for item amount calculation. | -| conversion | integer | Factor to convert a value from sales to base unit. If it is "null", the information is taken from the global conversions. | +| conversion | integer | Factor to convert a value from sales to base unit. If it's "null", the information is taken from the global conversions. | | precision | integer | Ratio between a sales unit and a base unit. | | measurementUnit | string | Code of the measurement unit. | | name | String | Name of the measurement unit. | diff --git a/_includes/pbc/all/glue-api-guides/202311.0/shipments-response-attributes.md b/_includes/pbc/all/glue-api-guides/202311.0/shipments-response-attributes.md index c47614a21d0..a86d767e894 100644 --- a/_includes/pbc/all/glue-api-guides/202311.0/shipments-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202311.0/shipments-response-attributes.md @@ -16,8 +16,8 @@ | shipments | shippingAddress.iso2Code | String | Specifies an ISO 2 Country Code to use. | | shipments | shippingAddress.company | String | Specifies the customer's company. | | shipments | shippingAddress.phone | String | Specifies the customer's phone number. | -| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it is the default shipping address of the customer. | -| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it is the default billing address of the customer. | +| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it's the default shipping address of the customer. | +| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it's the default billing address of the customer. | | shipments | shippingAddress.idCompanyBusinessUnitAddress | String | The unique identifier of a business unit address used for this shipment. | | shipments | selectedShipmentMethod | Object | Describes the shipment method for the shipment. | | shipments | selectedShipmentMethod.id | String | The unique identifier of the shipment method. | diff --git a/_includes/pbc/all/glue-api-guides/202404.0/items-response-attributes.md b/_includes/pbc/all/glue-api-guides/202404.0/items-response-attributes.md index 52784388981..fd25941e044 100644 --- a/_includes/pbc/all/glue-api-guides/202404.0/items-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202404.0/items-response-attributes.md @@ -5,7 +5,7 @@ | items | groupKey | String | Unique item identifier. The value is generated based on product properties. | | items | abstractSku | String | Unique identifier of the abstract product owning this concrete product. | | items | amount | Integer | Amount of the products in the cart. | -| items | unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | +| items | unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | | items | sumPrice | Integer | Sum of all items prices calculated. | | items | taxRate | Integer | Current tax rate in per cent. | | items | unitNetPrice | Integer | Single item net price. | diff --git a/_includes/pbc/all/glue-api-guides/202404.0/orders-response-attributes.md b/_includes/pbc/all/glue-api-guides/202404.0/orders-response-attributes.md index e5c5bef8f35..7eb753fc7c6 100644 --- a/_includes/pbc/all/glue-api-guides/202404.0/orders-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202404.0/orders-response-attributes.md @@ -64,7 +64,7 @@ | items.taxRate | Integer | Current tax rate, in percent. | | items.unitNetPrice | Integer | Single item net price. | | items.sumNetPrice | Integer | Sum total of net prices for all items. | -| items.unitPrice | Integer | Single item price without assuming if it is new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. | +| items.unitPrice | Integer | Single item price without assuming if it's new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. | | items.unitTaxAmountFullAggregation | Integer | Total tax amount for a given item, with additions. | | items.sumTaxAmountFullAggregation | Integer | Total tax amount for a given sum of items, with additions. | | items.refundableAmount | Integer | Available refundable amount for an item (order only). | @@ -104,7 +104,7 @@ | RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | | salesUnit | Object | List of attributes defining the sales unit to be used for item amount calculation. | -| conversion | integer | Factor to convert a value from sales to base unit. If it is "null", the information is taken from the global conversions. | +| conversion | integer | Factor to convert a value from sales to base unit. If it's "null", the information is taken from the global conversions. | | precision | integer | Ratio between a sales unit and a base unit. | | measurementUnit | string | Code of the measurement unit. | | name | String | Name of the measurement unit. | diff --git a/_includes/pbc/all/glue-api-guides/202404.0/product-management-attributes-response-attributes.md b/_includes/pbc/all/glue-api-guides/202404.0/product-management-attributes-response-attributes.md index 4fb04c5cbca..dcc73ec6cb4 100644 --- a/_includes/pbc/all/glue-api-guides/202404.0/product-management-attributes-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202404.0/product-management-attributes-response-attributes.md @@ -1,7 +1,7 @@ | RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | --- | | product-management-attributes | allowInput | Boolean | Indicates if custom values can be entered for this product attribute. | -| product-management-attributes | isSuper | Boolean | Indicates if it is a super attribute or not. | +| product-management-attributes | isSuper | Boolean | Indicates if it's a super attribute or not. | | product-management-attributes | inputType | String | Input type of the product attribute, for example, text, number, select, etc. | | product-management-attributes | localeName | String | Name of the locale. | | product-management-attributes | values | Array | Possible values of the attribute. | diff --git a/_includes/pbc/all/glue-api-guides/202404.0/product-measurement-units-response-attributes.md b/_includes/pbc/all/glue-api-guides/202404.0/product-measurement-units-response-attributes.md index f1f9c4aea0f..b1f3cab7dac 100644 --- a/_includes/pbc/all/glue-api-guides/202404.0/product-measurement-units-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202404.0/product-measurement-units-response-attributes.md @@ -1,5 +1,5 @@ | RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | --- | | product-measurement-units | name | string | Name of the product measurement unit. | -| product-measurement-units | defaultPrecision | integer | Default ratio between a sales unit and a base unit. It is used when precision for a related sales unit is not specified. | +| product-measurement-units | defaultPrecision | integer | Default ratio between a sales unit and a base unit. It is used when precision for a related sales unit's not specified. | | product-measurement-units | measurementUnitCode | string | Code of the measurement unit. | diff --git a/_includes/pbc/all/glue-api-guides/202404.0/sales-units-response-attributes.md b/_includes/pbc/all/glue-api-guides/202404.0/sales-units-response-attributes.md index 60dbf068e5c..15cd818c0ba 100644 --- a/_includes/pbc/all/glue-api-guides/202404.0/sales-units-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202404.0/sales-units-response-attributes.md @@ -1,7 +1,7 @@ | RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | --- | -| sales-units | conversion | integer | Factor to convert a value from sales to base unit. If it is "null", the information is taken from the global conversions. | +| sales-units | conversion | integer | Factor to convert a value from sales to base unit. If it's "null", the information is taken from the global conversions. | | sales-units | precision | integer | Ratio between a sales unit and a base unit. | -| sales-units | is displayed | boolean | Defines if the sales unit is displayed on the product details page. | -| sales-units | is default | boolean | Defines if the sales unit is selected by default on the product details page. | +| sales-units | is displayed | boolean | Defines if the sales unit's displayed on the product details page. | +| sales-units | is default | boolean | Defines if the sales unit's selected by default on the product details page. | | sales-units | measurementUnitCode | string | Code of the measurement unit. | diff --git a/_includes/pbc/all/glue-api-guides/202404.0/shipments-response-attributes.md b/_includes/pbc/all/glue-api-guides/202404.0/shipments-response-attributes.md index 7529ec9285e..5f30bc5a106 100644 --- a/_includes/pbc/all/glue-api-guides/202404.0/shipments-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202404.0/shipments-response-attributes.md @@ -14,8 +14,8 @@ | shipments | shippingAddress.iso2Code | String | Specifies an ISO 2 Country Code to use. | | shipments | shippingAddress.company | String | Specifies the customer's company. | | shipments | shippingAddress.phone | String | Specifies the customer's phone number. | -| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it is the default shipping address of the customer. | -| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it is the default billing address of the customer. | +| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it's the default shipping address of the customer. | +| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it's the default billing address of the customer. | | shipments | shippingAddress.idCompanyBusinessUnitAddress | String | The unique identifier of a business unit address used for this shipment. | | shipments | selectedShipmentMethod | Object | Describes the shipment method for the shipment. | | shipments | selectedShipmentMethod.id | String | The unique identifier of the shipment method. | diff --git a/_includes/pbc/all/glue-api-guides/202410.0/items-response-attributes.md b/_includes/pbc/all/glue-api-guides/202410.0/items-response-attributes.md index 52784388981..fd25941e044 100644 --- a/_includes/pbc/all/glue-api-guides/202410.0/items-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202410.0/items-response-attributes.md @@ -5,7 +5,7 @@ | items | groupKey | String | Unique item identifier. The value is generated based on product properties. | | items | abstractSku | String | Unique identifier of the abstract product owning this concrete product. | | items | amount | Integer | Amount of the products in the cart. | -| items | unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | +| items | unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | | items | sumPrice | Integer | Sum of all items prices calculated. | | items | taxRate | Integer | Current tax rate in per cent. | | items | unitNetPrice | Integer | Single item net price. | diff --git a/_includes/pbc/all/glue-api-guides/202410.0/orders-response-attributes.md b/_includes/pbc/all/glue-api-guides/202410.0/orders-response-attributes.md index e5c5bef8f35..7eb753fc7c6 100644 --- a/_includes/pbc/all/glue-api-guides/202410.0/orders-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202410.0/orders-response-attributes.md @@ -64,7 +64,7 @@ | items.taxRate | Integer | Current tax rate, in percent. | | items.unitNetPrice | Integer | Single item net price. | | items.sumNetPrice | Integer | Sum total of net prices for all items. | -| items.unitPrice | Integer | Single item price without assuming if it is new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. | +| items.unitPrice | Integer | Single item price without assuming if it's new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. | | items.unitTaxAmountFullAggregation | Integer | Total tax amount for a given item, with additions. | | items.sumTaxAmountFullAggregation | Integer | Total tax amount for a given sum of items, with additions. | | items.refundableAmount | Integer | Available refundable amount for an item (order only). | @@ -104,7 +104,7 @@ | RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | | salesUnit | Object | List of attributes defining the sales unit to be used for item amount calculation. | -| conversion | integer | Factor to convert a value from sales to base unit. If it is "null", the information is taken from the global conversions. | +| conversion | integer | Factor to convert a value from sales to base unit. If it's "null", the information is taken from the global conversions. | | precision | integer | Ratio between a sales unit and a base unit. | | measurementUnit | string | Code of the measurement unit. | | name | String | Name of the measurement unit. | diff --git a/_includes/pbc/all/glue-api-guides/202410.0/product-management-attributes-response-attributes.md b/_includes/pbc/all/glue-api-guides/202410.0/product-management-attributes-response-attributes.md index 4fb04c5cbca..dcc73ec6cb4 100644 --- a/_includes/pbc/all/glue-api-guides/202410.0/product-management-attributes-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202410.0/product-management-attributes-response-attributes.md @@ -1,7 +1,7 @@ | RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | --- | | product-management-attributes | allowInput | Boolean | Indicates if custom values can be entered for this product attribute. | -| product-management-attributes | isSuper | Boolean | Indicates if it is a super attribute or not. | +| product-management-attributes | isSuper | Boolean | Indicates if it's a super attribute or not. | | product-management-attributes | inputType | String | Input type of the product attribute, for example, text, number, select, etc. | | product-management-attributes | localeName | String | Name of the locale. | | product-management-attributes | values | Array | Possible values of the attribute. | diff --git a/_includes/pbc/all/glue-api-guides/202410.0/product-measurement-units-response-attributes.md b/_includes/pbc/all/glue-api-guides/202410.0/product-measurement-units-response-attributes.md index f1f9c4aea0f..b1f3cab7dac 100644 --- a/_includes/pbc/all/glue-api-guides/202410.0/product-measurement-units-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202410.0/product-measurement-units-response-attributes.md @@ -1,5 +1,5 @@ | RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | --- | | product-measurement-units | name | string | Name of the product measurement unit. | -| product-measurement-units | defaultPrecision | integer | Default ratio between a sales unit and a base unit. It is used when precision for a related sales unit is not specified. | +| product-measurement-units | defaultPrecision | integer | Default ratio between a sales unit and a base unit. It is used when precision for a related sales unit's not specified. | | product-measurement-units | measurementUnitCode | string | Code of the measurement unit. | diff --git a/_includes/pbc/all/glue-api-guides/202410.0/sales-units-response-attributes.md b/_includes/pbc/all/glue-api-guides/202410.0/sales-units-response-attributes.md index 60dbf068e5c..15cd818c0ba 100644 --- a/_includes/pbc/all/glue-api-guides/202410.0/sales-units-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202410.0/sales-units-response-attributes.md @@ -1,7 +1,7 @@ | RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | --- | -| sales-units | conversion | integer | Factor to convert a value from sales to base unit. If it is "null", the information is taken from the global conversions. | +| sales-units | conversion | integer | Factor to convert a value from sales to base unit. If it's "null", the information is taken from the global conversions. | | sales-units | precision | integer | Ratio between a sales unit and a base unit. | -| sales-units | is displayed | boolean | Defines if the sales unit is displayed on the product details page. | -| sales-units | is default | boolean | Defines if the sales unit is selected by default on the product details page. | +| sales-units | is displayed | boolean | Defines if the sales unit's displayed on the product details page. | +| sales-units | is default | boolean | Defines if the sales unit's selected by default on the product details page. | | sales-units | measurementUnitCode | string | Code of the measurement unit. | diff --git a/_includes/pbc/all/glue-api-guides/202410.0/shipments-response-attributes.md b/_includes/pbc/all/glue-api-guides/202410.0/shipments-response-attributes.md index 7529ec9285e..5f30bc5a106 100644 --- a/_includes/pbc/all/glue-api-guides/202410.0/shipments-response-attributes.md +++ b/_includes/pbc/all/glue-api-guides/202410.0/shipments-response-attributes.md @@ -14,8 +14,8 @@ | shipments | shippingAddress.iso2Code | String | Specifies an ISO 2 Country Code to use. | | shipments | shippingAddress.company | String | Specifies the customer's company. | | shipments | shippingAddress.phone | String | Specifies the customer's phone number. | -| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it is the default shipping address of the customer. | -| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it is the default billing address of the customer. | +| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it's the default shipping address of the customer. | +| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it's the default billing address of the customer. | | shipments | shippingAddress.idCompanyBusinessUnitAddress | String | The unique identifier of a business unit address used for this shipment. | | shipments | selectedShipmentMethod | Object | Describes the shipment method for the shipment. | | shipments | selectedShipmentMethod.id | String | The unique identifier of the shipment method. | diff --git a/_includes/pbc/all/install-features/202307.0/enable-gift-cards.md b/_includes/pbc/all/install-features/202307.0/enable-gift-cards.md index 031d6cb4247..fada0bdabb7 100644 --- a/_includes/pbc/all/install-features/202307.0/enable-gift-cards.md +++ b/_includes/pbc/all/install-features/202307.0/enable-gift-cards.md @@ -31,7 +31,7 @@ spryker/product-management:"^0.12.0" | `GiftCardIsActiveDecisionRulePlugin` | Doesn’t allow using inactive Gift Cards. |`GiftCardDependencyProvider::getDecisionRulePlugins` | - | | `GiftCardDiscountableItemFilterPlugin` |Restricts using a Gift Card for another Gift Cards in a cart. The plugin filters out Gift Cards from discountable items. |`DiscountDependencyProvider::getDiscountableItemFilterPlugins` | - | | `GiftCardIsUsedDecisionRulePlugin` | As a part of the replacement strategy, this plugin does not allow using a Gift Card twice. |`GiftCardDependencyProvider::getDecisionRulePlugins` | Replacement | -| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it is in the cart. | `CartDependencyProvider::getExpanderPlugins` | - | +| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it's in the cart. | `CartDependencyProvider::getExpanderPlugins` | - | | `GiftCardCheckoutDoSaveOrderPlugin` | Saves a Gift Card with populated data when an order is placed. Keeps Gift Card as an order payment method. | `CheckoutDependencyProvider::getCheckoutOrderSavers` | - | | `GiftCardPaymentMethodFilterPlugin` | Now, every payment method is compatible with a Gift Card in the cart. The plugin filters out all incompatible payment methods from available ones during checkout payment methods step. | `PaymentDependencyProvider::getPaymentMethodFilterPlugins` | - | | `GiftCardCheckoutPreConditionPlugin` | Confirms that a Gift Card is not used at the moment and that payment method amount assigned to the Gift Card is no more than the Gift Card amount itself.. | `CheckoutDependencyProvider::getCheckoutPreConditions` | - | diff --git a/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore-the-prices-feature.md b/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore-the-prices-feature.md index 59589943897..d8ca3aaee73 100644 --- a/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore-the-prices-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore-the-prices-feature.md @@ -134,7 +134,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider {% info_block warningBox "Verification" %} -Using the following data, make sure that when you add, update, or delete a store currency, it is exported to or removed from Storage. +Using the following data, make sure that when you add, update, or delete a store currency, it's exported to or removed from Storage. Storage type: Redis Target entity: Store diff --git a/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore.md b/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore.md index 4f0646e5af3..1a8ff669686 100644 --- a/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore.md +++ b/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore.md @@ -648,7 +648,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider {% info_block warningBox "Verification" %} -Ensure that, when a store created, updated, or deleted with local and country data. And it is exported to or removed from Redis. +Ensure that, when a store created, updated, or deleted with local and country data. And it's exported to or removed from Redis. Storage type: Redis Target entity: Store diff --git a/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-multiple-carts-glue-api.md b/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-multiple-carts-glue-api.md index f1cbb92e007..f3045c5b42a 100644 --- a/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-multiple-carts-glue-api.md +++ b/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-multiple-carts-glue-api.md @@ -91,7 +91,7 @@ Make sure that the following endpoints are available: {% info_block warningBox “Verification” %} -Make sure that it is possible to create more than one cart. +Make sure that it's possible to create more than one cart. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-navigation-glue-api.md b/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-navigation-glue-api.md index e3218cda94c..c59ed7ec7b5 100644 --- a/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-navigation-glue-api.md +++ b/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-navigation-glue-api.md @@ -155,7 +155,7 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency {% info_block warningBox “Verification” %} -Now, it is possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.) +Now, it's possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.) {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202307.0/install-the-agent-assist-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-agent-assist-feature.md index eb6f824d95a..147ee90effd 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-agent-assist-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-agent-assist-feature.md @@ -203,7 +203,7 @@ Add environment configuration for the agent security: |----------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| | SecurityBlockerStorefrontAgentConstants::AGENT_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent | | SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent | -| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent | +| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent | **config/Shared/config_default.php** diff --git a/_includes/pbc/all/install-features/202307.0/install-the-approval-process-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-approval-process-feature.md index 23d309371d7..a15fbd28ec8 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-approval-process-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-approval-process-feature.md @@ -144,7 +144,7 @@ quote_approval.cart.waiting_approval,"Sie können diese Bestellung aufgrund eine quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request because of approver limit.",en_US quote_approval.create.approver_cant_approve_quote,"Der ausgewählte Manager kann Ihre Anfrage aufgrund des Genehmigungslimits nicht genehmigen.",de_DE quote_approval.create.you_cant_approve_quote,"You can't approve or decline this cart because it's amount higher that your Approver limit.",en_US -quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit ist.",de_DE +quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit'st.",de_DE quote_approval.create.quote_already_approved,"This Cart was already approved.",en_US quote_approval.create.quote_already_approved,"Dieser Einkaufswagen wurde schon zur Genehmigung gesendet.",de_DE quote_approval.create.quote_already_declined,"This Cart was already declined.",en_US @@ -448,7 +448,7 @@ quote_approval_widget.cart.status.waiting,"Waiting",en_US quote_approval_widget.cart.status.waiting,"Wartet",de_DE quote_approval_widget.shared_cart_warning,"After a cart has been sent to approval, all of its shares will be dismissed.",en_US quote_approval_widget.shared_cart_warning,"Nachdem der Warenkorb zur Genehmigung gesendet wurde, wird sein Sharing aufgehoben.",de_DE -quote_approval_widget.limit_text,"Your purchase limit is %amount%. To spend more, request approval from your manager.",en_US +quote_approval_widget.limit_text,"Your purchase limit's %amount%. To spend more, request approval from your manager.",en_US quote_approval_widget.limit_text,"Ihr Einkaufsrahmen liegt bei %amount%. Um mehr auszugeben, fordern Sie bitte die Genehmigung bei Ihrem Manager an",de_DE quote_approval_widget.no_limit_text,"You do not have a purchase limit",en_US quote_approval_widget.no_limit_text,"Sie haben kein Einkaufslimit",de_DE diff --git a/_includes/pbc/all/install-features/202307.0/install-the-availability-notification-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-availability-notification-feature.md index 755cd86a704..d64c958051c 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-availability-notification-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-availability-notification-feature.md @@ -399,7 +399,7 @@ availability_notification_subscription.mail.notification.subject,"%name% is avai availability_notification_subscription.mail.notification.subject,"%name% ist wieder verfügbar!",de_DE availability_notification_subscription.mail.notification.head,"%name% is available again!",en_US availability_notification_subscription.mail.notification.head,"%name% ist wieder verfügbar",de_DE -availability_notification_subscription.mail.notification.body,"The wait is over, you can not add this product inside your cart.",en_US +availability_notification_subscription.mail.notification.body,"The wait's over, you can not add this product inside your cart.",en_US availability_notification_subscription.mail.notification.body,"Das Warten hat ein Ende, Sie können dieses Produkt nicht in Ihren Warenkorb legen.",de_DE availability_notification_subscription.mail.copyright,"Copyright © current year company name, All rights reserved.

",en_US availability_notification_subscription.mail.copyright,"Copyright © Name des aktuellen Jahres, Alle Rechte vorbehalten.

",de_DE diff --git a/_includes/pbc/all/install-features/202307.0/install-the-category-image-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-category-image-feature.md index 1d9f41e6cab..f200dcf7690 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-category-image-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-category-image-feature.md @@ -263,7 +263,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency {% info_block warningBox "Verification" %} -Make sure that when a category image is created, updated, or deleted, it is exported or removed from Redis accordingly. +Make sure that when a category image is created, updated, or deleted, it's exported or removed from Redis accordingly. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202307.0/install-the-category-management-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-category-management-feature.md index e7ea07ca1dd..8894184c2c4 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-category-management-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-category-management-feature.md @@ -710,7 +710,7 @@ Make sure that *category-node*, *category-tree* synchronization plugins works co {% info_block warningBox "Verification" %} -Make sure that when a category is created or edited through ORM, it is exported to Redis and Elasticsearch accordingly. +Make sure that when a category is created or edited through ORM, it's exported to Redis and Elasticsearch accordingly. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | | --- | --- | --- | diff --git a/_includes/pbc/all/install-features/202307.0/install-the-company-account-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-company-account-feature.md index c27d44c1c59..58d5498bedc 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-company-account-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-company-account-feature.md @@ -329,7 +329,7 @@ Enable the following behaviors by registering the plugins: | DefaultCompanyUserCustomerTransferExpanderPlugin | Sets a default company user for a Business on Behalf customer if a company user has not been selected yet. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer | | IsOnBehalfCustomerTransferExpanderPlugin | Sets the `CustomerTransfer.IsOnBehalf` property so that other features can determine if the selected company user is a Business on Behalf company user. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer | | CompanyUserAccessTokenAuthenticationHandlerPlugin | Provides functionality to log in a customer by an access token. | None | Spryker\Client\OauthCompanyUser\Plugin\Customer | -| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it is already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer | +| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it's already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer | | CompanyUserAccessTokenOauthUserProviderPlugin | Provides a user transfer by a company user ID. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth | | CompanyUserAccessTokenOauthGrantTypeConfigurationProviderPlugin | Provides the configuration of `CompanyUser` `GrantType`. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth | | OauthCompanyUserInstallerPlugin| Creates new OAuth scope—adds `company_user scope` to the `spy_oauth_scope` table.) | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Installer | @@ -729,7 +729,7 @@ business_on_behalf_widget.change_company_user,Change Company User,en_US business_on_behalf_widget.change_company_user,Firmenbenutzer Profil ändern,de_DE company_user.business_on_behalf.error.company_not_active,"You can not select this company user, company is not active.",en_US company_user.business_on_behalf.error.company_not_active,"Sie können diesen Firmennutzer nicht auswählen da die Firma inaktiv ist",de_DE -company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it is invalid.",en_US +company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it's invalid.",en_US company_user.business_on_behalf.error.company_user_invalid,"Sie können diesen Firmennutzer nicht auswählen da er ungültig ist",de_DE customer_page.error.customer_already_logged_in,Customer already logged in.,en_US customer_page.error.customer_already_logged_in,Der Kunde ist bereits eingeloggt.,de_DE diff --git a/_includes/pbc/all/install-features/202307.0/install-the-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-configurable-bundle-feature.md index 4aae85c18e0..fc8c949fc1a 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-configurable-bundle-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-configurable-bundle-feature.md @@ -605,7 +605,7 @@ class ConfigurableBundlePageSearchConfig extends SprykerConfigurableBundlePageSe * from `spy_configurable_bundle_template_storage` table to Redis * from `spy_configurable_bundle_template_page_search` table to Elasticsearch -3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it is exported to Redis or Elasticsearch accordingly. +3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it's exported to Redis or Elasticsearch accordingly. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | | --- | --- | --- | diff --git a/_includes/pbc/all/install-features/202307.0/install-the-customer-access-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-customer-access-feature.md index 1d3ce1cb6f4..4019eb1feb4 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-customer-access-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-customer-access-feature.md @@ -170,7 +170,7 @@ class EventDependencyProvider extends SprykerEventDependencyProvider {% info_block warningBox "Verification" %} -Make sure that when a customer access rule is created, updated, or deleted, it is exported (or removed) to Redis. +Make sure that when a customer access rule is created, updated, or deleted, it's exported (or removed) to Redis. | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | |-------------------------------------|------------------------------------| diff --git a/_includes/pbc/all/install-features/202307.0/install-the-discontinued-products-product-labels-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-discontinued-products-product-labels-feature.md index 3528d1a6f74..6469c8e033c 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-discontinued-products-product-labels-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-discontinued-products-product-labels-feature.md @@ -79,6 +79,6 @@ class ProductLabelDependencyProvider extends SprykerProductLabelDependencyProvid {% info_block warningBox "Verification" %} -Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it is assigned. +Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it's assigned. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202307.0/install-the-file-manager-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-file-manager-feature.md index e43b874a7b3..081598d2a2e 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-file-manager-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-file-manager-feature.md @@ -439,6 +439,6 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider {% info_block warningBox "Verification" %} -When a file data is created, updated, or deleted, make sure it is exported or removed from Redis accordingly. +When a file data is created, updated, or deleted, make sure it's exported or removed from Redis accordingly. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202307.0/install-the-merchant-custom-prices-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-merchant-custom-prices-feature.md index 2584aa3c871..b910894bb19 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-merchant-custom-prices-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-merchant-custom-prices-feature.md @@ -493,7 +493,7 @@ Make sure that there is the "Merchant Price Dimension" drop-down in the Back Off {% info_block warningBox "Verification" %} -Make sure that a logged in user, who belongs to a company business unit and that business unit is assigned to some Merchant Relationship with specified prices, sees Merchant Relationship prices on the Catalog and on the Product page.
Make sure that this user sees MIN price if their business unit is assigned to multiple Merchant Relationships with different prices for the same product. +Make sure that a logged in user, who belongs to a company business unit and that business unit's assigned to some Merchant Relationship with specified prices, sees Merchant Relationship prices on the Catalog and on the Product page.
Make sure that this user sees MIN price if their business unit's assigned to multiple Merchant Relationships with different prices for the same product. {% endinfo_block %} ### Ensure compatibility diff --git a/_includes/pbc/all/install-features/202307.0/install-the-multiple-carts-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-multiple-carts-feature.md index 62ca6a0c41f..f1d45297026 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-multiple-carts-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-multiple-carts-feature.md @@ -331,7 +331,7 @@ Make sure that customer carts have unique names. If a customer creates a cart wi Example: -If the name "Shopping cart" already exists, it is changed to the following: +If the name "Shopping cart" already exists, it's changed to the following: * Shopping cart → Shopping cart 1 * Shopping cart → Shopping cart 2 @@ -427,7 +427,7 @@ Register the following plugins: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | |---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|---------------------------------| -| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it is not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin | +| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it's not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin | **src/Pyz/Client/Customer/CustomerDependencyProvider.php** diff --git a/_includes/pbc/all/install-features/202307.0/install-the-packaging-units-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-packaging-units-feature.md index 14d64f65ddb..235a4c12a9a 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-packaging-units-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-packaging-units-feature.md @@ -956,7 +956,7 @@ Go through the checkout workflow, make an order and check if the following state * `amount_base_measurement_unit_name` Go to the Zed UI Sales overview, check the order, and verify the following: -- The correct sales unit is displayed. +- The correct sales unit's displayed. - The correct amount is displayed per sales order item. Make sure the following: diff --git a/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-feature.md index b2d3beeefd5..c9cafadc2b8 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-feature.md @@ -210,7 +210,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency {% info_block warningBox "Verification" %} -Ensure that, when a product bundle is created, updated, or deleted, it is exported to or removed from Redis. +Ensure that, when a product bundle is created, updated, or deleted, it's exported to or removed from Redis. Storage type: Redis Target entity: Product Bundle diff --git a/_includes/pbc/all/install-features/202307.0/install-the-product-category-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-product-category-feature.md index f528dd0a1b0..55b924d04d3 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-product-category-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-product-category-feature.md @@ -345,7 +345,7 @@ class EventBehaviorDependencyProvider extends SprykerEventBehaviorDependencyProv {% info_block warningBox "Verification" %} -When a category product assignment is changed through ORM, make sure it is exported to Redis. +When a category product assignment is changed through ORM, make sure it's exported to Redis. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | |--------------|-------------------------|--------------------------------------| diff --git a/_includes/pbc/all/install-features/202307.0/install-the-product-images-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-product-images-configurable-bundle-feature.md index 92e36980ad9..23db51e003f 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-product-images-configurable-bundle-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-product-images-configurable-bundle-feature.md @@ -153,7 +153,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency 1. Make sure that when you added some data to tables `spy_product_image_set`, `spy_product_image_set_to_product_image`, `spy_product_image` with `fk_resource_configurable_bundle_template` and run `console trigger:event -r configurable_bundle_template_image` command, the changes are reflected in the `spy_configurable_bundle_template_image_storage` table. 2. Make sure that after step #4 or after `console sync:data configurable_bundle_template_image` command execution, the data s added to the `spy_configurable_bundle_template_image_storage` table and Redis. -3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it is exported to Redis accordingly. +3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it's exported to Redis accordingly. 4. Ensure that Elasticsearch document has been expanded by images property. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202307.0/install-the-product-measurement-unit-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-product-measurement-unit-feature.md index 88112f38069..e141d4e44e5 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-product-measurement-unit-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-product-measurement-unit-feature.md @@ -534,9 +534,9 @@ sales_unit_19,218_1232,ITEM,1,1,1,1 |concrete_sku|mandatory|string|215_123|An already existing product concrete SKU.| |code|mandatory|string|METR |An already existing measurement unit code that will be used to convert back and forth with the base unit defined in product abstract.| |conversion|mandatory|float, empty|5|

A custom multiplier that is used to calculate base unit. This field can be empty if both base and sales unit code is defined in the general [conversion ratios](https://github.com/spryker/util-measurement-unit-conversion/blob/1ae26cf8e629d25157e273097941bde438a24ddc/src/Spryker/Service/UtilMeasurementUnitConversion/UtilMeasurementUnitConversionConfig.php).

Example: 5 means that 1 quantity of this sales unit represents 5 of the base unit.

| -|precision|mandatory|integer, power of ten, empty|100|A property that affects how detailed to render a float measurement unit. Affects visual only, not used in calculations.
When left empty, the precision of the measurement unit is used.| +|precision|mandatory|integer, power of ten, empty|100|A property that affects how detailed to render a float measurement unit. Affects visual only, not used in calculations.
When left empty, the precision of the measurement unit's used.| |is_displayed|mandatory|integer|0|Controls if the sales unit can be displayed for customers.| -|is_default|mandatory|integer|1|Controls if this sales unit is preferred as the default sales unit when offered for customers.
Takes no effect if is_displayed set as 0.
1 product concrete can have up to 1 default sales unit.| +|is_default|mandatory|integer|1|Controls if this sales unit's preferred as the default sales unit when offered for customers.
Takes no effect if is_displayed set as 0.
1 product concrete can have up to 1 default sales unit.| Register the following plugin: @@ -650,7 +650,7 @@ sales_unit_19,AT | COLUMN | REQUIRED | DATA TYPE | DATA EXAMPLE | DATA EXPLANATION | | --- | --- | --- | --- | --- | | sales_unit_key |mandatory | string | sales_unit_1 |A reference used for the product measurement sales unit data import. | -|store_name|mandatory|string|DE|Contains the store name where the sales unit is available.| +|store_name|mandatory|string|DE|Contains the store name where the sales unit's available.| Register the following plugin: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | @@ -938,7 +938,7 @@ measurement_units.recommendation.suggestion,Was würden Sie gerne hinzufügen? , cart.pre.check.quantity.min.failed,Die Mindestanzahl für Produkt SKU '%sku%' ist nicht erreicht.,de_DE cart.pre.check.quantity.max.failed,Die Maximalanzahl für Produkt SKU '%sku%' ist überschritten.,de_DE cart.pre.check.quantity.interval.failed,Die Anzahl für Produkt SKU '%sku%' liegt nicht innerhalb des vorgegebenen Intervals.,de_DE -cart.item.sales_unit.not_found,Sales unit is not found for product with SKU '%sku%'.,en_US +cart.item.sales_unit.not_found,Sales unit's not found for product with SKU '%sku%'.,en_US cart.item.sales_unit.not_found,Verkaufseinheit wird für Produkt mit SKU '%sku%' nicht gefunden.,de_DE ``` diff --git a/_includes/pbc/all/install-features/202307.0/install-the-product-sets-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-product-sets-feature.md index 13dfc73c869..5a6d0a8f441 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-product-sets-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-product-sets-feature.md @@ -117,7 +117,7 @@ Implement an installer in your project to put products together in sets represen ### Listing products sets on the Storefront -The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it is possible to implement the same features with a custom implementation. +The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it's possible to implement the same features with a custom implementation. For a simple listing, the `ProductSet` module provides a Client API to list product sets from Elasticsearch. By calling the `ProductSetClient::getProductSetList()` method, a limited set of documents can be listed on the Storefront. The results are sorted in descending order based on the product sets' weight attributes. diff --git a/_includes/pbc/all/install-features/202307.0/install-the-quotation-process-approval-process-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-quotation-process-approval-process-feature.md index a840cd76dcc..40d9b388049 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-quotation-process-approval-process-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-quotation-process-approval-process-feature.md @@ -22,7 +22,7 @@ Register the following plugins: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | |---|---|---|---| | QuoteApprovalQuoteRequestQuoteCheckPlugin | Checks if the "Request For Quote" button should be shown on the cart page or not. | None | Spryker\Client\QuoteApproval\Plugin\QuoteRequest | -| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it is in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval | +| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it's in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval | | QuoteApprovalQuoteRequestPreCreateCheckPlugin | Checks if the quote doesn't have the status `waiting`. | None | Spryker\Zed\QuoteApproval\Communication\Plugin\QuoteRequest | **src/Pyz/Client/QuoteRequest/QuoteRequestDependencyProvider.php** diff --git a/_includes/pbc/all/install-features/202307.0/install-the-shopping-lists-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-shopping-lists-feature.md index 5252dbdbb1f..0872a5293eb 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-shopping-lists-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-shopping-lists-feature.md @@ -1138,7 +1138,7 @@ customer.account.shopping_list.add_selected_items_to_cart,Ausgewählte Artikel i customer.account.shopping_list.add_all_available_to_cart,Add all available products to cart,en_US customer.account.shopping_list.add_all_available_to_cart,Alle Produkte zum Warenkorb hinzufügen,de_DE customer.account.shopping_list.empty,Currently there are no items in your shopping list.,en_US -customer.account.shopping_list.empty,Zurzeit ist kein Produkt auf deiner Einkaufsliste.,de_DE +customer.account.shopping_list.empty,Zurzeit'st kein Produkt auf deiner Einkaufsliste.,de_DE customer.account.shopping_list.overview.dismiss,Dismiss,en_US customer.account.shopping_list.overview.dismiss,Ablehnen,de_DE customer.account.shopping_list.overview.warning,Warning,en_US diff --git a/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-back-office-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-back-office-feature.md index 5192396b51b..f5639381776 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-back-office-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-back-office-feature.md @@ -106,7 +106,7 @@ Add the following configuration to your project: | AclConstants::ACL_DEFAULT_RULES | Default rules for ACL functionality, where you can open access to some modules or controller out of the box. | Spryker\Shared\Acl | | SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for a Back Office user. | Spryker\Shared\SecurityBlockerBackoffice | | SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the Back Office user is blocked if the number of attempts is exceeded for the Back Office. | Spryker\Shared\SecurityBlockerBackoffice | -| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerBackoffice | +| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerBackoffice | **config/Shared/config_default.php** @@ -155,7 +155,7 @@ $config[SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_A Spryker offers two authentication strategies out of the box: -* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it is created automatically based on the data from an external service. +* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it's created automatically based on the data from an external service. * `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_ACCEPT_ONLY_EXISTING_USERS`: It accepts only existing users for authentication. diff --git a/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-feature.md index 22935032e68..f0832fda525 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-feature.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-feature.md @@ -306,7 +306,7 @@ Add environment configuration for customer security: |----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------| | SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer | | SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_TTL | Specifies the TTL configuration, the period when number of unsuccessful tries will be counted for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer | -| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer | +| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer | **config/Shared/config_default.php** diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-inventory-management-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-inventory-management-feature.md index 4da32209f4f..e84bf35f3af 100644 --- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-inventory-management-feature.md +++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-inventory-management-feature.md @@ -612,7 +612,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency Make sure the following actions take place as expected: * The command `console sync:data merchant_profile` exports data from the `spy_product_offer_availability_storage` table to Redis. -* When a product offer availability entity gets created or updated through ORM, it is exported to Redis accordingly. +* When a product offer availability entity gets created or updated through ORM, it's exported to Redis accordingly. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-merchant-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-merchant-feature.md index 06cf3d977ce..13e0aea4c71 100644 --- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-merchant-feature.md +++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-merchant-feature.md @@ -971,17 +971,17 @@ To import data: ``` merchant_reference,contact_person_role,contact_person_title,contact_person_first_name,contact_person_last_name,contact_person_phone,banner_url,logo_url,public_email,public_phone,description_glossary_key.en_US,description_glossary_key.de_DE,banner_url_glossary_key.en_US,banner_url_glossary_key.de_DE,delivery_time_glossary_key.en_US,delivery_time_glossary_key.de_DE,terms_conditions_glossary_key.en_US,terms_conditions_glossary_key.de_DE,cancellation_policy_glossary_key.en_US,cancellation_policy_glossary_key.de_DE,imprint_glossary_key.en_US,imprint_glossary_key.de_DE,data_privacy_glossary_key.en_US,data_privacy_glossary_key.de_DE,is_active,fax_number -MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Vertreten durch
Geschäftsführer: Alexander Graf, Boris Lokschin
Registergericht: Hamburg
Registernummer: HRB 134310

",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800 -MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Video King

Gilzeweg 24
4854SG Bavel
NL

Phone: +31 123 45 6789
Email: hi@video-king.nl

Represented by
Managing Director: Max Mustermann
Register Court: Amsterdam
Register Number: 1234.4567

,

Video King

Gilzeweg 24
4854SG Bavel
NL

Telefon: +31 123 45 6789
Email: hi@video-king.nl

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Amsterdam
Registernummer: 1234.4567

,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733 +MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Vertreten durch
Geschäftsführer: Alexander Graf, Boris Lokschin
Registergericht: Hamburg
Registernummer: HRB 134310

",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800 +MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Video King

Gilzeweg 24
4854SG Bavel
NL

Phone: +31 123 45 6789
Email: hi@video-king.nl

Represented by
Managing Director: Max Mustermann
Register Court: Amsterdam
Register Number: 1234.4567

,

Video King

Gilzeweg 24
4854SG Bavel
NL

Telefon: +31 123 45 6789
Email: hi@video-king.nl

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Amsterdam
Registernummer: 1234.4567

,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733 MER000006,Brand Manager,Ms,Michele,Nemeth,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-logo.png,support@sony-experts.com,+49 30 234567691,"Capture your moment with the best cameras from Sony. From pocket-size to professional-style, they all pack features to deliver the best quality pictures. Discover the range of Sony cameras, lenses and accessories, and capture your favorite moments with precision and style with the best cameras can offer.","Halten Sie Ihren Moment mit den besten Kameras von Sony fest. Vom Taschenformat bis hin zum professionellen Stil bieten sie alle Funktionen, um Bilder in bester Qualität zu liefern. -Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

,

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: München
Registernummer: HYY 134306

,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600 +Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

,

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: München
Registernummer: HYY 134306

,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600 MER000004,,,,,,,,,,,,,,,,,,,,,,,,0, MER000003,,,,,,,,,,,,,,,,,,,,,,,,0, MER000007,,,,,,,,,,,,,,,,,,,,,,,,0, MER000005,Merchandise Manager,Mr,Jason,Weidmann,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-logo.png,support@budgetcamerasonline.com,+49 30 234567591,"DSLR and mirrorless cameras are by far the most popular with filmmakers on a tight budget when you can't afford multiple specialist cameras. Budget Cameras is offering a great selection of digital cameras with the lowest prices.","DSLR- und spiegellose Kameras sind bei Filmemachern mit knappem Budget bei weitem am beliebtesten, wenn sie sich bestimmte Spezialkameras nicht leisten können. -Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305

,

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Hamburg
Registernummer: HXX 134305

,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500 +Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305

,

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Hamburg
Registernummer: HXX 134305

,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500 ``` diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-order-management-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-order-management-feature.md index b4387ae9c6f..c4a0b3ee2a1 100644 --- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-order-management-feature.md +++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-order-management-feature.md @@ -1100,7 +1100,7 @@ class ShopApplicationDependencyProvider extends SprykerShopApplicationDependency Make sure that the Merchant State Machine is executed on merchant orders after the order has been split. -Make sure that when retrieving an order in the *Sales* module, it is split by the merchant order and that the Order state is derived from the Merchant State Machine. +Make sure that when retrieving an order in the *Sales* module, it's split by the merchant order and that the Order state is derived from the Merchant State Machine. Make sure that after splitting the order into merchants' orders, their IDs are displayed on the order details page in Yves. diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-offer-cart-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-offer-cart-feature.md index ee343583186..9ce7e3141ee 100644 --- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-offer-cart-feature.md +++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-offer-cart-feature.md @@ -84,7 +84,7 @@ class CartDependencyProvider extends SprykerCartDependencyProvider Make sure that inactive product offers get removed from cart on reload. -Make sure that it is only possible to have items in cart where the product offer reference belongs to the correct concrete product. +Make sure that it's only possible to have items in cart where the product offer reference belongs to the correct concrete product. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-options-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-options-feature.md index de77f65becd..e98c72d8766 100644 --- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-options-feature.md +++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-options-feature.md @@ -372,7 +372,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider Make sure the following is true: * Merchants can create product option groups and values in the Merchant Portal. -* Merchant product option information is shown on a product details page when it is approved and active. +* Merchant product option information is shown on a product details page when it's approved and active. * Merchant product option information is displayed in the cart, checkout, and user account. * Merchant product options are a part of the marketplace or merchant order, and all totals are calculated correctly. diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-return-management-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-return-management-feature.md index 0460b1b5037..38200ac77d6 100644 --- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-return-management-feature.md +++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-return-management-feature.md @@ -835,7 +835,7 @@ Make sure that when you create and process a return for merchant order items, it | MARKETPLACE SM | DEFAULT MERCHANT SM | MAIN MERCHANT SM | | --- | ---| --- | | Used by an operator | Used by a third-party merchant. | Used by a main merchant. | -| start-return (can be started by entering in the Return Flow; it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return +| start-return (can be started by entering in the Return Flow; it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | execute return > returned | execute return (manually executable) > returned execute return (manually executable) > returned | refund > refunded | refund (manually executable) > refunded | refund (manually executable) > refunded | cancel return > return canceled | cancel return (manually executable) > return canceled | cancel return (manually executable) > return canceled diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-opening-hours-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-opening-hours-feature.md index 7ffc72236c2..04cc69a5541 100644 --- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-opening-hours-feature.md +++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-opening-hours-feature.md @@ -274,7 +274,7 @@ class MerchantOpeningHoursStorageConfig extends SprykerMerchantOpeningHoursStora 1. Make sure that after step 1 the command `console sync:data merchant_opening_hours` exports data from the `spy_merchant_opening_hours_storage` table to Redis. -2. Make sure that when merchant opening hours entities get created or updated through ORM, it is exported to Redis accordingly. +2. Make sure that when merchant opening hours entities get created or updated through ORM, it's exported to Redis accordingly. | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | | ---------------- | ----------------- | diff --git a/_includes/pbc/all/install-features/202311.0/enable-gift-cards.md b/_includes/pbc/all/install-features/202311.0/enable-gift-cards.md index 031d6cb4247..fada0bdabb7 100644 --- a/_includes/pbc/all/install-features/202311.0/enable-gift-cards.md +++ b/_includes/pbc/all/install-features/202311.0/enable-gift-cards.md @@ -31,7 +31,7 @@ spryker/product-management:"^0.12.0" | `GiftCardIsActiveDecisionRulePlugin` | Doesn’t allow using inactive Gift Cards. |`GiftCardDependencyProvider::getDecisionRulePlugins` | - | | `GiftCardDiscountableItemFilterPlugin` |Restricts using a Gift Card for another Gift Cards in a cart. The plugin filters out Gift Cards from discountable items. |`DiscountDependencyProvider::getDiscountableItemFilterPlugins` | - | | `GiftCardIsUsedDecisionRulePlugin` | As a part of the replacement strategy, this plugin does not allow using a Gift Card twice. |`GiftCardDependencyProvider::getDecisionRulePlugins` | Replacement | -| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it is in the cart. | `CartDependencyProvider::getExpanderPlugins` | - | +| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it's in the cart. | `CartDependencyProvider::getExpanderPlugins` | - | | `GiftCardCheckoutDoSaveOrderPlugin` | Saves a Gift Card with populated data when an order is placed. Keeps Gift Card as an order payment method. | `CheckoutDependencyProvider::getCheckoutOrderSavers` | - | | `GiftCardPaymentMethodFilterPlugin` | Now, every payment method is compatible with a Gift Card in the cart. The plugin filters out all incompatible payment methods from available ones during checkout payment methods step. | `PaymentDependencyProvider::getPaymentMethodFilterPlugins` | - | | `GiftCardCheckoutPreConditionPlugin` | Confirms that a Gift Card is not used at the moment and that payment method amount assigned to the Gift Card is no more than the Gift Card amount itself.. | `CheckoutDependencyProvider::getCheckoutPreConditions` | - | diff --git a/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore-the-prices-feature.md b/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore-the-prices-feature.md index 59589943897..d8ca3aaee73 100644 --- a/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore-the-prices-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore-the-prices-feature.md @@ -134,7 +134,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider {% info_block warningBox "Verification" %} -Using the following data, make sure that when you add, update, or delete a store currency, it is exported to or removed from Storage. +Using the following data, make sure that when you add, update, or delete a store currency, it's exported to or removed from Storage. Storage type: Redis Target entity: Store diff --git a/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore.md b/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore.md index 4acfb3afdd7..9cf6f7e48c8 100644 --- a/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore.md +++ b/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore.md @@ -622,7 +622,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider {% info_block warningBox "Verification" %} -Ensure that, when a store created, updated, or deleted with local and country data. And it is exported to or removed from Redis. +Ensure that, when a store created, updated, or deleted with local and country data. And it's exported to or removed from Redis. Storage type: Redis Target entity: Store diff --git a/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-multiple-carts-glue-api.md b/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-multiple-carts-glue-api.md index f1cbb92e007..f3045c5b42a 100644 --- a/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-multiple-carts-glue-api.md +++ b/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-multiple-carts-glue-api.md @@ -91,7 +91,7 @@ Make sure that the following endpoints are available: {% info_block warningBox “Verification” %} -Make sure that it is possible to create more than one cart. +Make sure that it's possible to create more than one cart. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-navigation-glue-api.md b/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-navigation-glue-api.md index e3218cda94c..c59ed7ec7b5 100644 --- a/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-navigation-glue-api.md +++ b/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-navigation-glue-api.md @@ -155,7 +155,7 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency {% info_block warningBox “Verification” %} -Now, it is possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.) +Now, it's possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.) {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202311.0/install-the-agent-assist-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-agent-assist-feature.md index eb6f824d95a..147ee90effd 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-agent-assist-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-agent-assist-feature.md @@ -203,7 +203,7 @@ Add environment configuration for the agent security: |----------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| | SecurityBlockerStorefrontAgentConstants::AGENT_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent | | SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent | -| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent | +| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent | **config/Shared/config_default.php** diff --git a/_includes/pbc/all/install-features/202311.0/install-the-approval-process-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-approval-process-feature.md index 23d309371d7..a15fbd28ec8 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-approval-process-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-approval-process-feature.md @@ -144,7 +144,7 @@ quote_approval.cart.waiting_approval,"Sie können diese Bestellung aufgrund eine quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request because of approver limit.",en_US quote_approval.create.approver_cant_approve_quote,"Der ausgewählte Manager kann Ihre Anfrage aufgrund des Genehmigungslimits nicht genehmigen.",de_DE quote_approval.create.you_cant_approve_quote,"You can't approve or decline this cart because it's amount higher that your Approver limit.",en_US -quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit ist.",de_DE +quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit'st.",de_DE quote_approval.create.quote_already_approved,"This Cart was already approved.",en_US quote_approval.create.quote_already_approved,"Dieser Einkaufswagen wurde schon zur Genehmigung gesendet.",de_DE quote_approval.create.quote_already_declined,"This Cart was already declined.",en_US @@ -448,7 +448,7 @@ quote_approval_widget.cart.status.waiting,"Waiting",en_US quote_approval_widget.cart.status.waiting,"Wartet",de_DE quote_approval_widget.shared_cart_warning,"After a cart has been sent to approval, all of its shares will be dismissed.",en_US quote_approval_widget.shared_cart_warning,"Nachdem der Warenkorb zur Genehmigung gesendet wurde, wird sein Sharing aufgehoben.",de_DE -quote_approval_widget.limit_text,"Your purchase limit is %amount%. To spend more, request approval from your manager.",en_US +quote_approval_widget.limit_text,"Your purchase limit's %amount%. To spend more, request approval from your manager.",en_US quote_approval_widget.limit_text,"Ihr Einkaufsrahmen liegt bei %amount%. Um mehr auszugeben, fordern Sie bitte die Genehmigung bei Ihrem Manager an",de_DE quote_approval_widget.no_limit_text,"You do not have a purchase limit",en_US quote_approval_widget.no_limit_text,"Sie haben kein Einkaufslimit",de_DE diff --git a/_includes/pbc/all/install-features/202311.0/install-the-availability-notification-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-availability-notification-feature.md index 755cd86a704..d64c958051c 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-availability-notification-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-availability-notification-feature.md @@ -399,7 +399,7 @@ availability_notification_subscription.mail.notification.subject,"%name% is avai availability_notification_subscription.mail.notification.subject,"%name% ist wieder verfügbar!",de_DE availability_notification_subscription.mail.notification.head,"%name% is available again!",en_US availability_notification_subscription.mail.notification.head,"%name% ist wieder verfügbar",de_DE -availability_notification_subscription.mail.notification.body,"The wait is over, you can not add this product inside your cart.",en_US +availability_notification_subscription.mail.notification.body,"The wait's over, you can not add this product inside your cart.",en_US availability_notification_subscription.mail.notification.body,"Das Warten hat ein Ende, Sie können dieses Produkt nicht in Ihren Warenkorb legen.",de_DE availability_notification_subscription.mail.copyright,"Copyright © current year company name, All rights reserved.

",en_US availability_notification_subscription.mail.copyright,"Copyright © Name des aktuellen Jahres, Alle Rechte vorbehalten.

",de_DE diff --git a/_includes/pbc/all/install-features/202311.0/install-the-category-image-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-category-image-feature.md index 1d9f41e6cab..f200dcf7690 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-category-image-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-category-image-feature.md @@ -263,7 +263,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency {% info_block warningBox "Verification" %} -Make sure that when a category image is created, updated, or deleted, it is exported or removed from Redis accordingly. +Make sure that when a category image is created, updated, or deleted, it's exported or removed from Redis accordingly. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202311.0/install-the-category-management-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-category-management-feature.md index e7ea07ca1dd..8894184c2c4 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-category-management-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-category-management-feature.md @@ -710,7 +710,7 @@ Make sure that *category-node*, *category-tree* synchronization plugins works co {% info_block warningBox "Verification" %} -Make sure that when a category is created or edited through ORM, it is exported to Redis and Elasticsearch accordingly. +Make sure that when a category is created or edited through ORM, it's exported to Redis and Elasticsearch accordingly. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | | --- | --- | --- | diff --git a/_includes/pbc/all/install-features/202311.0/install-the-company-account-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-company-account-feature.md index c27d44c1c59..58d5498bedc 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-company-account-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-company-account-feature.md @@ -329,7 +329,7 @@ Enable the following behaviors by registering the plugins: | DefaultCompanyUserCustomerTransferExpanderPlugin | Sets a default company user for a Business on Behalf customer if a company user has not been selected yet. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer | | IsOnBehalfCustomerTransferExpanderPlugin | Sets the `CustomerTransfer.IsOnBehalf` property so that other features can determine if the selected company user is a Business on Behalf company user. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer | | CompanyUserAccessTokenAuthenticationHandlerPlugin | Provides functionality to log in a customer by an access token. | None | Spryker\Client\OauthCompanyUser\Plugin\Customer | -| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it is already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer | +| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it's already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer | | CompanyUserAccessTokenOauthUserProviderPlugin | Provides a user transfer by a company user ID. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth | | CompanyUserAccessTokenOauthGrantTypeConfigurationProviderPlugin | Provides the configuration of `CompanyUser` `GrantType`. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth | | OauthCompanyUserInstallerPlugin| Creates new OAuth scope—adds `company_user scope` to the `spy_oauth_scope` table.) | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Installer | @@ -729,7 +729,7 @@ business_on_behalf_widget.change_company_user,Change Company User,en_US business_on_behalf_widget.change_company_user,Firmenbenutzer Profil ändern,de_DE company_user.business_on_behalf.error.company_not_active,"You can not select this company user, company is not active.",en_US company_user.business_on_behalf.error.company_not_active,"Sie können diesen Firmennutzer nicht auswählen da die Firma inaktiv ist",de_DE -company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it is invalid.",en_US +company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it's invalid.",en_US company_user.business_on_behalf.error.company_user_invalid,"Sie können diesen Firmennutzer nicht auswählen da er ungültig ist",de_DE customer_page.error.customer_already_logged_in,Customer already logged in.,en_US customer_page.error.customer_already_logged_in,Der Kunde ist bereits eingeloggt.,de_DE diff --git a/_includes/pbc/all/install-features/202311.0/install-the-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-configurable-bundle-feature.md index 4aae85c18e0..fc8c949fc1a 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-configurable-bundle-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-configurable-bundle-feature.md @@ -605,7 +605,7 @@ class ConfigurableBundlePageSearchConfig extends SprykerConfigurableBundlePageSe * from `spy_configurable_bundle_template_storage` table to Redis * from `spy_configurable_bundle_template_page_search` table to Elasticsearch -3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it is exported to Redis or Elasticsearch accordingly. +3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it's exported to Redis or Elasticsearch accordingly. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | | --- | --- | --- | diff --git a/_includes/pbc/all/install-features/202311.0/install-the-customer-access-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-customer-access-feature.md index 1d3ce1cb6f4..4019eb1feb4 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-customer-access-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-customer-access-feature.md @@ -170,7 +170,7 @@ class EventDependencyProvider extends SprykerEventDependencyProvider {% info_block warningBox "Verification" %} -Make sure that when a customer access rule is created, updated, or deleted, it is exported (or removed) to Redis. +Make sure that when a customer access rule is created, updated, or deleted, it's exported (or removed) to Redis. | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | |-------------------------------------|------------------------------------| diff --git a/_includes/pbc/all/install-features/202311.0/install-the-discontinued-products-product-labels-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-discontinued-products-product-labels-feature.md index 3528d1a6f74..6469c8e033c 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-discontinued-products-product-labels-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-discontinued-products-product-labels-feature.md @@ -79,6 +79,6 @@ class ProductLabelDependencyProvider extends SprykerProductLabelDependencyProvid {% info_block warningBox "Verification" %} -Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it is assigned. +Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it's assigned. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202311.0/install-the-merchant-custom-prices-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-merchant-custom-prices-feature.md index 2584aa3c871..b910894bb19 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-merchant-custom-prices-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-merchant-custom-prices-feature.md @@ -493,7 +493,7 @@ Make sure that there is the "Merchant Price Dimension" drop-down in the Back Off {% info_block warningBox "Verification" %} -Make sure that a logged in user, who belongs to a company business unit and that business unit is assigned to some Merchant Relationship with specified prices, sees Merchant Relationship prices on the Catalog and on the Product page.
Make sure that this user sees MIN price if their business unit is assigned to multiple Merchant Relationships with different prices for the same product. +Make sure that a logged in user, who belongs to a company business unit and that business unit's assigned to some Merchant Relationship with specified prices, sees Merchant Relationship prices on the Catalog and on the Product page.
Make sure that this user sees MIN price if their business unit's assigned to multiple Merchant Relationships with different prices for the same product. {% endinfo_block %} ### Ensure compatibility diff --git a/_includes/pbc/all/install-features/202311.0/install-the-multiple-carts-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-multiple-carts-feature.md index 0a6f095f4f3..29a171b1cb3 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-multiple-carts-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-multiple-carts-feature.md @@ -331,7 +331,7 @@ Make sure that customer carts have unique names. If a customer creates a cart wi Example: -If the name "Shopping cart" already exists, it is changed to the following: +If the name "Shopping cart" already exists, it's changed to the following: * Shopping cart → Shopping cart 1 * Shopping cart → Shopping cart 2 @@ -427,7 +427,7 @@ Register the following plugins: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | |---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|---------------------------------| -| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it is not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin | +| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it's not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin | **src/Pyz/Client/Customer/CustomerDependencyProvider.php** diff --git a/_includes/pbc/all/install-features/202311.0/install-the-packaging-units-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-packaging-units-feature.md index 1fa6fe44de6..3fb3021400a 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-packaging-units-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-packaging-units-feature.md @@ -951,7 +951,7 @@ Go through the checkout workflow, make an order and check if the following state * `amount_base_measurement_unit_name` Go to the Zed UI Sales overview, check the order, and verify the following: -- The correct sales unit is displayed. +- The correct sales unit's displayed. - The correct amount is displayed per sales order item. Make sure the following: diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-feature.md index b2d3beeefd5..c9cafadc2b8 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-feature.md @@ -210,7 +210,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency {% info_block warningBox "Verification" %} -Ensure that, when a product bundle is created, updated, or deleted, it is exported to or removed from Redis. +Ensure that, when a product bundle is created, updated, or deleted, it's exported to or removed from Redis. Storage type: Redis Target entity: Product Bundle diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-category-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-category-feature.md index f528dd0a1b0..55b924d04d3 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-product-category-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-product-category-feature.md @@ -345,7 +345,7 @@ class EventBehaviorDependencyProvider extends SprykerEventBehaviorDependencyProv {% info_block warningBox "Verification" %} -When a category product assignment is changed through ORM, make sure it is exported to Redis. +When a category product assignment is changed through ORM, make sure it's exported to Redis. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | |--------------|-------------------------|--------------------------------------| diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-images-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-images-configurable-bundle-feature.md index 92e36980ad9..23db51e003f 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-product-images-configurable-bundle-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-product-images-configurable-bundle-feature.md @@ -153,7 +153,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency 1. Make sure that when you added some data to tables `spy_product_image_set`, `spy_product_image_set_to_product_image`, `spy_product_image` with `fk_resource_configurable_bundle_template` and run `console trigger:event -r configurable_bundle_template_image` command, the changes are reflected in the `spy_configurable_bundle_template_image_storage` table. 2. Make sure that after step #4 or after `console sync:data configurable_bundle_template_image` command execution, the data s added to the `spy_configurable_bundle_template_image_storage` table and Redis. -3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it is exported to Redis accordingly. +3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it's exported to Redis accordingly. 4. Ensure that Elasticsearch document has been expanded by images property. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-measurement-unit-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-measurement-unit-feature.md index 88112f38069..e141d4e44e5 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-product-measurement-unit-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-product-measurement-unit-feature.md @@ -534,9 +534,9 @@ sales_unit_19,218_1232,ITEM,1,1,1,1 |concrete_sku|mandatory|string|215_123|An already existing product concrete SKU.| |code|mandatory|string|METR |An already existing measurement unit code that will be used to convert back and forth with the base unit defined in product abstract.| |conversion|mandatory|float, empty|5|

A custom multiplier that is used to calculate base unit. This field can be empty if both base and sales unit code is defined in the general [conversion ratios](https://github.com/spryker/util-measurement-unit-conversion/blob/1ae26cf8e629d25157e273097941bde438a24ddc/src/Spryker/Service/UtilMeasurementUnitConversion/UtilMeasurementUnitConversionConfig.php).

Example: 5 means that 1 quantity of this sales unit represents 5 of the base unit.

| -|precision|mandatory|integer, power of ten, empty|100|A property that affects how detailed to render a float measurement unit. Affects visual only, not used in calculations.
When left empty, the precision of the measurement unit is used.| +|precision|mandatory|integer, power of ten, empty|100|A property that affects how detailed to render a float measurement unit. Affects visual only, not used in calculations.
When left empty, the precision of the measurement unit's used.| |is_displayed|mandatory|integer|0|Controls if the sales unit can be displayed for customers.| -|is_default|mandatory|integer|1|Controls if this sales unit is preferred as the default sales unit when offered for customers.
Takes no effect if is_displayed set as 0.
1 product concrete can have up to 1 default sales unit.| +|is_default|mandatory|integer|1|Controls if this sales unit's preferred as the default sales unit when offered for customers.
Takes no effect if is_displayed set as 0.
1 product concrete can have up to 1 default sales unit.| Register the following plugin: @@ -650,7 +650,7 @@ sales_unit_19,AT | COLUMN | REQUIRED | DATA TYPE | DATA EXAMPLE | DATA EXPLANATION | | --- | --- | --- | --- | --- | | sales_unit_key |mandatory | string | sales_unit_1 |A reference used for the product measurement sales unit data import. | -|store_name|mandatory|string|DE|Contains the store name where the sales unit is available.| +|store_name|mandatory|string|DE|Contains the store name where the sales unit's available.| Register the following plugin: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | @@ -938,7 +938,7 @@ measurement_units.recommendation.suggestion,Was würden Sie gerne hinzufügen? , cart.pre.check.quantity.min.failed,Die Mindestanzahl für Produkt SKU '%sku%' ist nicht erreicht.,de_DE cart.pre.check.quantity.max.failed,Die Maximalanzahl für Produkt SKU '%sku%' ist überschritten.,de_DE cart.pre.check.quantity.interval.failed,Die Anzahl für Produkt SKU '%sku%' liegt nicht innerhalb des vorgegebenen Intervals.,de_DE -cart.item.sales_unit.not_found,Sales unit is not found for product with SKU '%sku%'.,en_US +cart.item.sales_unit.not_found,Sales unit's not found for product with SKU '%sku%'.,en_US cart.item.sales_unit.not_found,Verkaufseinheit wird für Produkt mit SKU '%sku%' nicht gefunden.,de_DE ``` diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-offer-service-points-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-offer-service-points-feature.md index 3648f5f66c4..f111df98182 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-product-offer-service-points-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-product-offer-service-points-feature.md @@ -464,7 +464,7 @@ Make sure that the `product-offer-service` synchronization plugin works correctl 2. Run the `console sync:data -r product_offer_service` command. 3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_service:{store}:{product_offer_reference}` mask. -Make sure when a product offer service is created via DataImport, it is exported to Redis accordingly. +Make sure when a product offer service is created via DataImport, it's exported to Redis accordingly. Make sure that, in Redis, data is displayed in the following format: diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-offer-shipment-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-offer-shipment-feature.md index ea9933eab92..81c6f1883ce 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-product-offer-shipment-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-product-offer-shipment-feature.md @@ -336,7 +336,7 @@ Make sure that `product-offer-shipment-type` synchronization plugin works correc 2. Run the `console sync:data -r product_offer_shipment_type` command. 3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_shipment_type:{store}:{product_offer_reference}` mask. -Make sure that when a product offer shipment type relation is created or edited through BAPI, it is exported to Redis accordingly. +Make sure that when a product offer shipment type relation is created or edited through BAPI, it's exported to Redis accordingly. In Redis, make sure data is represented in the following format: ```json diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-sets-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-sets-feature.md index 13dfc73c869..5a6d0a8f441 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-product-sets-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-product-sets-feature.md @@ -117,7 +117,7 @@ Implement an installer in your project to put products together in sets represen ### Listing products sets on the Storefront -The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it is possible to implement the same features with a custom implementation. +The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it's possible to implement the same features with a custom implementation. For a simple listing, the `ProductSet` module provides a Client API to list product sets from Elasticsearch. By calling the `ProductSetClient::getProductSetList()` method, a limited set of documents can be listed on the Storefront. The results are sorted in descending order based on the product sets' weight attributes. diff --git a/_includes/pbc/all/install-features/202311.0/install-the-quotation-process-approval-process-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-quotation-process-approval-process-feature.md index a840cd76dcc..40d9b388049 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-quotation-process-approval-process-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-quotation-process-approval-process-feature.md @@ -22,7 +22,7 @@ Register the following plugins: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | |---|---|---|---| | QuoteApprovalQuoteRequestQuoteCheckPlugin | Checks if the "Request For Quote" button should be shown on the cart page or not. | None | Spryker\Client\QuoteApproval\Plugin\QuoteRequest | -| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it is in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval | +| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it's in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval | | QuoteApprovalQuoteRequestPreCreateCheckPlugin | Checks if the quote doesn't have the status `waiting`. | None | Spryker\Zed\QuoteApproval\Communication\Plugin\QuoteRequest | **src/Pyz/Client/QuoteRequest/QuoteRequestDependencyProvider.php** diff --git a/_includes/pbc/all/install-features/202311.0/install-the-service-points-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-service-points-feature.md index a374116cb92..4a7d2a47b5c 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-service-points-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-service-points-feature.md @@ -471,7 +471,7 @@ service_point.validation.wrong_request_body,Falscher Anforderungstext.,de_DE service_point.validation.country_entity_not_found,Country with iso2 code '%iso2Code%' does not exist.,en_US service_point.validation.country_entity_not_found,Das Land mit dem iso2-Code '%iso2Code%' existiert nicht.,de_DE service_point.validation.region_entity_not_found,Region with uuid '%uuid%' does not exist for country with iso2 code '%countryIso2Code%'.,en_US -service_point.validation.region_entity_not_found,Region mit uuid '%uuid%' existiert nicht für Land mit iso2-Code '%countryIso2Code%',de_DE +service_point.validation.region_entity_not_found,Region mit uuid '%uuid%' existiert nicht für Land mit'so2-Code '%countryIso2Code%',de_DE service_point.validation.service_point_address_address1_wrong_length,Service Point Address Input address1 must have a length of %min% to %max% characters.,en_US service_point.validation.service_point_address_address1_wrong_length,Service Point Adresse Input address1 muss eine Länge von %min% bis %max% Zeichen haben.,de_DE service_point.validation.service_point_address_address2_wrong_length,Service Point Address Input address2 must have a length of %min% to %max% characters.,en_US @@ -1075,7 +1075,7 @@ Verify the `service-point` synchronization plugin works correctly: {% info_block warningBox "Verification" %} -* Make sure that, when a service point is created or edited through BAPI, it is exported to Redis accordingly. +* Make sure that, when a service point is created or edited through BAPI, it's exported to Redis accordingly. * Make sure that, in Redis, data is displayed in the following format: ```yaml @@ -1148,7 +1148,7 @@ Verify the `service-type` synchronization plugin works correctly: {% info_block warningBox "Verification" %} -* Make sure that when a service type is created or edited through BAPI, it is exported to Redis accordingly. +* Make sure that when a service type is created or edited through BAPI, it's exported to Redis accordingly. * Make sure that, in Redis, data is displayed in the following format: ```json diff --git a/_includes/pbc/all/install-features/202311.0/install-the-shipment-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-shipment-feature.md index 3771019e5ed..2ef8891c97f 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-shipment-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-shipment-feature.md @@ -971,7 +971,7 @@ Make sure that `shipment-type` synchronization plugin works correctly: 2. Run the `console sync:data -r shipment_type` command. 3. Make sure that, in your system, storage entries are displayed with the `kv:shipment_type:{store}:{shipment_type_id}` mask. -Make sure that when a shipment type is created or edited through BAPI, it is exported to Redis accordingly. +Make sure that when a shipment type is created or edited through BAPI, it's exported to Redis accordingly. In Redis, make sure data is represented in the following format: ```json diff --git a/_includes/pbc/all/install-features/202311.0/install-the-shopping-lists-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-shopping-lists-feature.md index 2eabd441a04..9c97b7d84bc 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-shopping-lists-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-shopping-lists-feature.md @@ -1138,7 +1138,7 @@ customer.account.shopping_list.add_selected_items_to_cart,Ausgewählte Artikel i customer.account.shopping_list.add_all_available_to_cart,Add all available products to cart,en_US customer.account.shopping_list.add_all_available_to_cart,Alle Produkte zum Warenkorb hinzufügen,de_DE customer.account.shopping_list.empty,Currently there are no items in your shopping list.,en_US -customer.account.shopping_list.empty,Zurzeit ist kein Produkt auf deiner Einkaufsliste.,de_DE +customer.account.shopping_list.empty,Zurzeit'st kein Produkt auf deiner Einkaufsliste.,de_DE customer.account.shopping_list.overview.dismiss,Dismiss,en_US customer.account.shopping_list.overview.dismiss,Ablehnen,de_DE customer.account.shopping_list.overview.warning,Warning,en_US diff --git a/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-back-office-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-back-office-feature.md index 5192396b51b..f5639381776 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-back-office-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-back-office-feature.md @@ -106,7 +106,7 @@ Add the following configuration to your project: | AclConstants::ACL_DEFAULT_RULES | Default rules for ACL functionality, where you can open access to some modules or controller out of the box. | Spryker\Shared\Acl | | SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for a Back Office user. | Spryker\Shared\SecurityBlockerBackoffice | | SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the Back Office user is blocked if the number of attempts is exceeded for the Back Office. | Spryker\Shared\SecurityBlockerBackoffice | -| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerBackoffice | +| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerBackoffice | **config/Shared/config_default.php** @@ -155,7 +155,7 @@ $config[SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_A Spryker offers two authentication strategies out of the box: -* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it is created automatically based on the data from an external service. +* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it's created automatically based on the data from an external service. * `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_ACCEPT_ONLY_EXISTING_USERS`: It accepts only existing users for authentication. diff --git a/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-feature.md index 22935032e68..f0832fda525 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-feature.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-feature.md @@ -306,7 +306,7 @@ Add environment configuration for customer security: |----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------| | SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer | | SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_TTL | Specifies the TTL configuration, the period when number of unsuccessful tries will be counted for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer | -| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer | +| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer | **config/Shared/config_default.php** diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-inventory-management-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-inventory-management-feature.md index 4da32209f4f..e84bf35f3af 100644 --- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-inventory-management-feature.md +++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-inventory-management-feature.md @@ -612,7 +612,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency Make sure the following actions take place as expected: * The command `console sync:data merchant_profile` exports data from the `spy_product_offer_availability_storage` table to Redis. -* When a product offer availability entity gets created or updated through ORM, it is exported to Redis accordingly. +* When a product offer availability entity gets created or updated through ORM, it's exported to Redis accordingly. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-merchant-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-merchant-feature.md index 06cf3d977ce..13e0aea4c71 100644 --- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-merchant-feature.md +++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-merchant-feature.md @@ -971,17 +971,17 @@ To import data: ``` merchant_reference,contact_person_role,contact_person_title,contact_person_first_name,contact_person_last_name,contact_person_phone,banner_url,logo_url,public_email,public_phone,description_glossary_key.en_US,description_glossary_key.de_DE,banner_url_glossary_key.en_US,banner_url_glossary_key.de_DE,delivery_time_glossary_key.en_US,delivery_time_glossary_key.de_DE,terms_conditions_glossary_key.en_US,terms_conditions_glossary_key.de_DE,cancellation_policy_glossary_key.en_US,cancellation_policy_glossary_key.de_DE,imprint_glossary_key.en_US,imprint_glossary_key.de_DE,data_privacy_glossary_key.en_US,data_privacy_glossary_key.de_DE,is_active,fax_number -MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Vertreten durch
Geschäftsführer: Alexander Graf, Boris Lokschin
Registergericht: Hamburg
Registernummer: HRB 134310

",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800 -MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Video King

Gilzeweg 24
4854SG Bavel
NL

Phone: +31 123 45 6789
Email: hi@video-king.nl

Represented by
Managing Director: Max Mustermann
Register Court: Amsterdam
Register Number: 1234.4567

,

Video King

Gilzeweg 24
4854SG Bavel
NL

Telefon: +31 123 45 6789
Email: hi@video-king.nl

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Amsterdam
Registernummer: 1234.4567

,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733 +MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Vertreten durch
Geschäftsführer: Alexander Graf, Boris Lokschin
Registergericht: Hamburg
Registernummer: HRB 134310

",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800 +MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Video King

Gilzeweg 24
4854SG Bavel
NL

Phone: +31 123 45 6789
Email: hi@video-king.nl

Represented by
Managing Director: Max Mustermann
Register Court: Amsterdam
Register Number: 1234.4567

,

Video King

Gilzeweg 24
4854SG Bavel
NL

Telefon: +31 123 45 6789
Email: hi@video-king.nl

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Amsterdam
Registernummer: 1234.4567

,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733 MER000006,Brand Manager,Ms,Michele,Nemeth,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-logo.png,support@sony-experts.com,+49 30 234567691,"Capture your moment with the best cameras from Sony. From pocket-size to professional-style, they all pack features to deliver the best quality pictures. Discover the range of Sony cameras, lenses and accessories, and capture your favorite moments with precision and style with the best cameras can offer.","Halten Sie Ihren Moment mit den besten Kameras von Sony fest. Vom Taschenformat bis hin zum professionellen Stil bieten sie alle Funktionen, um Bilder in bester Qualität zu liefern. -Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

,

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: München
Registernummer: HYY 134306

,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600 +Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

,

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: München
Registernummer: HYY 134306

,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600 MER000004,,,,,,,,,,,,,,,,,,,,,,,,0, MER000003,,,,,,,,,,,,,,,,,,,,,,,,0, MER000007,,,,,,,,,,,,,,,,,,,,,,,,0, MER000005,Merchandise Manager,Mr,Jason,Weidmann,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-logo.png,support@budgetcamerasonline.com,+49 30 234567591,"DSLR and mirrorless cameras are by far the most popular with filmmakers on a tight budget when you can't afford multiple specialist cameras. Budget Cameras is offering a great selection of digital cameras with the lowest prices.","DSLR- und spiegellose Kameras sind bei Filmemachern mit knappem Budget bei weitem am beliebtesten, wenn sie sich bestimmte Spezialkameras nicht leisten können. -Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305

,

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Hamburg
Registernummer: HXX 134305

,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500 +Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305

,

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Hamburg
Registernummer: HXX 134305

,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500 ``` diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-order-management-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-order-management-feature.md index b4387ae9c6f..c4a0b3ee2a1 100644 --- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-order-management-feature.md +++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-order-management-feature.md @@ -1100,7 +1100,7 @@ class ShopApplicationDependencyProvider extends SprykerShopApplicationDependency Make sure that the Merchant State Machine is executed on merchant orders after the order has been split. -Make sure that when retrieving an order in the *Sales* module, it is split by the merchant order and that the Order state is derived from the Merchant State Machine. +Make sure that when retrieving an order in the *Sales* module, it's split by the merchant order and that the Order state is derived from the Merchant State Machine. Make sure that after splitting the order into merchants' orders, their IDs are displayed on the order details page in Yves. diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-offer-cart-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-offer-cart-feature.md index ee343583186..9ce7e3141ee 100644 --- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-offer-cart-feature.md +++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-offer-cart-feature.md @@ -84,7 +84,7 @@ class CartDependencyProvider extends SprykerCartDependencyProvider Make sure that inactive product offers get removed from cart on reload. -Make sure that it is only possible to have items in cart where the product offer reference belongs to the correct concrete product. +Make sure that it's only possible to have items in cart where the product offer reference belongs to the correct concrete product. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-options-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-options-feature.md index 406fbea6c4b..07d625a9cdb 100644 --- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-options-feature.md +++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-options-feature.md @@ -372,7 +372,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider Make sure the following is true: * Merchants can create product option groups and values in the Merchant Portal. -* Merchant product option information is shown on a product details page when it is approved and active. +* Merchant product option information is shown on a product details page when it's approved and active. * Merchant product option information is displayed in the cart, checkout, and user account. * Merchant product options are a part of the marketplace or merchant order, and all totals are calculated correctly. diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-return-management-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-return-management-feature.md index 0460b1b5037..38200ac77d6 100644 --- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-return-management-feature.md +++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-return-management-feature.md @@ -835,7 +835,7 @@ Make sure that when you create and process a return for merchant order items, it | MARKETPLACE SM | DEFAULT MERCHANT SM | MAIN MERCHANT SM | | --- | ---| --- | | Used by an operator | Used by a third-party merchant. | Used by a main merchant. | -| start-return (can be started by entering in the Return Flow; it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return +| start-return (can be started by entering in the Return Flow; it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | execute return > returned | execute return (manually executable) > returned execute return (manually executable) > returned | refund > refunded | refund (manually executable) > refunded | refund (manually executable) > refunded | cancel return > return canceled | cancel return (manually executable) > return canceled | cancel return (manually executable) > return canceled diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-opening-hours-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-opening-hours-feature.md index 7ffc72236c2..04cc69a5541 100644 --- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-opening-hours-feature.md +++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-opening-hours-feature.md @@ -274,7 +274,7 @@ class MerchantOpeningHoursStorageConfig extends SprykerMerchantOpeningHoursStora 1. Make sure that after step 1 the command `console sync:data merchant_opening_hours` exports data from the `spy_merchant_opening_hours_storage` table to Redis. -2. Make sure that when merchant opening hours entities get created or updated through ORM, it is exported to Redis accordingly. +2. Make sure that when merchant opening hours entities get created or updated through ORM, it's exported to Redis accordingly. | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | | ---------------- | ----------------- | diff --git a/_includes/pbc/all/install-features/202311.0/unified-commerce/install-the-warehouse-picking-product-feature.md b/_includes/pbc/all/install-features/202311.0/unified-commerce/install-the-warehouse-picking-product-feature.md index 79e4b8f996d..ed1a87d72fc 100644 --- a/_includes/pbc/all/install-features/202311.0/unified-commerce/install-the-warehouse-picking-product-feature.md +++ b/_includes/pbc/all/install-features/202311.0/unified-commerce/install-the-warehouse-picking-product-feature.md @@ -153,7 +153,7 @@ Make sure the `concrete-products` and `concrete-product-image-sets` resources ar "is_active": true }, "name": "Sony SmartWatch 3", - "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit ist, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.", + "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit'st, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.", "isSearchable": true, "attributes": { "color": "Weiß" diff --git a/_includes/pbc/all/install-features/202404.0/enable-gift-cards.md b/_includes/pbc/all/install-features/202404.0/enable-gift-cards.md index 031d6cb4247..fada0bdabb7 100644 --- a/_includes/pbc/all/install-features/202404.0/enable-gift-cards.md +++ b/_includes/pbc/all/install-features/202404.0/enable-gift-cards.md @@ -31,7 +31,7 @@ spryker/product-management:"^0.12.0" | `GiftCardIsActiveDecisionRulePlugin` | Doesn’t allow using inactive Gift Cards. |`GiftCardDependencyProvider::getDecisionRulePlugins` | - | | `GiftCardDiscountableItemFilterPlugin` |Restricts using a Gift Card for another Gift Cards in a cart. The plugin filters out Gift Cards from discountable items. |`DiscountDependencyProvider::getDiscountableItemFilterPlugins` | - | | `GiftCardIsUsedDecisionRulePlugin` | As a part of the replacement strategy, this plugin does not allow using a Gift Card twice. |`GiftCardDependencyProvider::getDecisionRulePlugins` | Replacement | -| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it is in the cart. | `CartDependencyProvider::getExpanderPlugins` | - | +| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it's in the cart. | `CartDependencyProvider::getExpanderPlugins` | - | | `GiftCardCheckoutDoSaveOrderPlugin` | Saves a Gift Card with populated data when an order is placed. Keeps Gift Card as an order payment method. | `CheckoutDependencyProvider::getCheckoutOrderSavers` | - | | `GiftCardPaymentMethodFilterPlugin` | Now, every payment method is compatible with a Gift Card in the cart. The plugin filters out all incompatible payment methods from available ones during checkout payment methods step. | `PaymentDependencyProvider::getPaymentMethodFilterPlugins` | - | | `GiftCardCheckoutPreConditionPlugin` | Confirms that a Gift Card is not used at the moment and that payment method amount assigned to the Gift Card is no more than the Gift Card amount itself.. | `CheckoutDependencyProvider::getCheckoutPreConditions` | - | diff --git a/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore-the-prices-feature.md b/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore-the-prices-feature.md index 59589943897..d8ca3aaee73 100644 --- a/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore-the-prices-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore-the-prices-feature.md @@ -134,7 +134,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider {% info_block warningBox "Verification" %} -Using the following data, make sure that when you add, update, or delete a store currency, it is exported to or removed from Storage. +Using the following data, make sure that when you add, update, or delete a store currency, it's exported to or removed from Storage. Storage type: Redis Target entity: Store diff --git a/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore.md b/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore.md index 77bbd0e4193..b7bee8d2273 100644 --- a/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore.md +++ b/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore.md @@ -643,7 +643,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider {% info_block warningBox "Verification" %} -When a store’s data is created, updated, or deleted, including local and country information, make sure it is correctly exported to or removed from Redis. +When a store’s data is created, updated, or deleted, including local and country information, make sure it's correctly exported to or removed from Redis. Storage type: Redis Target entity: Store diff --git a/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-multiple-carts-glue-api.md b/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-multiple-carts-glue-api.md index 3cd1d00c78f..a9e32dde44d 100644 --- a/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-multiple-carts-glue-api.md +++ b/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-multiple-carts-glue-api.md @@ -91,7 +91,7 @@ Make sure that the following endpoints are available: {% info_block warningBox “Verification” %} -Make sure that it is possible to create more than one cart. +Make sure that it's possible to create more than one cart. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-navigation-glue-api.md b/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-navigation-glue-api.md index a8810da82c8..7c60ed571ca 100644 --- a/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-navigation-glue-api.md +++ b/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-navigation-glue-api.md @@ -155,7 +155,7 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency {% info_block warningBox “Verification” %} -Now, it is possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.) +Now, it's possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.) {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202404.0/install-the-agent-assist-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-agent-assist-feature.md index b50a978d1e4..8e71466f008 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-agent-assist-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-agent-assist-feature.md @@ -203,7 +203,7 @@ Add environment configuration for the agent security: |----------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| | SecurityBlockerStorefrontAgentConstants::AGENT_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent | | SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent | -| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent | +| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent | **config/Shared/config_default.php** diff --git a/_includes/pbc/all/install-features/202404.0/install-the-approval-process-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-approval-process-feature.md index 23d309371d7..a15fbd28ec8 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-approval-process-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-approval-process-feature.md @@ -144,7 +144,7 @@ quote_approval.cart.waiting_approval,"Sie können diese Bestellung aufgrund eine quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request because of approver limit.",en_US quote_approval.create.approver_cant_approve_quote,"Der ausgewählte Manager kann Ihre Anfrage aufgrund des Genehmigungslimits nicht genehmigen.",de_DE quote_approval.create.you_cant_approve_quote,"You can't approve or decline this cart because it's amount higher that your Approver limit.",en_US -quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit ist.",de_DE +quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit'st.",de_DE quote_approval.create.quote_already_approved,"This Cart was already approved.",en_US quote_approval.create.quote_already_approved,"Dieser Einkaufswagen wurde schon zur Genehmigung gesendet.",de_DE quote_approval.create.quote_already_declined,"This Cart was already declined.",en_US @@ -448,7 +448,7 @@ quote_approval_widget.cart.status.waiting,"Waiting",en_US quote_approval_widget.cart.status.waiting,"Wartet",de_DE quote_approval_widget.shared_cart_warning,"After a cart has been sent to approval, all of its shares will be dismissed.",en_US quote_approval_widget.shared_cart_warning,"Nachdem der Warenkorb zur Genehmigung gesendet wurde, wird sein Sharing aufgehoben.",de_DE -quote_approval_widget.limit_text,"Your purchase limit is %amount%. To spend more, request approval from your manager.",en_US +quote_approval_widget.limit_text,"Your purchase limit's %amount%. To spend more, request approval from your manager.",en_US quote_approval_widget.limit_text,"Ihr Einkaufsrahmen liegt bei %amount%. Um mehr auszugeben, fordern Sie bitte die Genehmigung bei Ihrem Manager an",de_DE quote_approval_widget.no_limit_text,"You do not have a purchase limit",en_US quote_approval_widget.no_limit_text,"Sie haben kein Einkaufslimit",de_DE diff --git a/_includes/pbc/all/install-features/202404.0/install-the-availability-notification-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-availability-notification-feature.md index 755cd86a704..d64c958051c 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-availability-notification-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-availability-notification-feature.md @@ -399,7 +399,7 @@ availability_notification_subscription.mail.notification.subject,"%name% is avai availability_notification_subscription.mail.notification.subject,"%name% ist wieder verfügbar!",de_DE availability_notification_subscription.mail.notification.head,"%name% is available again!",en_US availability_notification_subscription.mail.notification.head,"%name% ist wieder verfügbar",de_DE -availability_notification_subscription.mail.notification.body,"The wait is over, you can not add this product inside your cart.",en_US +availability_notification_subscription.mail.notification.body,"The wait's over, you can not add this product inside your cart.",en_US availability_notification_subscription.mail.notification.body,"Das Warten hat ein Ende, Sie können dieses Produkt nicht in Ihren Warenkorb legen.",de_DE availability_notification_subscription.mail.copyright,"Copyright © current year company name, All rights reserved.

",en_US availability_notification_subscription.mail.copyright,"Copyright © Name des aktuellen Jahres, Alle Rechte vorbehalten.

",de_DE diff --git a/_includes/pbc/all/install-features/202404.0/install-the-category-image-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-category-image-feature.md index 1d9f41e6cab..f200dcf7690 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-category-image-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-category-image-feature.md @@ -263,7 +263,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency {% info_block warningBox "Verification" %} -Make sure that when a category image is created, updated, or deleted, it is exported or removed from Redis accordingly. +Make sure that when a category image is created, updated, or deleted, it's exported or removed from Redis accordingly. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202404.0/install-the-category-management-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-category-management-feature.md index 781d68981fa..8d1a3105bc4 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-category-management-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-category-management-feature.md @@ -712,7 +712,7 @@ Make sure that *category-node* and *category-tree* synchronization plugins works 3. Run the `console sync:data -r category_tree` command. 4. Check that, in your system, the storage entries are displayed with the `kv:category_node:{store}:{locale}:{id}` and `kv:category_tree:{store}:{locale}:{id}` masks. -Make sure that, when a category is created or edited through ORM, it is exported to Redis and Elasticsearch accordingly. +Make sure that, when a category is created or edited through ORM, it's exported to Redis and Elasticsearch accordingly. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | |---------------|---------------|----------------------------------| diff --git a/_includes/pbc/all/install-features/202404.0/install-the-company-account-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-company-account-feature.md index c27d44c1c59..58d5498bedc 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-company-account-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-company-account-feature.md @@ -329,7 +329,7 @@ Enable the following behaviors by registering the plugins: | DefaultCompanyUserCustomerTransferExpanderPlugin | Sets a default company user for a Business on Behalf customer if a company user has not been selected yet. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer | | IsOnBehalfCustomerTransferExpanderPlugin | Sets the `CustomerTransfer.IsOnBehalf` property so that other features can determine if the selected company user is a Business on Behalf company user. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer | | CompanyUserAccessTokenAuthenticationHandlerPlugin | Provides functionality to log in a customer by an access token. | None | Spryker\Client\OauthCompanyUser\Plugin\Customer | -| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it is already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer | +| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it's already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer | | CompanyUserAccessTokenOauthUserProviderPlugin | Provides a user transfer by a company user ID. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth | | CompanyUserAccessTokenOauthGrantTypeConfigurationProviderPlugin | Provides the configuration of `CompanyUser` `GrantType`. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth | | OauthCompanyUserInstallerPlugin| Creates new OAuth scope—adds `company_user scope` to the `spy_oauth_scope` table.) | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Installer | @@ -729,7 +729,7 @@ business_on_behalf_widget.change_company_user,Change Company User,en_US business_on_behalf_widget.change_company_user,Firmenbenutzer Profil ändern,de_DE company_user.business_on_behalf.error.company_not_active,"You can not select this company user, company is not active.",en_US company_user.business_on_behalf.error.company_not_active,"Sie können diesen Firmennutzer nicht auswählen da die Firma inaktiv ist",de_DE -company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it is invalid.",en_US +company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it's invalid.",en_US company_user.business_on_behalf.error.company_user_invalid,"Sie können diesen Firmennutzer nicht auswählen da er ungültig ist",de_DE customer_page.error.customer_already_logged_in,Customer already logged in.,en_US customer_page.error.customer_already_logged_in,Der Kunde ist bereits eingeloggt.,de_DE diff --git a/_includes/pbc/all/install-features/202404.0/install-the-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-configurable-bundle-feature.md index 4aae85c18e0..fc8c949fc1a 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-configurable-bundle-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-configurable-bundle-feature.md @@ -605,7 +605,7 @@ class ConfigurableBundlePageSearchConfig extends SprykerConfigurableBundlePageSe * from `spy_configurable_bundle_template_storage` table to Redis * from `spy_configurable_bundle_template_page_search` table to Elasticsearch -3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it is exported to Redis or Elasticsearch accordingly. +3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it's exported to Redis or Elasticsearch accordingly. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | | --- | --- | --- | diff --git a/_includes/pbc/all/install-features/202404.0/install-the-customer-access-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-customer-access-feature.md index 1d3ce1cb6f4..4019eb1feb4 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-customer-access-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-customer-access-feature.md @@ -170,7 +170,7 @@ class EventDependencyProvider extends SprykerEventDependencyProvider {% info_block warningBox "Verification" %} -Make sure that when a customer access rule is created, updated, or deleted, it is exported (or removed) to Redis. +Make sure that when a customer access rule is created, updated, or deleted, it's exported (or removed) to Redis. | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | |-------------------------------------|------------------------------------| diff --git a/_includes/pbc/all/install-features/202404.0/install-the-discontinued-products-product-labels-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-discontinued-products-product-labels-feature.md index 3528d1a6f74..6469c8e033c 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-discontinued-products-product-labels-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-discontinued-products-product-labels-feature.md @@ -79,6 +79,6 @@ class ProductLabelDependencyProvider extends SprykerProductLabelDependencyProvid {% info_block warningBox "Verification" %} -Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it is assigned. +Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it's assigned. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202404.0/install-the-merchant-b2b-contract-requests-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-merchant-b2b-contract-requests-feature.md index 10670f8161b..f68a55814ca 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-merchant-b2b-contract-requests-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-merchant-b2b-contract-requests-feature.md @@ -171,7 +171,7 @@ Enable the following behaviors by registering the plugins: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | |--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|----------------------------------------------------------------------------------| -| MerchantRelationRequestCompanyBusinessUnitPreDeletePlugin | When a company business unit is deleted, deletes merchant relation request entities and the related merchant relation request to company business unit entities. | | Spryker\Zed\MerchantRelationRequest\Communication\Plugin\CompanyBusinessUnit | +| MerchantRelationRequestCompanyBusinessUnitPreDeletePlugin | When a company business unit's deleted, deletes merchant relation request entities and the related merchant relation request to company business unit entities. | | Spryker\Zed\MerchantRelationRequest\Communication\Plugin\CompanyBusinessUnit | | MerchantRelationRequestCompanyUserPreDeletePlugin | When a company user is deleted, deletes merchant relation request entities and the related merchant relation request to company business unit entities. | | Spryker\Zed\MerchantRelationRequest\Communication\Plugin\CompanyUser | | MerchantRelationRequestStatusChangeMailTypeBuilderPlugin | Builds `MailTransfer` with the data for the merchant relation request status change email. | | Spryker\Zed\MerchantRelationRequest\Communication\Plugin\Mail | | StatusChangeCompanyUserNotificationMerchantRelationshipRequestPostUpdatePlugin | Sends a status change notification email to the company user who initiated the request to the merchant. | | Spryker\Zed\MerchantRelationRequest\Communication\Plugin\MerchantRelationRequest | @@ -204,7 +204,7 @@ class CompanyBusinessUnitDependencyProvider extends SprykerCompanyBusinessUnitDe {% info_block warningBox "Verification" %} -Make sure that, when a company business unit is deleted, all related merchant relation requests are deleted too. +Make sure that, when a company business unit's deleted, all related merchant relation requests are deleted too. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202404.0/install-the-merchant-custom-prices-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-merchant-custom-prices-feature.md index 2584aa3c871..b910894bb19 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-merchant-custom-prices-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-merchant-custom-prices-feature.md @@ -493,7 +493,7 @@ Make sure that there is the "Merchant Price Dimension" drop-down in the Back Off {% info_block warningBox "Verification" %} -Make sure that a logged in user, who belongs to a company business unit and that business unit is assigned to some Merchant Relationship with specified prices, sees Merchant Relationship prices on the Catalog and on the Product page.
Make sure that this user sees MIN price if their business unit is assigned to multiple Merchant Relationships with different prices for the same product. +Make sure that a logged in user, who belongs to a company business unit and that business unit's assigned to some Merchant Relationship with specified prices, sees Merchant Relationship prices on the Catalog and on the Product page.
Make sure that this user sees MIN price if their business unit's assigned to multiple Merchant Relationships with different prices for the same product. {% endinfo_block %} ### Ensure compatibility diff --git a/_includes/pbc/all/install-features/202404.0/install-the-multiple-carts-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-multiple-carts-feature.md index 7023ce4fb98..195fbb4e3c6 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-multiple-carts-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-multiple-carts-feature.md @@ -330,7 +330,7 @@ Make sure that customer carts have unique names. If a customer creates a cart wi Example: -If the name "Shopping cart" already exists, it is changed to the following: +If the name "Shopping cart" already exists, it's changed to the following: * Shopping cart → Shopping cart 1 * Shopping cart → Shopping cart 2 @@ -426,7 +426,7 @@ Register the following plugins: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | |---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|---------------------------------| -| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it is not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin | +| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it's not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin | **src/Pyz/Client/Customer/CustomerDependencyProvider.php** diff --git a/_includes/pbc/all/install-features/202404.0/install-the-packaging-units-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-packaging-units-feature.md index 1fa6fe44de6..3fb3021400a 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-packaging-units-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-packaging-units-feature.md @@ -951,7 +951,7 @@ Go through the checkout workflow, make an order and check if the following state * `amount_base_measurement_unit_name` Go to the Zed UI Sales overview, check the order, and verify the following: -- The correct sales unit is displayed. +- The correct sales unit's displayed. - The correct amount is displayed per sales order item. Make sure the following: diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-feature.md index b2d3beeefd5..c9cafadc2b8 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-feature.md @@ -210,7 +210,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency {% info_block warningBox "Verification" %} -Ensure that, when a product bundle is created, updated, or deleted, it is exported to or removed from Redis. +Ensure that, when a product bundle is created, updated, or deleted, it's exported to or removed from Redis. Storage type: Redis Target entity: Product Bundle diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-category-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-category-feature.md index f528dd0a1b0..55b924d04d3 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-product-category-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-product-category-feature.md @@ -345,7 +345,7 @@ class EventBehaviorDependencyProvider extends SprykerEventBehaviorDependencyProv {% info_block warningBox "Verification" %} -When a category product assignment is changed through ORM, make sure it is exported to Redis. +When a category product assignment is changed through ORM, make sure it's exported to Redis. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | |--------------|-------------------------|--------------------------------------| diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-images-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-images-configurable-bundle-feature.md index 92e36980ad9..23db51e003f 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-product-images-configurable-bundle-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-product-images-configurable-bundle-feature.md @@ -153,7 +153,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency 1. Make sure that when you added some data to tables `spy_product_image_set`, `spy_product_image_set_to_product_image`, `spy_product_image` with `fk_resource_configurable_bundle_template` and run `console trigger:event -r configurable_bundle_template_image` command, the changes are reflected in the `spy_configurable_bundle_template_image_storage` table. 2. Make sure that after step #4 or after `console sync:data configurable_bundle_template_image` command execution, the data s added to the `spy_configurable_bundle_template_image_storage` table and Redis. -3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it is exported to Redis accordingly. +3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it's exported to Redis accordingly. 4. Ensure that Elasticsearch document has been expanded by images property. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-measurement-unit-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-measurement-unit-feature.md index 88112f38069..e141d4e44e5 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-product-measurement-unit-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-product-measurement-unit-feature.md @@ -534,9 +534,9 @@ sales_unit_19,218_1232,ITEM,1,1,1,1 |concrete_sku|mandatory|string|215_123|An already existing product concrete SKU.| |code|mandatory|string|METR |An already existing measurement unit code that will be used to convert back and forth with the base unit defined in product abstract.| |conversion|mandatory|float, empty|5|

A custom multiplier that is used to calculate base unit. This field can be empty if both base and sales unit code is defined in the general [conversion ratios](https://github.com/spryker/util-measurement-unit-conversion/blob/1ae26cf8e629d25157e273097941bde438a24ddc/src/Spryker/Service/UtilMeasurementUnitConversion/UtilMeasurementUnitConversionConfig.php).

Example: 5 means that 1 quantity of this sales unit represents 5 of the base unit.

| -|precision|mandatory|integer, power of ten, empty|100|A property that affects how detailed to render a float measurement unit. Affects visual only, not used in calculations.
When left empty, the precision of the measurement unit is used.| +|precision|mandatory|integer, power of ten, empty|100|A property that affects how detailed to render a float measurement unit. Affects visual only, not used in calculations.
When left empty, the precision of the measurement unit's used.| |is_displayed|mandatory|integer|0|Controls if the sales unit can be displayed for customers.| -|is_default|mandatory|integer|1|Controls if this sales unit is preferred as the default sales unit when offered for customers.
Takes no effect if is_displayed set as 0.
1 product concrete can have up to 1 default sales unit.| +|is_default|mandatory|integer|1|Controls if this sales unit's preferred as the default sales unit when offered for customers.
Takes no effect if is_displayed set as 0.
1 product concrete can have up to 1 default sales unit.| Register the following plugin: @@ -650,7 +650,7 @@ sales_unit_19,AT | COLUMN | REQUIRED | DATA TYPE | DATA EXAMPLE | DATA EXPLANATION | | --- | --- | --- | --- | --- | | sales_unit_key |mandatory | string | sales_unit_1 |A reference used for the product measurement sales unit data import. | -|store_name|mandatory|string|DE|Contains the store name where the sales unit is available.| +|store_name|mandatory|string|DE|Contains the store name where the sales unit's available.| Register the following plugin: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | @@ -938,7 +938,7 @@ measurement_units.recommendation.suggestion,Was würden Sie gerne hinzufügen? , cart.pre.check.quantity.min.failed,Die Mindestanzahl für Produkt SKU '%sku%' ist nicht erreicht.,de_DE cart.pre.check.quantity.max.failed,Die Maximalanzahl für Produkt SKU '%sku%' ist überschritten.,de_DE cart.pre.check.quantity.interval.failed,Die Anzahl für Produkt SKU '%sku%' liegt nicht innerhalb des vorgegebenen Intervals.,de_DE -cart.item.sales_unit.not_found,Sales unit is not found for product with SKU '%sku%'.,en_US +cart.item.sales_unit.not_found,Sales unit's not found for product with SKU '%sku%'.,en_US cart.item.sales_unit.not_found,Verkaufseinheit wird für Produkt mit SKU '%sku%' nicht gefunden.,de_DE ``` diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-offer-service-points-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-offer-service-points-feature.md index 3648f5f66c4..f111df98182 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-product-offer-service-points-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-product-offer-service-points-feature.md @@ -464,7 +464,7 @@ Make sure that the `product-offer-service` synchronization plugin works correctl 2. Run the `console sync:data -r product_offer_service` command. 3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_service:{store}:{product_offer_reference}` mask. -Make sure when a product offer service is created via DataImport, it is exported to Redis accordingly. +Make sure when a product offer service is created via DataImport, it's exported to Redis accordingly. Make sure that, in Redis, data is displayed in the following format: diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-offer-shipment-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-offer-shipment-feature.md index ea9933eab92..81c6f1883ce 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-product-offer-shipment-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-product-offer-shipment-feature.md @@ -336,7 +336,7 @@ Make sure that `product-offer-shipment-type` synchronization plugin works correc 2. Run the `console sync:data -r product_offer_shipment_type` command. 3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_shipment_type:{store}:{product_offer_reference}` mask. -Make sure that when a product offer shipment type relation is created or edited through BAPI, it is exported to Redis accordingly. +Make sure that when a product offer shipment type relation is created or edited through BAPI, it's exported to Redis accordingly. In Redis, make sure data is represented in the following format: ```json diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-sets-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-sets-feature.md index 13dfc73c869..5a6d0a8f441 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-product-sets-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-product-sets-feature.md @@ -117,7 +117,7 @@ Implement an installer in your project to put products together in sets represen ### Listing products sets on the Storefront -The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it is possible to implement the same features with a custom implementation. +The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it's possible to implement the same features with a custom implementation. For a simple listing, the `ProductSet` module provides a Client API to list product sets from Elasticsearch. By calling the `ProductSetClient::getProductSetList()` method, a limited set of documents can be listed on the Storefront. The results are sorted in descending order based on the product sets' weight attributes. diff --git a/_includes/pbc/all/install-features/202404.0/install-the-quotation-process-approval-process-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-quotation-process-approval-process-feature.md index a840cd76dcc..40d9b388049 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-quotation-process-approval-process-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-quotation-process-approval-process-feature.md @@ -22,7 +22,7 @@ Register the following plugins: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | |---|---|---|---| | QuoteApprovalQuoteRequestQuoteCheckPlugin | Checks if the "Request For Quote" button should be shown on the cart page or not. | None | Spryker\Client\QuoteApproval\Plugin\QuoteRequest | -| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it is in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval | +| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it's in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval | | QuoteApprovalQuoteRequestPreCreateCheckPlugin | Checks if the quote doesn't have the status `waiting`. | None | Spryker\Zed\QuoteApproval\Communication\Plugin\QuoteRequest | **src/Pyz/Client/QuoteRequest/QuoteRequestDependencyProvider.php** diff --git a/_includes/pbc/all/install-features/202404.0/install-the-service-points-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-service-points-feature.md index a374116cb92..4a7d2a47b5c 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-service-points-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-service-points-feature.md @@ -471,7 +471,7 @@ service_point.validation.wrong_request_body,Falscher Anforderungstext.,de_DE service_point.validation.country_entity_not_found,Country with iso2 code '%iso2Code%' does not exist.,en_US service_point.validation.country_entity_not_found,Das Land mit dem iso2-Code '%iso2Code%' existiert nicht.,de_DE service_point.validation.region_entity_not_found,Region with uuid '%uuid%' does not exist for country with iso2 code '%countryIso2Code%'.,en_US -service_point.validation.region_entity_not_found,Region mit uuid '%uuid%' existiert nicht für Land mit iso2-Code '%countryIso2Code%',de_DE +service_point.validation.region_entity_not_found,Region mit uuid '%uuid%' existiert nicht für Land mit'so2-Code '%countryIso2Code%',de_DE service_point.validation.service_point_address_address1_wrong_length,Service Point Address Input address1 must have a length of %min% to %max% characters.,en_US service_point.validation.service_point_address_address1_wrong_length,Service Point Adresse Input address1 muss eine Länge von %min% bis %max% Zeichen haben.,de_DE service_point.validation.service_point_address_address2_wrong_length,Service Point Address Input address2 must have a length of %min% to %max% characters.,en_US @@ -1075,7 +1075,7 @@ Verify the `service-point` synchronization plugin works correctly: {% info_block warningBox "Verification" %} -* Make sure that, when a service point is created or edited through BAPI, it is exported to Redis accordingly. +* Make sure that, when a service point is created or edited through BAPI, it's exported to Redis accordingly. * Make sure that, in Redis, data is displayed in the following format: ```yaml @@ -1148,7 +1148,7 @@ Verify the `service-type` synchronization plugin works correctly: {% info_block warningBox "Verification" %} -* Make sure that when a service type is created or edited through BAPI, it is exported to Redis accordingly. +* Make sure that when a service type is created or edited through BAPI, it's exported to Redis accordingly. * Make sure that, in Redis, data is displayed in the following format: ```json diff --git a/_includes/pbc/all/install-features/202404.0/install-the-shipment-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-shipment-feature.md index 3771019e5ed..2ef8891c97f 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-shipment-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-shipment-feature.md @@ -971,7 +971,7 @@ Make sure that `shipment-type` synchronization plugin works correctly: 2. Run the `console sync:data -r shipment_type` command. 3. Make sure that, in your system, storage entries are displayed with the `kv:shipment_type:{store}:{shipment_type_id}` mask. -Make sure that when a shipment type is created or edited through BAPI, it is exported to Redis accordingly. +Make sure that when a shipment type is created or edited through BAPI, it's exported to Redis accordingly. In Redis, make sure data is represented in the following format: ```json diff --git a/_includes/pbc/all/install-features/202404.0/install-the-shopping-lists-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-shopping-lists-feature.md index 524564bdb54..52ba385bd27 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-shopping-lists-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-shopping-lists-feature.md @@ -1232,7 +1232,7 @@ customer.account.shopping_list.add_selected_items_to_cart,Ausgewählte Artikel i customer.account.shopping_list.add_all_available_to_cart,Add all available products to cart,en_US customer.account.shopping_list.add_all_available_to_cart,Alle Produkte zum Warenkorb hinzufügen,de_DE customer.account.shopping_list.empty,Currently there are no items in your shopping list.,en_US -customer.account.shopping_list.empty,Zurzeit ist kein Produkt auf deiner Einkaufsliste.,de_DE +customer.account.shopping_list.empty,Zurzeit'st kein Produkt auf deiner Einkaufsliste.,de_DE customer.account.shopping_list.overview.dismiss,Dismiss,en_US customer.account.shopping_list.overview.dismiss,Ablehnen,de_DE customer.account.shopping_list.overview.warning,Warning,en_US diff --git a/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-back-office-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-back-office-feature.md index a9cd5367371..53eaf7d3b82 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-back-office-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-back-office-feature.md @@ -108,7 +108,7 @@ Add the following configuration to your project: | AclConstants::ACL_DEFAULT_RULES | Default rules for ACL functionality, where you can open access to some modules or controller out of the box. | Spryker\Shared\Acl | | SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for a Back Office user. | Spryker\Shared\SecurityBlockerBackoffice | | SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the Back Office user is blocked if the number of attempts is exceeded for the Back Office. | Spryker\Shared\SecurityBlockerBackoffice | -| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerBackoffice | +| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerBackoffice | **config/Shared/config_default.php** @@ -176,7 +176,7 @@ class SecurityGuiConfig extends SprykerSecurityGuiConfig By default, Spryker offers two authentication strategies: -* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it is created automatically based on the data from an external service. +* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it's created automatically based on the data from an external service. * `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_ACCEPT_ONLY_EXISTING_USERS`: It accepts only existing users for authentication. diff --git a/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-feature.md index 89409cde50b..372925b67e8 100644 --- a/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-feature.md +++ b/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-feature.md @@ -306,7 +306,7 @@ Add environment configuration for customer security: |----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------| | SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer | | SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_TTL | Specifies the TTL configuration, the period when number of unsuccessful tries will be counted for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer | -| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer | +| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer | **config/Shared/config_default.php** diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-inventory-management-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-inventory-management-feature.md index 4da32209f4f..e84bf35f3af 100644 --- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-inventory-management-feature.md +++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-inventory-management-feature.md @@ -612,7 +612,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency Make sure the following actions take place as expected: * The command `console sync:data merchant_profile` exports data from the `spy_product_offer_availability_storage` table to Redis. -* When a product offer availability entity gets created or updated through ORM, it is exported to Redis accordingly. +* When a product offer availability entity gets created or updated through ORM, it's exported to Redis accordingly. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-merchant-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-merchant-feature.md index 31bd5548e72..f987804c870 100644 --- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-merchant-feature.md +++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-merchant-feature.md @@ -431,17 +431,17 @@ To import data follow the steps in the following sections. ```csv merchant_reference,contact_person_role,contact_person_title,contact_person_first_name,contact_person_last_name,contact_person_phone,banner_url,logo_url,public_email,public_phone,description_glossary_key.en_US,description_glossary_key.de_DE,banner_url_glossary_key.en_US,banner_url_glossary_key.de_DE,delivery_time_glossary_key.en_US,delivery_time_glossary_key.de_DE,terms_conditions_glossary_key.en_US,terms_conditions_glossary_key.de_DE,cancellation_policy_glossary_key.en_US,cancellation_policy_glossary_key.de_DE,imprint_glossary_key.en_US,imprint_glossary_key.de_DE,data_privacy_glossary_key.en_US,data_privacy_glossary_key.de_DE,is_active,fax_number -MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Vertreten durch
Geschäftsführer: Alexander Graf, Boris Lokschin
Registergericht: Hamburg
Registernummer: HRB 134310

",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800 -MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Video King

Gilzeweg 24
4854SG Bavel
NL

Phone: +31 123 45 6789
Email: hi@video-king.nl

Represented by
Managing Director: Max Mustermann
Register Court: Amsterdam
Register Number: 1234.4567

,

Video King

Gilzeweg 24
4854SG Bavel
NL

Telefon: +31 123 45 6789
Email: hi@video-king.nl

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Amsterdam
Registernummer: 1234.4567

,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733 +MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Vertreten durch
Geschäftsführer: Alexander Graf, Boris Lokschin
Registergericht: Hamburg
Registernummer: HRB 134310

",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800 +MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Video King

Gilzeweg 24
4854SG Bavel
NL

Phone: +31 123 45 6789
Email: hi@video-king.nl

Represented by
Managing Director: Max Mustermann
Register Court: Amsterdam
Register Number: 1234.4567

,

Video King

Gilzeweg 24
4854SG Bavel
NL

Telefon: +31 123 45 6789
Email: hi@video-king.nl

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Amsterdam
Registernummer: 1234.4567

,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733 MER000006,Brand Manager,Ms,Michele,Nemeth,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-logo.png,support@sony-experts.com,+49 30 234567691,"Capture your moment with the best cameras from Sony. From pocket-size to professional-style, they all pack features to deliver the best quality pictures. Discover the range of Sony cameras, lenses and accessories, and capture your favorite moments with precision and style with the best cameras can offer.","Halten Sie Ihren Moment mit den besten Kameras von Sony fest. Vom Taschenformat bis hin zum professionellen Stil bieten sie alle Funktionen, um Bilder in bester Qualität zu liefern. -Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

,

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: München
Registernummer: HYY 134306

,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600 +Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

,

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: München
Registernummer: HYY 134306

,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600 MER000004,,,,,,,,,,,,,,,,,,,,,,,,0, MER000003,,,,,,,,,,,,,,,,,,,,,,,,0, MER000007,,,,,,,,,,,,,,,,,,,,,,,,0, MER000005,Merchandise Manager,Mr,Jason,Weidmann,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-logo.png,support@budgetcamerasonline.com,+49 30 234567591,"DSLR and mirrorless cameras are by far the most popular with filmmakers on a tight budget when you can't afford multiple specialist cameras. Budget Cameras is offering a great selection of digital cameras with the lowest prices.","DSLR- und spiegellose Kameras sind bei Filmemachern mit knappem Budget bei weitem am beliebtesten, wenn sie sich bestimmte Spezialkameras nicht leisten können. -Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305

,

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Hamburg
Registernummer: HXX 134305

,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500 +Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305

,

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Hamburg
Registernummer: HXX 134305

,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500 ``` diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-order-management-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-order-management-feature.md index b4387ae9c6f..c4a0b3ee2a1 100644 --- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-order-management-feature.md +++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-order-management-feature.md @@ -1100,7 +1100,7 @@ class ShopApplicationDependencyProvider extends SprykerShopApplicationDependency Make sure that the Merchant State Machine is executed on merchant orders after the order has been split. -Make sure that when retrieving an order in the *Sales* module, it is split by the merchant order and that the Order state is derived from the Merchant State Machine. +Make sure that when retrieving an order in the *Sales* module, it's split by the merchant order and that the Order state is derived from the Merchant State Machine. Make sure that after splitting the order into merchants' orders, their IDs are displayed on the order details page in Yves. diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-offer-cart-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-offer-cart-feature.md index ee343583186..9ce7e3141ee 100644 --- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-offer-cart-feature.md +++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-offer-cart-feature.md @@ -84,7 +84,7 @@ class CartDependencyProvider extends SprykerCartDependencyProvider Make sure that inactive product offers get removed from cart on reload. -Make sure that it is only possible to have items in cart where the product offer reference belongs to the correct concrete product. +Make sure that it's only possible to have items in cart where the product offer reference belongs to the correct concrete product. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-options-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-options-feature.md index 406fbea6c4b..07d625a9cdb 100644 --- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-options-feature.md +++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-options-feature.md @@ -372,7 +372,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider Make sure the following is true: * Merchants can create product option groups and values in the Merchant Portal. -* Merchant product option information is shown on a product details page when it is approved and active. +* Merchant product option information is shown on a product details page when it's approved and active. * Merchant product option information is displayed in the cart, checkout, and user account. * Merchant product options are a part of the marketplace or merchant order, and all totals are calculated correctly. diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-return-management-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-return-management-feature.md index 0460b1b5037..38200ac77d6 100644 --- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-return-management-feature.md +++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-return-management-feature.md @@ -835,7 +835,7 @@ Make sure that when you create and process a return for merchant order items, it | MARKETPLACE SM | DEFAULT MERCHANT SM | MAIN MERCHANT SM | | --- | ---| --- | | Used by an operator | Used by a third-party merchant. | Used by a main merchant. | -| start-return (can be started by entering in the Return Flow; it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return +| start-return (can be started by entering in the Return Flow; it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | execute return > returned | execute return (manually executable) > returned execute return (manually executable) > returned | refund > refunded | refund (manually executable) > refunded | refund (manually executable) > refunded | cancel return > return canceled | cancel return (manually executable) > return canceled | cancel return (manually executable) > return canceled diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-opening-hours-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-opening-hours-feature.md index 7ffc72236c2..04cc69a5541 100644 --- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-opening-hours-feature.md +++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-opening-hours-feature.md @@ -274,7 +274,7 @@ class MerchantOpeningHoursStorageConfig extends SprykerMerchantOpeningHoursStora 1. Make sure that after step 1 the command `console sync:data merchant_opening_hours` exports data from the `spy_merchant_opening_hours_storage` table to Redis. -2. Make sure that when merchant opening hours entities get created or updated through ORM, it is exported to Redis accordingly. +2. Make sure that when merchant opening hours entities get created or updated through ORM, it's exported to Redis accordingly. | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | | ---------------- | ----------------- | diff --git a/_includes/pbc/all/install-features/202404.0/unified-commerce/install-the-warehouse-picking-product-feature.md b/_includes/pbc/all/install-features/202404.0/unified-commerce/install-the-warehouse-picking-product-feature.md index 79e4b8f996d..ed1a87d72fc 100644 --- a/_includes/pbc/all/install-features/202404.0/unified-commerce/install-the-warehouse-picking-product-feature.md +++ b/_includes/pbc/all/install-features/202404.0/unified-commerce/install-the-warehouse-picking-product-feature.md @@ -153,7 +153,7 @@ Make sure the `concrete-products` and `concrete-product-image-sets` resources ar "is_active": true }, "name": "Sony SmartWatch 3", - "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit ist, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.", + "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit'st, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.", "isSearchable": true, "attributes": { "color": "Weiß" diff --git a/_includes/pbc/all/install-features/202410.0/enable-gift-cards.md b/_includes/pbc/all/install-features/202410.0/enable-gift-cards.md index 031d6cb4247..fada0bdabb7 100644 --- a/_includes/pbc/all/install-features/202410.0/enable-gift-cards.md +++ b/_includes/pbc/all/install-features/202410.0/enable-gift-cards.md @@ -31,7 +31,7 @@ spryker/product-management:"^0.12.0" | `GiftCardIsActiveDecisionRulePlugin` | Doesn’t allow using inactive Gift Cards. |`GiftCardDependencyProvider::getDecisionRulePlugins` | - | | `GiftCardDiscountableItemFilterPlugin` |Restricts using a Gift Card for another Gift Cards in a cart. The plugin filters out Gift Cards from discountable items. |`DiscountDependencyProvider::getDiscountableItemFilterPlugins` | - | | `GiftCardIsUsedDecisionRulePlugin` | As a part of the replacement strategy, this plugin does not allow using a Gift Card twice. |`GiftCardDependencyProvider::getDecisionRulePlugins` | Replacement | -| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it is in the cart. | `CartDependencyProvider::getExpanderPlugins` | - | +| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it's in the cart. | `CartDependencyProvider::getExpanderPlugins` | - | | `GiftCardCheckoutDoSaveOrderPlugin` | Saves a Gift Card with populated data when an order is placed. Keeps Gift Card as an order payment method. | `CheckoutDependencyProvider::getCheckoutOrderSavers` | - | | `GiftCardPaymentMethodFilterPlugin` | Now, every payment method is compatible with a Gift Card in the cart. The plugin filters out all incompatible payment methods from available ones during checkout payment methods step. | `PaymentDependencyProvider::getPaymentMethodFilterPlugins` | - | | `GiftCardCheckoutPreConditionPlugin` | Confirms that a Gift Card is not used at the moment and that payment method amount assigned to the Gift Card is no more than the Gift Card amount itself.. | `CheckoutDependencyProvider::getCheckoutPreConditions` | - | diff --git a/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore-the-prices-feature.md b/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore-the-prices-feature.md index 189e373f8cf..c1f5932c31a 100644 --- a/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore-the-prices-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore-the-prices-feature.md @@ -128,7 +128,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider {% info_block warningBox "Verification" %} -Using the following data, make sure that when you add, update, or delete a store currency, it is exported to or removed from Storage. +Using the following data, make sure that when you add, update, or delete a store currency, it's exported to or removed from Storage. Storage type: Redis Target entity: Store diff --git a/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore.md b/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore.md index 92e1a8077c8..52e323e662d 100644 --- a/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore.md +++ b/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore.md @@ -689,7 +689,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider {% info_block warningBox "Verification" %} -When a store’s data is created, updated, or deleted, including local and country information, make sure it is correctly exported to or removed from Redis. +When a store’s data is created, updated, or deleted, including local and country information, make sure it's correctly exported to or removed from Redis. Storage type: Redis Target entity: Store diff --git a/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-multiple-carts-glue-api.md b/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-multiple-carts-glue-api.md index 3cd1d00c78f..a9e32dde44d 100644 --- a/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-multiple-carts-glue-api.md +++ b/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-multiple-carts-glue-api.md @@ -91,7 +91,7 @@ Make sure that the following endpoints are available: {% info_block warningBox “Verification” %} -Make sure that it is possible to create more than one cart. +Make sure that it's possible to create more than one cart. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-navigation-glue-api.md b/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-navigation-glue-api.md index a8810da82c8..7c60ed571ca 100644 --- a/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-navigation-glue-api.md +++ b/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-navigation-glue-api.md @@ -155,7 +155,7 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency {% info_block warningBox “Verification” %} -Now, it is possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.) +Now, it's possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.) {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202410.0/install-the-approval-process-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-approval-process-feature.md index 23d309371d7..a15fbd28ec8 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-approval-process-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-approval-process-feature.md @@ -144,7 +144,7 @@ quote_approval.cart.waiting_approval,"Sie können diese Bestellung aufgrund eine quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request because of approver limit.",en_US quote_approval.create.approver_cant_approve_quote,"Der ausgewählte Manager kann Ihre Anfrage aufgrund des Genehmigungslimits nicht genehmigen.",de_DE quote_approval.create.you_cant_approve_quote,"You can't approve or decline this cart because it's amount higher that your Approver limit.",en_US -quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit ist.",de_DE +quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit'st.",de_DE quote_approval.create.quote_already_approved,"This Cart was already approved.",en_US quote_approval.create.quote_already_approved,"Dieser Einkaufswagen wurde schon zur Genehmigung gesendet.",de_DE quote_approval.create.quote_already_declined,"This Cart was already declined.",en_US @@ -448,7 +448,7 @@ quote_approval_widget.cart.status.waiting,"Waiting",en_US quote_approval_widget.cart.status.waiting,"Wartet",de_DE quote_approval_widget.shared_cart_warning,"After a cart has been sent to approval, all of its shares will be dismissed.",en_US quote_approval_widget.shared_cart_warning,"Nachdem der Warenkorb zur Genehmigung gesendet wurde, wird sein Sharing aufgehoben.",de_DE -quote_approval_widget.limit_text,"Your purchase limit is %amount%. To spend more, request approval from your manager.",en_US +quote_approval_widget.limit_text,"Your purchase limit's %amount%. To spend more, request approval from your manager.",en_US quote_approval_widget.limit_text,"Ihr Einkaufsrahmen liegt bei %amount%. Um mehr auszugeben, fordern Sie bitte die Genehmigung bei Ihrem Manager an",de_DE quote_approval_widget.no_limit_text,"You do not have a purchase limit",en_US quote_approval_widget.no_limit_text,"Sie haben kein Einkaufslimit",de_DE diff --git a/_includes/pbc/all/install-features/202410.0/install-the-availability-notification-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-availability-notification-feature.md index 755cd86a704..d64c958051c 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-availability-notification-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-availability-notification-feature.md @@ -399,7 +399,7 @@ availability_notification_subscription.mail.notification.subject,"%name% is avai availability_notification_subscription.mail.notification.subject,"%name% ist wieder verfügbar!",de_DE availability_notification_subscription.mail.notification.head,"%name% is available again!",en_US availability_notification_subscription.mail.notification.head,"%name% ist wieder verfügbar",de_DE -availability_notification_subscription.mail.notification.body,"The wait is over, you can not add this product inside your cart.",en_US +availability_notification_subscription.mail.notification.body,"The wait's over, you can not add this product inside your cart.",en_US availability_notification_subscription.mail.notification.body,"Das Warten hat ein Ende, Sie können dieses Produkt nicht in Ihren Warenkorb legen.",de_DE availability_notification_subscription.mail.copyright,"Copyright © current year company name, All rights reserved.

",en_US availability_notification_subscription.mail.copyright,"Copyright © Name des aktuellen Jahres, Alle Rechte vorbehalten.

",de_DE diff --git a/_includes/pbc/all/install-features/202410.0/install-the-category-image-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-category-image-feature.md index 1d9f41e6cab..f200dcf7690 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-category-image-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-category-image-feature.md @@ -263,7 +263,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency {% info_block warningBox "Verification" %} -Make sure that when a category image is created, updated, or deleted, it is exported or removed from Redis accordingly. +Make sure that when a category image is created, updated, or deleted, it's exported or removed from Redis accordingly. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202410.0/install-the-category-management-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-category-management-feature.md index 781d68981fa..8d1a3105bc4 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-category-management-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-category-management-feature.md @@ -712,7 +712,7 @@ Make sure that *category-node* and *category-tree* synchronization plugins works 3. Run the `console sync:data -r category_tree` command. 4. Check that, in your system, the storage entries are displayed with the `kv:category_node:{store}:{locale}:{id}` and `kv:category_tree:{store}:{locale}:{id}` masks. -Make sure that, when a category is created or edited through ORM, it is exported to Redis and Elasticsearch accordingly. +Make sure that, when a category is created or edited through ORM, it's exported to Redis and Elasticsearch accordingly. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | |---------------|---------------|----------------------------------| diff --git a/_includes/pbc/all/install-features/202410.0/install-the-company-account-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-company-account-feature.md index c27d44c1c59..58d5498bedc 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-company-account-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-company-account-feature.md @@ -329,7 +329,7 @@ Enable the following behaviors by registering the plugins: | DefaultCompanyUserCustomerTransferExpanderPlugin | Sets a default company user for a Business on Behalf customer if a company user has not been selected yet. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer | | IsOnBehalfCustomerTransferExpanderPlugin | Sets the `CustomerTransfer.IsOnBehalf` property so that other features can determine if the selected company user is a Business on Behalf company user. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer | | CompanyUserAccessTokenAuthenticationHandlerPlugin | Provides functionality to log in a customer by an access token. | None | Spryker\Client\OauthCompanyUser\Plugin\Customer | -| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it is already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer | +| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it's already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer | | CompanyUserAccessTokenOauthUserProviderPlugin | Provides a user transfer by a company user ID. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth | | CompanyUserAccessTokenOauthGrantTypeConfigurationProviderPlugin | Provides the configuration of `CompanyUser` `GrantType`. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth | | OauthCompanyUserInstallerPlugin| Creates new OAuth scope—adds `company_user scope` to the `spy_oauth_scope` table.) | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Installer | @@ -729,7 +729,7 @@ business_on_behalf_widget.change_company_user,Change Company User,en_US business_on_behalf_widget.change_company_user,Firmenbenutzer Profil ändern,de_DE company_user.business_on_behalf.error.company_not_active,"You can not select this company user, company is not active.",en_US company_user.business_on_behalf.error.company_not_active,"Sie können diesen Firmennutzer nicht auswählen da die Firma inaktiv ist",de_DE -company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it is invalid.",en_US +company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it's invalid.",en_US company_user.business_on_behalf.error.company_user_invalid,"Sie können diesen Firmennutzer nicht auswählen da er ungültig ist",de_DE customer_page.error.customer_already_logged_in,Customer already logged in.,en_US customer_page.error.customer_already_logged_in,Der Kunde ist bereits eingeloggt.,de_DE diff --git a/_includes/pbc/all/install-features/202410.0/install-the-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-configurable-bundle-feature.md index f9399447132..b1d63c153fa 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-configurable-bundle-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-configurable-bundle-feature.md @@ -612,7 +612,7 @@ class ConfigurableBundlePageSearchConfig extends SprykerConfigurableBundlePageSe * from `spy_configurable_bundle_template_page_search` table to Elasticsearch 4. Create or edit a configurable bundle template or template slot through ORM. - Make sure it is exported to Redis or Elasticsearch accordingly. + Make sure it's exported to Redis or Elasticsearch accordingly. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | | --- | --- | --- | diff --git a/_includes/pbc/all/install-features/202410.0/install-the-customer-access-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-customer-access-feature.md index 1d3ce1cb6f4..4019eb1feb4 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-customer-access-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-customer-access-feature.md @@ -170,7 +170,7 @@ class EventDependencyProvider extends SprykerEventDependencyProvider {% info_block warningBox "Verification" %} -Make sure that when a customer access rule is created, updated, or deleted, it is exported (or removed) to Redis. +Make sure that when a customer access rule is created, updated, or deleted, it's exported (or removed) to Redis. | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | |-------------------------------------|------------------------------------| diff --git a/_includes/pbc/all/install-features/202410.0/install-the-discontinued-products-product-labels-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-discontinued-products-product-labels-feature.md index 3528d1a6f74..6469c8e033c 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-discontinued-products-product-labels-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-discontinued-products-product-labels-feature.md @@ -79,6 +79,6 @@ class ProductLabelDependencyProvider extends SprykerProductLabelDependencyProvid {% info_block warningBox "Verification" %} -Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it is assigned. +Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it's assigned. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contract-requests-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contract-requests-feature.md index 10670f8161b..f68a55814ca 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contract-requests-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contract-requests-feature.md @@ -171,7 +171,7 @@ Enable the following behaviors by registering the plugins: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | |--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|----------------------------------------------------------------------------------| -| MerchantRelationRequestCompanyBusinessUnitPreDeletePlugin | When a company business unit is deleted, deletes merchant relation request entities and the related merchant relation request to company business unit entities. | | Spryker\Zed\MerchantRelationRequest\Communication\Plugin\CompanyBusinessUnit | +| MerchantRelationRequestCompanyBusinessUnitPreDeletePlugin | When a company business unit's deleted, deletes merchant relation request entities and the related merchant relation request to company business unit entities. | | Spryker\Zed\MerchantRelationRequest\Communication\Plugin\CompanyBusinessUnit | | MerchantRelationRequestCompanyUserPreDeletePlugin | When a company user is deleted, deletes merchant relation request entities and the related merchant relation request to company business unit entities. | | Spryker\Zed\MerchantRelationRequest\Communication\Plugin\CompanyUser | | MerchantRelationRequestStatusChangeMailTypeBuilderPlugin | Builds `MailTransfer` with the data for the merchant relation request status change email. | | Spryker\Zed\MerchantRelationRequest\Communication\Plugin\Mail | | StatusChangeCompanyUserNotificationMerchantRelationshipRequestPostUpdatePlugin | Sends a status change notification email to the company user who initiated the request to the merchant. | | Spryker\Zed\MerchantRelationRequest\Communication\Plugin\MerchantRelationRequest | @@ -204,7 +204,7 @@ class CompanyBusinessUnitDependencyProvider extends SprykerCompanyBusinessUnitDe {% info_block warningBox "Verification" %} -Make sure that, when a company business unit is deleted, all related merchant relation requests are deleted too. +Make sure that, when a company business unit's deleted, all related merchant relation requests are deleted too. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202410.0/install-the-merchant-custom-prices-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-merchant-custom-prices-feature.md index 2584aa3c871..b910894bb19 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-merchant-custom-prices-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-merchant-custom-prices-feature.md @@ -493,7 +493,7 @@ Make sure that there is the "Merchant Price Dimension" drop-down in the Back Off {% info_block warningBox "Verification" %} -Make sure that a logged in user, who belongs to a company business unit and that business unit is assigned to some Merchant Relationship with specified prices, sees Merchant Relationship prices on the Catalog and on the Product page.
Make sure that this user sees MIN price if their business unit is assigned to multiple Merchant Relationships with different prices for the same product. +Make sure that a logged in user, who belongs to a company business unit and that business unit's assigned to some Merchant Relationship with specified prices, sees Merchant Relationship prices on the Catalog and on the Product page.
Make sure that this user sees MIN price if their business unit's assigned to multiple Merchant Relationships with different prices for the same product. {% endinfo_block %} ### Ensure compatibility diff --git a/_includes/pbc/all/install-features/202410.0/install-the-packaging-units-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-packaging-units-feature.md index 1fa6fe44de6..3fb3021400a 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-packaging-units-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-packaging-units-feature.md @@ -951,7 +951,7 @@ Go through the checkout workflow, make an order and check if the following state * `amount_base_measurement_unit_name` Go to the Zed UI Sales overview, check the order, and verify the following: -- The correct sales unit is displayed. +- The correct sales unit's displayed. - The correct amount is displayed per sales order item. Make sure the following: diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-feature.md index b2d3beeefd5..c9cafadc2b8 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-feature.md @@ -210,7 +210,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency {% info_block warningBox "Verification" %} -Ensure that, when a product bundle is created, updated, or deleted, it is exported to or removed from Redis. +Ensure that, when a product bundle is created, updated, or deleted, it's exported to or removed from Redis. Storage type: Redis Target entity: Product Bundle diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-category-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-category-feature.md index f528dd0a1b0..55b924d04d3 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-product-category-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-product-category-feature.md @@ -345,7 +345,7 @@ class EventBehaviorDependencyProvider extends SprykerEventBehaviorDependencyProv {% info_block warningBox "Verification" %} -When a category product assignment is changed through ORM, make sure it is exported to Redis. +When a category product assignment is changed through ORM, make sure it's exported to Redis. | STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | |--------------|-------------------------|--------------------------------------| diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-comparison-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-comparison-feature.md index 40a1fa18283..3f0dd8d3da6 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-product-comparison-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-product-comparison-feature.md @@ -54,7 +54,7 @@ product_comparison_page.list_link,Artikelvergleich,de_DE product_comparison_page.list_link,Product comparison,en_US product_comparison_page.add_to_comparison.success,Zum Vergleich hinzugefügt,de_DE product_comparison_page.add_to_comparison.success,Added to comparison,en_US -product_comparison_page.add_to_comparison.error.max,Das Limit ist bereits erreicht,de_DE +product_comparison_page.add_to_comparison.error.max,Das Limit'st bereits erreicht,de_DE product_comparison_page.add_to_comparison.error.max,The limit has already been reached,en_US product_comparison_page.removed_from_the_list,Artikel wurde aus der Vergleichsliste entfernt.,de_DE product_comparison_page.removed_from_the_list,Product was removed from the comparison list.,en_US diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-images-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-images-configurable-bundle-feature.md index 92e36980ad9..23db51e003f 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-product-images-configurable-bundle-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-product-images-configurable-bundle-feature.md @@ -153,7 +153,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency 1. Make sure that when you added some data to tables `spy_product_image_set`, `spy_product_image_set_to_product_image`, `spy_product_image` with `fk_resource_configurable_bundle_template` and run `console trigger:event -r configurable_bundle_template_image` command, the changes are reflected in the `spy_configurable_bundle_template_image_storage` table. 2. Make sure that after step #4 or after `console sync:data configurable_bundle_template_image` command execution, the data s added to the `spy_configurable_bundle_template_image_storage` table and Redis. -3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it is exported to Redis accordingly. +3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it's exported to Redis accordingly. 4. Ensure that Elasticsearch document has been expanded by images property. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-measurement-unit-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-measurement-unit-feature.md index 88112f38069..e141d4e44e5 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-product-measurement-unit-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-product-measurement-unit-feature.md @@ -534,9 +534,9 @@ sales_unit_19,218_1232,ITEM,1,1,1,1 |concrete_sku|mandatory|string|215_123|An already existing product concrete SKU.| |code|mandatory|string|METR |An already existing measurement unit code that will be used to convert back and forth with the base unit defined in product abstract.| |conversion|mandatory|float, empty|5|

A custom multiplier that is used to calculate base unit. This field can be empty if both base and sales unit code is defined in the general [conversion ratios](https://github.com/spryker/util-measurement-unit-conversion/blob/1ae26cf8e629d25157e273097941bde438a24ddc/src/Spryker/Service/UtilMeasurementUnitConversion/UtilMeasurementUnitConversionConfig.php).

Example: 5 means that 1 quantity of this sales unit represents 5 of the base unit.

| -|precision|mandatory|integer, power of ten, empty|100|A property that affects how detailed to render a float measurement unit. Affects visual only, not used in calculations.
When left empty, the precision of the measurement unit is used.| +|precision|mandatory|integer, power of ten, empty|100|A property that affects how detailed to render a float measurement unit. Affects visual only, not used in calculations.
When left empty, the precision of the measurement unit's used.| |is_displayed|mandatory|integer|0|Controls if the sales unit can be displayed for customers.| -|is_default|mandatory|integer|1|Controls if this sales unit is preferred as the default sales unit when offered for customers.
Takes no effect if is_displayed set as 0.
1 product concrete can have up to 1 default sales unit.| +|is_default|mandatory|integer|1|Controls if this sales unit's preferred as the default sales unit when offered for customers.
Takes no effect if is_displayed set as 0.
1 product concrete can have up to 1 default sales unit.| Register the following plugin: @@ -650,7 +650,7 @@ sales_unit_19,AT | COLUMN | REQUIRED | DATA TYPE | DATA EXAMPLE | DATA EXPLANATION | | --- | --- | --- | --- | --- | | sales_unit_key |mandatory | string | sales_unit_1 |A reference used for the product measurement sales unit data import. | -|store_name|mandatory|string|DE|Contains the store name where the sales unit is available.| +|store_name|mandatory|string|DE|Contains the store name where the sales unit's available.| Register the following plugin: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | @@ -938,7 +938,7 @@ measurement_units.recommendation.suggestion,Was würden Sie gerne hinzufügen? , cart.pre.check.quantity.min.failed,Die Mindestanzahl für Produkt SKU '%sku%' ist nicht erreicht.,de_DE cart.pre.check.quantity.max.failed,Die Maximalanzahl für Produkt SKU '%sku%' ist überschritten.,de_DE cart.pre.check.quantity.interval.failed,Die Anzahl für Produkt SKU '%sku%' liegt nicht innerhalb des vorgegebenen Intervals.,de_DE -cart.item.sales_unit.not_found,Sales unit is not found for product with SKU '%sku%'.,en_US +cart.item.sales_unit.not_found,Sales unit's not found for product with SKU '%sku%'.,en_US cart.item.sales_unit.not_found,Verkaufseinheit wird für Produkt mit SKU '%sku%' nicht gefunden.,de_DE ``` diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-offer-service-points-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-offer-service-points-feature.md index 3648f5f66c4..f111df98182 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-product-offer-service-points-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-product-offer-service-points-feature.md @@ -464,7 +464,7 @@ Make sure that the `product-offer-service` synchronization plugin works correctl 2. Run the `console sync:data -r product_offer_service` command. 3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_service:{store}:{product_offer_reference}` mask. -Make sure when a product offer service is created via DataImport, it is exported to Redis accordingly. +Make sure when a product offer service is created via DataImport, it's exported to Redis accordingly. Make sure that, in Redis, data is displayed in the following format: diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-offer-shipment-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-offer-shipment-feature.md index ea9933eab92..81c6f1883ce 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-product-offer-shipment-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-product-offer-shipment-feature.md @@ -336,7 +336,7 @@ Make sure that `product-offer-shipment-type` synchronization plugin works correc 2. Run the `console sync:data -r product_offer_shipment_type` command. 3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_shipment_type:{store}:{product_offer_reference}` mask. -Make sure that when a product offer shipment type relation is created or edited through BAPI, it is exported to Redis accordingly. +Make sure that when a product offer shipment type relation is created or edited through BAPI, it's exported to Redis accordingly. In Redis, make sure data is represented in the following format: ```json diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-sets-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-sets-feature.md index c9e1c5340ff..64f01d6acad 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-product-sets-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-product-sets-feature.md @@ -117,7 +117,7 @@ Implement an installer in your project to put products together in sets represen ### Listing products sets on the Storefront -The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it is possible to implement the same features with a custom implementation. +The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it's possible to implement the same features with a custom implementation. For a simple listing, the `ProductSet` module provides a Client API to list product sets from Elasticsearch. By calling the `ProductSetClient::getProductSetList()` method, a limited set of documents can be listed on the Storefront. The results are sorted in descending order based on the product sets' weight attributes. diff --git a/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-approval-process-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-approval-process-feature.md index a840cd76dcc..40d9b388049 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-approval-process-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-approval-process-feature.md @@ -22,7 +22,7 @@ Register the following plugins: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | |---|---|---|---| | QuoteApprovalQuoteRequestQuoteCheckPlugin | Checks if the "Request For Quote" button should be shown on the cart page or not. | None | Spryker\Client\QuoteApproval\Plugin\QuoteRequest | -| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it is in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval | +| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it's in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval | | QuoteApprovalQuoteRequestPreCreateCheckPlugin | Checks if the quote doesn't have the status `waiting`. | None | Spryker\Zed\QuoteApproval\Communication\Plugin\QuoteRequest | **src/Pyz/Client/QuoteRequest/QuoteRequestDependencyProvider.php** diff --git a/_includes/pbc/all/install-features/202410.0/install-the-service-points-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-service-points-feature.md index a374116cb92..4a7d2a47b5c 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-service-points-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-service-points-feature.md @@ -471,7 +471,7 @@ service_point.validation.wrong_request_body,Falscher Anforderungstext.,de_DE service_point.validation.country_entity_not_found,Country with iso2 code '%iso2Code%' does not exist.,en_US service_point.validation.country_entity_not_found,Das Land mit dem iso2-Code '%iso2Code%' existiert nicht.,de_DE service_point.validation.region_entity_not_found,Region with uuid '%uuid%' does not exist for country with iso2 code '%countryIso2Code%'.,en_US -service_point.validation.region_entity_not_found,Region mit uuid '%uuid%' existiert nicht für Land mit iso2-Code '%countryIso2Code%',de_DE +service_point.validation.region_entity_not_found,Region mit uuid '%uuid%' existiert nicht für Land mit'so2-Code '%countryIso2Code%',de_DE service_point.validation.service_point_address_address1_wrong_length,Service Point Address Input address1 must have a length of %min% to %max% characters.,en_US service_point.validation.service_point_address_address1_wrong_length,Service Point Adresse Input address1 muss eine Länge von %min% bis %max% Zeichen haben.,de_DE service_point.validation.service_point_address_address2_wrong_length,Service Point Address Input address2 must have a length of %min% to %max% characters.,en_US @@ -1075,7 +1075,7 @@ Verify the `service-point` synchronization plugin works correctly: {% info_block warningBox "Verification" %} -* Make sure that, when a service point is created or edited through BAPI, it is exported to Redis accordingly. +* Make sure that, when a service point is created or edited through BAPI, it's exported to Redis accordingly. * Make sure that, in Redis, data is displayed in the following format: ```yaml @@ -1148,7 +1148,7 @@ Verify the `service-type` synchronization plugin works correctly: {% info_block warningBox "Verification" %} -* Make sure that when a service type is created or edited through BAPI, it is exported to Redis accordingly. +* Make sure that when a service type is created or edited through BAPI, it's exported to Redis accordingly. * Make sure that, in Redis, data is displayed in the following format: ```json diff --git a/_includes/pbc/all/install-features/202410.0/install-the-shipment-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-shipment-feature.md index ba4e639fd13..31b67756ce1 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-shipment-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-shipment-feature.md @@ -976,7 +976,7 @@ Make sure that `shipment-type` synchronization plugin works correctly: 2. Run the `console sync:data -r shipment_type` command. 3. Make sure that, in your system, storage entries are displayed with the `kv:shipment_type:{store}:{shipment_type_id}` mask. -Make sure that when a shipment type is created or edited through BAPI, it is exported to Redis accordingly. +Make sure that when a shipment type is created or edited through BAPI, it's exported to Redis accordingly. In Redis, make sure data is represented in the following format: ```json diff --git a/_includes/pbc/all/install-features/202410.0/install-the-shopping-lists-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-shopping-lists-feature.md index 04be712979b..9f75580e0b3 100644 --- a/_includes/pbc/all/install-features/202410.0/install-the-shopping-lists-feature.md +++ b/_includes/pbc/all/install-features/202410.0/install-the-shopping-lists-feature.md @@ -1139,7 +1139,7 @@ customer.account.shopping_list.add_selected_items_to_cart,Ausgewählte Artikel i customer.account.shopping_list.add_all_available_to_cart,Add all available products to cart,en_US customer.account.shopping_list.add_all_available_to_cart,Alle Produkte zum Warenkorb hinzufügen,de_DE customer.account.shopping_list.empty,Currently there are no items in your shopping list.,en_US -customer.account.shopping_list.empty,Zurzeit ist kein Produkt auf deiner Einkaufsliste.,de_DE +customer.account.shopping_list.empty,Zurzeit'st kein Produkt auf deiner Einkaufsliste.,de_DE customer.account.shopping_list.overview.dismiss,Dismiss,en_US customer.account.shopping_list.overview.dismiss,Ablehnen,de_DE customer.account.shopping_list.overview.warning,Warning,en_US diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-inventory-management-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-inventory-management-feature.md index 4da32209f4f..e84bf35f3af 100644 --- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-inventory-management-feature.md +++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-inventory-management-feature.md @@ -612,7 +612,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency Make sure the following actions take place as expected: * The command `console sync:data merchant_profile` exports data from the `spy_product_offer_availability_storage` table to Redis. -* When a product offer availability entity gets created or updated through ORM, it is exported to Redis accordingly. +* When a product offer availability entity gets created or updated through ORM, it's exported to Redis accordingly. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-feature.md index 3dcc6895d62..d4da2ab1d1b 100644 --- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-feature.md +++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-feature.md @@ -728,17 +728,17 @@ To import data follow the steps in the following sections. ```csv merchant_reference,contact_person_role,contact_person_title,contact_person_first_name,contact_person_last_name,contact_person_phone,banner_url,logo_url,public_email,public_phone,description_glossary_key.en_US,description_glossary_key.de_DE,banner_url_glossary_key.en_US,banner_url_glossary_key.de_DE,delivery_time_glossary_key.en_US,delivery_time_glossary_key.de_DE,terms_conditions_glossary_key.en_US,terms_conditions_glossary_key.de_DE,cancellation_policy_glossary_key.en_US,cancellation_policy_glossary_key.de_DE,imprint_glossary_key.en_US,imprint_glossary_key.de_DE,data_privacy_glossary_key.en_US,data_privacy_glossary_key.de_DE,is_active,fax_number -MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Vertreten durch
Geschäftsführer: Alexander Graf, Boris Lokschin
Registergericht: Hamburg
Registernummer: HRB 134310

",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800 -MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Video King

Gilzeweg 24
4854SG Bavel
NL

Phone: +31 123 45 6789
Email: hi@video-king.nl

Represented by
Managing Director: Max Mustermann
Register Court: Amsterdam
Register Number: 1234.4567

,

Video King

Gilzeweg 24
4854SG Bavel
NL

Telefon: +31 123 45 6789
Email: hi@video-king.nl

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Amsterdam
Registernummer: 1234.4567

,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733 +MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

","

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Vertreten durch
Geschäftsführer: Alexander Graf, Boris Lokschin
Registergericht: Hamburg
Registernummer: HRB 134310

",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800 +MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Video King

Gilzeweg 24
4854SG Bavel
NL

Phone: +31 123 45 6789
Email: hi@video-king.nl

Represented by
Managing Director: Max Mustermann
Register Court: Amsterdam
Register Number: 1234.4567

,

Video King

Gilzeweg 24
4854SG Bavel
NL

Telefon: +31 123 45 6789
Email: hi@video-king.nl

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Amsterdam
Registernummer: 1234.4567

,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733 MER000006,Brand Manager,Ms,Michele,Nemeth,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-logo.png,support@sony-experts.com,+49 30 234567691,"Capture your moment with the best cameras from Sony. From pocket-size to professional-style, they all pack features to deliver the best quality pictures. Discover the range of Sony cameras, lenses and accessories, and capture your favorite moments with precision and style with the best cameras can offer.","Halten Sie Ihren Moment mit den besten Kameras von Sony fest. Vom Taschenformat bis hin zum professionellen Stil bieten sie alle Funktionen, um Bilder in bester Qualität zu liefern. -Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

,

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: München
Registernummer: HYY 134306

,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600 +Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

,

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: München
Registernummer: HYY 134306

,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600 MER000004,,,,,,,,,,,,,,,,,,,,,,,,0, MER000003,,,,,,,,,,,,,,,,,,,,,,,,0, MER000007,,,,,,,,,,,,,,,,,,,,,,,,0, MER000005,Merchandise Manager,Mr,Jason,Weidmann,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-logo.png,support@budgetcamerasonline.com,+49 30 234567591,"DSLR and mirrorless cameras are by far the most popular with filmmakers on a tight budget when you can't afford multiple specialist cameras. Budget Cameras is offering a great selection of digital cameras with the lowest prices.","DSLR- und spiegellose Kameras sind bei Filmemachern mit knappem Budget bei weitem am beliebtesten, wenn sie sich bestimmte Spezialkameras nicht leisten können. -Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305

,

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Hamburg
Registernummer: HXX 134305

,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500 +Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

","

§ 1 Geltungsbereich & Abwehrklausel

(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.

(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.

§ 2 Zustandekommen des Vertrages

(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.

(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.

(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.

§ 3 Eigentumsvorbehalt

Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.

§ 4 Fälligkeit

Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.

","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305

,

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Vertreten durch
Geschäftsführer: Max Mustermann
Registergericht: Hamburg
Registernummer: HXX 134305

,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500 ``` diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-cart-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-cart-feature.md index ee343583186..9ce7e3141ee 100644 --- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-cart-feature.md +++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-cart-feature.md @@ -84,7 +84,7 @@ class CartDependencyProvider extends SprykerCartDependencyProvider Make sure that inactive product offers get removed from cart on reload. -Make sure that it is only possible to have items in cart where the product offer reference belongs to the correct concrete product. +Make sure that it's only possible to have items in cart where the product offer reference belongs to the correct concrete product. {% endinfo_block %} diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-options-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-options-feature.md index 406fbea6c4b..07d625a9cdb 100644 --- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-options-feature.md +++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-options-feature.md @@ -372,7 +372,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider Make sure the following is true: * Merchants can create product option groups and values in the Merchant Portal. -* Merchant product option information is shown on a product details page when it is approved and active. +* Merchant product option information is shown on a product details page when it's approved and active. * Merchant product option information is displayed in the cart, checkout, and user account. * Merchant product options are a part of the marketplace or merchant order, and all totals are calculated correctly. diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-return-management-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-return-management-feature.md index 0460b1b5037..38200ac77d6 100644 --- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-return-management-feature.md +++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-return-management-feature.md @@ -835,7 +835,7 @@ Make sure that when you create and process a return for merchant order items, it | MARKETPLACE SM | DEFAULT MERCHANT SM | MAIN MERCHANT SM | | --- | ---| --- | | Used by an operator | Used by a third-party merchant. | Used by a main merchant. | -| start-return (can be started by entering in the Return Flow; it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return +| start-return (can be started by entering in the Return Flow; it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | execute return > returned | execute return (manually executable) > returned execute return (manually executable) > returned | refund > refunded | refund (manually executable) > refunded | refund (manually executable) > refunded | cancel return > return canceled | cancel return (manually executable) > return canceled | cancel return (manually executable) > return canceled diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-opening-hours-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-opening-hours-feature.md index 7ffc72236c2..04cc69a5541 100644 --- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-opening-hours-feature.md +++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-opening-hours-feature.md @@ -274,7 +274,7 @@ class MerchantOpeningHoursStorageConfig extends SprykerMerchantOpeningHoursStora 1. Make sure that after step 1 the command `console sync:data merchant_opening_hours` exports data from the `spy_merchant_opening_hours_storage` table to Redis. -2. Make sure that when merchant opening hours entities get created or updated through ORM, it is exported to Redis accordingly. +2. Make sure that when merchant opening hours entities get created or updated through ORM, it's exported to Redis accordingly. | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | | ---------------- | ----------------- | diff --git a/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-product-feature.md b/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-product-feature.md index 79e4b8f996d..ed1a87d72fc 100644 --- a/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-product-feature.md +++ b/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-product-feature.md @@ -153,7 +153,7 @@ Make sure the `concrete-products` and `concrete-product-image-sets` resources ar "is_active": true }, "name": "Sony SmartWatch 3", - "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit ist, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.", + "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit'st, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.", "isSearchable": true, "attributes": { "color": "Weiß" diff --git a/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md b/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md index 10bbcf6cd4a..c6384f156dd 100644 --- a/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md +++ b/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md @@ -217,7 +217,7 @@ Response sample: "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms



(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information



We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information



Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, diff --git a/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md b/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md index 10bbcf6cd4a..c6384f156dd 100644 --- a/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md +++ b/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md @@ -217,7 +217,7 @@ Response sample: "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms



(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information



We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information



Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, diff --git a/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md b/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md index 10bbcf6cd4a..c6384f156dd 100644 --- a/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md +++ b/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md @@ -217,7 +217,7 @@ Response sample: "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms



(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information



We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.

Protecting visitor information



Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-calculation-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-calculation-module.md index 145f5e16355..de8a609b5de 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-calculation-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-calculation-module.md @@ -351,7 +351,7 @@ After this, when you read an order using `SalesFacade::getOrderByIdSalesOrder()` {% info_block errorBox %} -The Sales module does not depend on the `SalesAggregator` anymore. Therefore, you need to remove the `/sales-aggregator/sales/list` from `\Pyz\Zed\Sales\SalesConfig::getSalesDetailExternalBlocksUrls` as it is no longer in use. Totals were moved to Sales to the template `Spryker/Zed/Sales/Presentation/Detail/boxes/totals.twig` available in Sales version >= 6.\*. +The Sales module does not depend on the `SalesAggregator` anymore. Therefore, you need to remove the `/sales-aggregator/sales/list` from `\Pyz\Zed\Sales\SalesConfig::getSalesDetailExternalBlocksUrls` as it's no longer in use. Totals were moved to Sales to the template `Spryker/Zed/Sales/Presentation/Detail/boxes/totals.twig` available in Sales version >= 6.\*. {% endinfo_block %} diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-categorypagesearch-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-categorypagesearch-module.md index b8cf2b04f67..e35941d8ccb 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-categorypagesearch-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-categorypagesearch-module.md @@ -230,7 +230,7 @@ To upgrade to the new version of the module, do the following: composer update spryker/category-page-search ``` -2. Remove deprecated plugin usages listed below (in case it is used) from `Pyz\Zed\Search\SearchDependencyProvider`: +2. Remove deprecated plugin usages listed below (in case it's used) from `Pyz\Zed\Search\SearchDependencyProvider`: ```bash Spryker\Zed\CategoryPageSearch\Communication\Plugin\Search\CategoryNodeDataPageMapBuilder diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-collector-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-collector-module.md index dd269ea3952..0b5493b9d6e 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-collector-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-collector-module.md @@ -15,7 +15,7 @@ The following classes were altered to support the multi-store concept: ### Collector multi-store concept overview -1. The primary change affects the `AbstractDatabaseCollector::processBatchForExport()`. Previously this method was responsible for simply exporting all "touch active" touched entities to Storage or Search. In multi-store environment, a multi-store entity does not necessary exist in all stores even though it is "touch active" in all stores. Moreover, an exported "touch active" multi-store entity can become invalid if it is unassigned from a specific store. To achieve the expected behavior, the `AbstractCollector::isStorable()` method is introduced. Whenever this method returns with `true`, the subject entity is considered to be available (in the current store) and will be exported. On the other hand, the `false` return value that the entity is not available (in the current store) and either not should not be exported or should be deleted from Storage or Search if it has already been exported previously. +1. The primary change affects the `AbstractDatabaseCollector::processBatchForExport()`. Previously this method was responsible for simply exporting all "touch active" touched entities to Storage or Search. In multi-store environment, a multi-store entity does not necessary exist in all stores even though it's "touch active" in all stores. Moreover, an exported "touch active" multi-store entity can become invalid if it's unassigned from a specific store. To achieve the expected behavior, the `AbstractCollector::isStorable()` method is introduced. Whenever this method returns with `true`, the subject entity is considered to be available (in the current store) and will be exported. On the other hand, the `false` return value that the entity is not available (in the current store) and either not should not be exported or should be deleted from Storage or Search if it has already been exported previously. {% info_block warningBox %} diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-companyuser-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-companyuser-module.md index b8b697e5cc1..876eb4fa51c 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-companyuser-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-companyuser-module.md @@ -15,7 +15,7 @@ To upgrade to the new version of the module, do the following: ALTER TABLE "spy_company_user" ADD "is_active" BOOLEAN DEFAULT 't'; ``` -As a result, all existing company users will receive a new column `is_active`. By default, the value is `true` and it is `required`. +As a result, all existing company users will receive a new column `is_active`. By default, the value is `true` and it's `required`. 2. Rebuild `Propel2` models: diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-environment-configuration-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-environment-configuration-module.md index 942e66cb927..824256d5746 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-environment-configuration-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-environment-configuration-module.md @@ -1,6 +1,6 @@ -The environment configuration was restructured to solve a couple of inconsistencies and dependencies within the configuration itself. To untangle some of the configuration options it was necessary to introduce a few new configuration constants. Although the Spryker core should be fully backward compatible it is advised to update project implementations to make use of the new configuration options. +The environment configuration was restructured to solve a couple of inconsistencies and dependencies within the configuration itself. To untangle some of the configuration options it was necessary to introduce a few new configuration constants. Although the Spryker core should be fully backward compatible it's advised to update project implementations to make use of the new configuration options. Along with the introduction of the new configuration constants, a couple of unused ones have been marked as deprecated. @@ -69,7 +69,7 @@ $config[ApplicationConstants::BASE_URL_ZED] = sprintf( ``` ### List of the new configuration diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-oms-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-oms-module.md index afca1dbb263..e8ad2781c4e 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-oms-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-oms-module.md @@ -148,7 +148,7 @@ CREATE TABLE "spy_oms_product_reservation_last_exported_version" ## Upgrading from version 6.* to version 7.* -In version 7, OMS no longer uses `SalesAggregator` to calculate totals; it is now done via the `Calculator` module. Therefore, there is no more dependency with `SalesAggregator`. +In version 7, OMS no longer uses `SalesAggregator` to calculate totals; it's now done via the `Calculator` module. Therefore, there is no more dependency with `SalesAggregator`. The `Spryker\Zed\Oms\Business\Mail\MailHandler` dependency to `SalesAggregatorFacade` was replaced with `SalesFacade`. To learn how to migrate to the new structure, see the [Upgrading from version 3.* to version 4.*](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/install-and-upgrade/upgrade-modules/upgrade-the-calculation-module.html#upgrading-from-version-3-to-version-4) section in *Upgrade the Calculation module*. diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-product-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-product-module.md index 2a863f3812b..9320fddd550 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-product-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-product-module.md @@ -131,7 +131,7 @@ class ProductCollector extends AbstractSearchPdoCollector Collectors should now be able to export abstract product data per store both for Storage and Search. -10. `Facade/ProductToUrlInterface::hasUrl()` method is removed because it is not used within the module. Please check your code if you have customized calls to it. +10. `Facade/ProductToUrlInterface::hasUrl()` method is removed because it's not used within the module. Please check your code if you have customized calls to it. 11. `ProductAbstractManager` internal class was amended to handle `abstract product-store` relation, take a look if you have customized it. Additionally you might want to update the Product Information Management (PIM) Zed Admin UI to manage abstract products and their store configuration. You can find further information about multi-store products here, and [Upgrade the ProductManagement module](/docs/pbc/all/product-information-management/{{site.version}}/base-shop/install-and-upgrade/upgrade-modules/upgrade-the-productmanagement-module.html). diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-productconfiguration-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-productconfiguration-module.md index fafe2ad8153..434b02113c2 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-productconfiguration-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-productconfiguration-module.md @@ -6,7 +6,7 @@ Version 1.0.0 of the `ProductConfiguration` module introduces the following backward incompatible changes: -* Adjusted `ProductConfigurationFacade::getProductConfigurationCollection()` so it is now getting product configurations by `ProductConfigurationCriteria` instead of `ProductConfigurationFilterTransfer`. +* Adjusted `ProductConfigurationFacade::getProductConfigurationCollection()` so it's now getting product configurations by `ProductConfigurationCriteria` instead of `ProductConfigurationFilterTransfer`. * Introduced the `spy_product_configuration.uuid` field to allow unique identifier. * Introduced the `spy_product_configuration-unique-uuid` unique index. diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-productlistgui-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-productlistgui-module.md index 08e7ffe8605..c14ff694143 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-productlistgui-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-productlistgui-module.md @@ -59,7 +59,7 @@ Other changes are listed below: * Replaced `ProductListFacade::deleteProductList()` usage with `ProductListFacade::removeProductList()` in `DeleteController::confirmAction()`. * Introduced extension point to inject buttons for the product list table. * Adjusted UI to see the owner domain entities for each product list. -* Adjusted deletion logic so that it is not possible to delete a product list if it has any owner domain entity. +* Adjusted deletion logic so that it's not possible to delete a product list if it has any owner domain entity. * Introduced extension point to define the ownership over product list by another domain entity. * Deprecated `ProductListOwnerTypeFormExpanderPluginInterface` to allow multiple owners concept. diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-productoption-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-productoption-module.md index 6d156db9433..3f3f8c455a2 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-productoption-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-productoption-module.md @@ -47,7 +47,7 @@ class ProductOptionDependencyProvider extends SprykerProductOptionDependencyProv } ``` -11. Migrate prices from `spy_product_option_value.price` field to `spy_product_option_value_price` table. Each `spy_product_option_value` row must have at least 1 `spy_product_option_value_price` row connected. A `ProductOptionValue` entity can have multiple `ProductOptionValuePrices` connected. You can define different gross/net price per currency per store by populating the `fk_currency` and `fk_store` fields accordingly. When either `gross_price` or `net_price` database field is left as `null`, that option will not be available for customers in that exact currency, store, price mode trio. If you set a price field as 0, the option is available for customers and it means it is free of charge. +11. Migrate prices from `spy_product_option_value.price` field to `spy_product_option_value_price` table. Each `spy_product_option_value` row must have at least 1 `spy_product_option_value_price` row connected. A `ProductOptionValue` entity can have multiple `ProductOptionValuePrices` connected. You can define different gross/net price per currency per store by populating the `fk_currency` and `fk_store` fields accordingly. When either `gross_price` or `net_price` database field is left as `null`, that option will not be available for customers in that exact currency, store, price mode trio. If you set a price field as 0, the option is available for customers and it means it's free of charge.
Example of the migration diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-search-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-search-module.md index b6790111d8b..c3f4868a6ad 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-search-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-search-module.md @@ -158,7 +158,7 @@ you have to merge the latest changes with the core. Especially this is important * `\Spryker\Client\Search\Plugin\Config\SortConfigBuilder` now looks for configuration by configuration field name. **Yves changes:** -The `UrlGenerator` was incorrectly setting the request parameters, therefore now it is necessary to change processFacetSearchResultTransfer and processRangeSearchResultTransfer as shown in the code sample below. +The `UrlGenerator` was incorrectly setting the request parameters, therefore now it's necessary to change processFacetSearchResultTransfer and processRangeSearchResultTransfer as shown in the code sample below. **Code sample:** diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-transfer-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-transfer-module.md index 39891a3964b..73cea8d1c96 100644 --- a/_includes/pbc/all/upgrade-modules/upgrade-the-transfer-module.md +++ b/_includes/pbc/all/upgrade-modules/upgrade-the-transfer-module.md @@ -2,7 +2,7 @@ ## Upgrading from version 2.* to version 3.* -When upgrading to the new major version of the `Transfer` module, it is necessary to make sure that everywhere the `$foo->fromArray($bar->toArray())` statement is used and the types are matching. +When upgrading to the new major version of the `Transfer` module, it's necessary to make sure that everywhere the `$foo->fromArray($bar->toArray())` statement is used and the types are matching. From now on we are no longer silently ignoring when you try to set a string to an array field and an exception is getting thrown instead. diff --git a/_templates/best-practices-file-template.md b/_templates/best-practices-file-template.md index cae86b17560..be9ee78e4de 100644 --- a/_templates/best-practices-file-template.md +++ b/_templates/best-practices-file-template.md @@ -16,7 +16,7 @@ template: best-practices-guide-template 1. Describe a possible use case and what a customer might want to achieve. For example: Suppose you are a clothing retailer and often get items returned within the 14-days return window. You want to automate the return process as much as possible so that minimum intervention of your employees is required. 2. Suggest the solution for this scenario. -3. Describe the advantages of the suggested solution and in what cases it is best to apply it. --> +3. Describe the advantages of the suggested solution and in what cases it's best to apply it. --> ### Scenario 2: {Title} diff --git a/_templates/feature-installation-guide-template.md b/_templates/feature-installation-guide-template.md index 0ae6bf0548d..393831eb5e4 100644 --- a/_templates/feature-installation-guide-template.md +++ b/_templates/feature-installation-guide-template.md @@ -244,9 +244,9 @@ Configure tables to be published and synchronized to the Storage on create, edit **Verification** +Usually, it's technically impossible to verify the current step before the [Import data](#import-data) step. In such a case, move the verification of this step there. --> -Make sure that, when an {entity} is created, updated or deleted, it is exported to or removed from Redis and Elasticsearch. +Make sure that, when an {entity} is created, updated or deleted, it's exported to or removed from Redis and Elasticsearch. | STORAGE TYPE | TARGET ENTITY | EXPECTED DATA IDENTIFIER EXAMPLE | EXPECTED DATA FRAGMENT EXAMPLE | | ------------ | ------------- | -------------------------------- | ---------------------------------- | @@ -276,9 +276,9 @@ Configure tables to be published to the {table name} table and synchronized to t **Verification** +Usually, it's technically impossible to verify the current step before the [Import data](#import-data) step. In such a case, move the verification of this step there. --> -Make sure that, when an {entity} is created, updated or deleted, it is exported to or removed from Redis and Elasticsearch. +Make sure that, when an {entity} is created, updated or deleted, it's exported to or removed from Redis and Elasticsearch. | STORAGE TYPE | TARGET ENTITY | EXPECTED DATA IDENTIFIER EXAMPLE | EXPECTED DATA FRAGMENT EXAMPLE | | ------------ | ------------- | -------------------------------- | ---------------------------------- | @@ -309,9 +309,9 @@ Install the following plugins: **Verification** +Usually, it's technically impossible to verify the current step before the [Import data](#import-data) step. In such a case, move the verification of this step there. --> -Make sure that, when an {entity} is created, updated or deleted, it is exported to or removed from Redis and Elasticsearch. +Make sure that, when an {entity} is created, updated or deleted, it's exported to or removed from Redis and Elasticsearch. | STORAGE TYPE | TARGET ENTITY | EXPECTED DATA IDENTIFIER EXAMPLE | EXPECTED DATA FRAGMENT EXAMPLE | | ------------ | ------------- | -------------------------------- | ---------------------------------- | diff --git a/_templates/syntax-and-formatting-rules.md b/_templates/syntax-and-formatting-rules.md index 758e1aed40a..4390ed13bea 100644 --- a/_templates/syntax-and-formatting-rules.md +++ b/_templates/syntax-and-formatting-rules.md @@ -1,4 +1,4 @@ -We use the default Markdown syntax, however, in some cases, it is not enough or is not processed correctly. For such cases, the rules described here apply. +We use the default Markdown syntax, however, in some cases, it's not enough or is not processed correctly. For such cases, the rules described here apply. ## Code samples in dropdowns For code samples with more than 38 lines, use dropdowns with this syntax: diff --git a/docs/about/all/about-spryker.md b/docs/about/all/about-spryker.md index b908aa21ce7..d599c7393f9 100644 --- a/docs/about/all/about-spryker.md +++ b/docs/about/all/about-spryker.md @@ -65,7 +65,7 @@ Spryker is split into four different layers: * We confine long and resource-intensive processes to the business and persistence layers, which ensures high performance on the presentation layer. The presentation side is separated from the rest of the OS to make sure that only lean processes are executed there. Anything that can impact the purchase process is offloaded to an area that does not impact the performance. * Separate frontend and backend means developers can work in parallel, allowing for faster implementation, testing, and better optimization—all for less internal cost. * Because your commercial offering is not dependent on a single channel, you can focus your effort on growth and improvement, rather than on solutions, extensions, and sometimes workarounds to make things work. -* Essential information is not tied up with the presentation. You can easily swap out, extend, replace this information, as well as change the ways it is presented. +* Essential information is not tied up with the presentation. You can easily swap out, extend, replace this information, as well as change the ways it's presented. ## Managed cloud platform diff --git a/docs/about/all/about-the-docs/contribute-to-the-docs/edit-the-docs-locally.md b/docs/about/all/about-the-docs/contribute-to-the-docs/edit-the-docs-locally.md index 824672b51f0..55f62afb219 100644 --- a/docs/about/all/about-the-docs/contribute-to-the-docs/edit-the-docs-locally.md +++ b/docs/about/all/about-the-docs/contribute-to-the-docs/edit-the-docs-locally.md @@ -67,7 +67,7 @@ At this point, you are most likely to know which document you want to edit. To f 5. Below the list of edited files, enter the name and description of your changes. The name of your fist commit will be used as the pull request's name. 6. To add your changes to the branch, click **Commit to {BRANCH_NAME}**. 7. To publish the changes on GitHub, click **Push origin**. - If you are editing in several sessions, it is good practice to commit and push after each session. If something happens to the changes on your machine, they will be safe on GitHub, and you will be able to keep working on them. + If you are editing in several sessions, it's good practice to commit and push after each session. If something happens to the changes on your machine, they will be safe on GitHub, and you will be able to keep working on them.
diff --git a/docs/about/all/about-the-docs/contribute-to-the-docs/merge-docs-pull-requests.md b/docs/about/all/about-the-docs/contribute-to-the-docs/merge-docs-pull-requests.md index 4889bedb6af..c965b8f5d6d 100644 --- a/docs/about/all/about-the-docs/contribute-to-the-docs/merge-docs-pull-requests.md +++ b/docs/about/all/about-the-docs/contribute-to-the-docs/merge-docs-pull-requests.md @@ -61,7 +61,7 @@ For fixing internal links, you need to understand their structure: * Non-versioned link example: `/docs/about/all/about-the-docs/run-the-docs-locally.html`. * Versioned link example: `/docs/dg/dev/frontend-development/{{site.version}}/create-angular-modules.html` -If you have a broken link, the easiest way to fix it is as follows: +If you have a broken link, the easiest way to fix it's as follows: 1. Copy the relative path to the target document, starting from `docs`: `docs/dg/dev/frontend-development/202404.0/create-angular-modules.md`. 2. Add a slash in the beginning: `/docs/dg/dev/frontend-development/202404.0/create-angular-modules.md`. 3. Replace `.md` with `.html`: `/docs/dg/dev/frontend-development/202404.0/create-angular-modules.html`. diff --git a/docs/about/all/master-suite.md b/docs/about/all/master-suite.md index 63d28b82c82..a019c9f7bfa 100644 --- a/docs/about/all/master-suite.md +++ b/docs/about/all/master-suite.md @@ -9,7 +9,7 @@ redirect_from: - /docs/scos/user/intro-to-spryker/master-suite.html --- -Master Suite represents a collection of both [B2B](/docs/about/all/b2b-suite.html) and [B2C](/docs/about/all/b2c-suite.html) modules. However, unlike B2B and B2C Demo Shops, the code in the [Master Suite project repository](https://github.com/spryker-shop/suite) is released as soon as it is ready. If you have an implementation that combines B2B and B2C, you can benefit from the full range of SCOS functionality. +Master Suite represents a collection of both [B2B](/docs/about/all/b2b-suite.html) and [B2C](/docs/about/all/b2c-suite.html) modules. However, unlike B2B and B2C Demo Shops, the code in the [Master Suite project repository](https://github.com/spryker-shop/suite) is released as soon as it's ready. If you have an implementation that combines B2B and B2C, you can benefit from the full range of SCOS functionality. Or if you want to take a single feature or module from the larger SCOS scope, you can take single modules from the following GitHub repositories: * [https://github.com/spryker-shop/*](https://github.com/spryker-shop/) diff --git a/docs/about/all/releases/security-release-notes-202302.0.md b/docs/about/all/releases/security-release-notes-202302.0.md index 0d4168777f6..4c9c37f087b 100644 --- a/docs/about/all/releases/security-release-notes-202302.0.md +++ b/docs/about/all/releases/security-release-notes-202302.0.md @@ -32,7 +32,7 @@ To implement a fix for this vulnerability, update the sales module. {% info_block infoBox "Recommended upgrade is 11.36.2" %} -Spryker recommends upgrading to 11.36.2 because it is the continuous latest stable version. However, because of the increased migration effort caused by 11.31.0 (Propel timestamp type fix), 11.33.0 (PHP8.0), and 11.36.0 (Symfony 6), you might need to consider upgrading to the nearest possible patch (see the following details). +Spryker recommends upgrading to 11.36.2 because it's the continuous latest stable version. However, because of the increased migration effort caused by 11.31.0 (Propel timestamp type fix), 11.33.0 (PHP8.0), and 11.36.0 (Symfony 6), you might need to consider upgrading to the nearest possible patch (see the following details). {% endinfo_block %} diff --git a/docs/about/all/spryker-marketplace/marketplace-concept.md b/docs/about/all/spryker-marketplace/marketplace-concept.md index 35f715c7c16..293fc857b63 100644 --- a/docs/about/all/spryker-marketplace/marketplace-concept.md +++ b/docs/about/all/spryker-marketplace/marketplace-concept.md @@ -18,7 +18,7 @@ The Spryker Marketplace solution supports two major types of marketplace models: * *Enterprise Marketplace*: This type of marketplace is an organization with existing e-commerce operations, which lets third-party merchants sell through its platform to enrich offerings and stimulate growth. In such cases, both merchants and a Marketplace administrator act as sellers. -The Spryker Marketplace solution supports both B2C and B2B marketplaces. Besides, Spryker Marketplace is not a separate system. Instead, it is built as a set of extensions on top of Spryker Commerce OS, which makes upgrading to Marketplace straightforward and easy. +The Spryker Marketplace solution supports both B2C and B2B marketplaces. Besides, Spryker Marketplace is not a separate system. Instead, it's built as a set of extensions on top of Spryker Commerce OS, which makes upgrading to Marketplace straightforward and easy. ![Marketplace concept](https://spryker.s3.eu-central-1.amazonaws.com/docs/About/Marketplace/Marketplace+Concept/marketplace-concept.png) diff --git a/docs/about/all/support/gdpr-compliance-guidelines.md b/docs/about/all/support/gdpr-compliance-guidelines.md index 54e171d452c..d4d19e44640 100644 --- a/docs/about/all/support/gdpr-compliance-guidelines.md +++ b/docs/about/all/support/gdpr-compliance-guidelines.md @@ -27,4 +27,4 @@ The following guidelines describe how to make your Spryker projects compliant in | Enable customers to withdraw consent. | Use the consent withdrawal feature for newsletter subscriptions. The *Delete Account* feature is shipped by default to handle data privacy. Without agreeing to terms, customers can't use the website. Add options to unsubscribe from newsletters and to delete email address and other personal data from the database. | The Delete Account feature is shipped by default. Take all other measures during the project implementation and before going live. | | Enable customers to get the copy of personal data in a readable format: PDF or text file. | Offer a *Copy of all data* feature, which provides information from all data sources: Spryker, CRM, log files, third-party applications. Spryker has a **User Account** page that shows the customer information: profile, orders, preferences. The information on this page can be saved as a PDF file and shared upon request. | The *User Accounts* feature is shipped by default. Take all other measures during the project implementation and before going live. | | Enable customers to delete personal data. | Use the Delete Account feature to anonymize customer information. Some information needs to be kept for other reasons: transactional information or order information for fiscal authorities. Review and establish an unsubscribe option that deletes the email address from the respective database. Add an unsubscribe link to email communication. | The *Delete Account* feature is shipped by default. Take all other measures during the project implementation and before going live. | -| Control third-party integration permissions and data collection | Offer an option to review and revoke access for third-party integrations, like social media and payment providers. Review the data shared with third parties and make sure it is reflected and represented in privacy policies and terms of service. For example, the IP address for the third-party payment provider integration. Check all existing Data Processing Agreements for validity. | During the project implementation and before going live. | +| Control third-party integration permissions and data collection | Offer an option to review and revoke access for third-party integrations, like social media and payment providers. Review the data shared with third parties and make sure it's reflected and represented in privacy policies and terms of service. For example, the IP address for the third-party payment provider integration. Check all existing Data Processing Agreements for validity. | During the project implementation and before going live. | diff --git a/docs/about/all/support/getting-the-most-out-of-spryker-support.md b/docs/about/all/support/getting-the-most-out-of-spryker-support.md index fac57a66d06..0c14e793449 100644 --- a/docs/about/all/support/getting-the-most-out-of-spryker-support.md +++ b/docs/about/all/support/getting-the-most-out-of-spryker-support.md @@ -60,7 +60,7 @@ Even though this is hard to achieve with a complex product like Spryker, we stri | INFORMATION | QUESTIONS THAT HELP YOU | EXPLANATION | | --- | --- | --- | | Prerequisites and steps to reproduce | What prerequisites must be met, so they can see the problem occures? Am I using Spryker Suite/B2B/B2C Demo Shop? Am I using Spryker hosting? What project-level adjustments have been made that might have an influence on the problem? What do they need to do, step by step, to arrive at the same point as me and see the error? | For a new issue, one of the first steps we do is trying to reproduce it in our latest version of Spryker. In order to do so quickly and targeted, we need clear, step-by-step instructions. Occasionally, we will ask you to provide your `composer.lock` file. This file also contains all the version information for all the components and models you are using and is very helpful in diagnosing more complex problems. It might seem tedious, but providing a good description of how we can reproduce your problem is the biggest time saver.| -| Expected behavior | What did I expect would happen if I executed the actions described above? | Sometimes, it is just not obvious enough that the outcome you expected and tell us helps us avoid misdiagnosing an issue or research in the wrong direction. | +| Expected behavior | What did I expect would happen if I executed the actions described above? | Sometimes, it's just not obvious enough that the outcome you expected and tell us helps us avoid misdiagnosing an issue or research in the wrong direction. | | Actual behavior | What was the unexpected thing that happened? Where there any error messages? What happened that should not have happened? | This is what we will look out for when we are reproducing your issue. Please be specific and precise and share error messages. | | Your contact details | Did I write my email address correctly? Is it ideally the one that we included in our SLA as a named contact? | It might sound strange, however, misspelled email addresses are almost impossible to detect from a support perspective and can immediately introduce a communication problem. | | The Company this issue applies to | Am I a Spryker partner, and the issue impacts a customer of mine? Or is this a Spryker-led project, and I am a direct customer of Spryker? | This information is important so that we can map the correct SLA for you and know exactly with whom to speak in Spryker to get more contextual information on your case. It makes a big difference for us, so please always include info that tells us who company impacted by the problem | diff --git a/docs/about/all/support/how-spryker-support-works.md b/docs/about/all/support/how-spryker-support-works.md index ecbac39f687..ac49eb50ba7 100644 --- a/docs/about/all/support/how-spryker-support-works.md +++ b/docs/about/all/support/how-spryker-support-works.md @@ -46,7 +46,7 @@ By conducting an initial investigation on your end, you can help us speed up thi #### Security issues -To say that we take security issues seriously would be an understatement. The topic is so important to us, that when you raise a case with us that has a suspected impact on the security of our software or our infrastructure, it is escalated to our senior management and most senior engineering personnel. We believe it is better to deal with quite some false positives than to underestimate only one report. While we cannot guarantee certain resolution times here, you can see from our response that we take your case very seriously. If we discover a genuine security threat, we work with you to resolve it with the highest priority. +To say that we take security issues seriously would be an understatement. The topic is so important to us, that when you raise a case with us that has a suspected impact on the security of our software or our infrastructure, it's escalated to our senior management and most senior engineering personnel. We believe it's better to deal with quite some false positives than to underestimate only one report. While we cannot guarantee certain resolution times here, you can see from our response that we take your case very seriously. If we discover a genuine security threat, we work with you to resolve it with the highest priority. ### Customer Effort Score (CES) and Customer Satisfaction Score (CSS) Proven scores that we use to measure your experience with our support. diff --git a/docs/about/all/support/prioritzing-support-cases.md b/docs/about/all/support/prioritzing-support-cases.md index dcf24fd3a0d..d37a7c886b7 100644 --- a/docs/about/all/support/prioritzing-support-cases.md +++ b/docs/about/all/support/prioritzing-support-cases.md @@ -51,7 +51,7 @@ Priority is an internal attribute that we set for cases after having evaluated t * *Urgent*: urgent cases have the highest priority for us. Since there can only be a very limited number of urgent cases for us to be able to operate, we assign this priority only to the most severe cases (for example, Security Incidents or Infrastructure Outages). * *High*: high priority cases are dealt with priority if there are no urgent cases in the backlog, or not all support representatives are currently busy working on urgent cases. * *Medium*: most of the problem cases we receive are assigned `Medium` priority. They are dealt with if there are no urgent and high cases in the backlog or if enough free resources are available. -* *Low*: low priority cases are dealt with if there are no urgent and high priority cases in the Backlog or if a support representative thinks that the request can be dealt with very quickly or that they are working on a similar case already and it is beneficial to work on the related low priority case as well. +* *Low*: low priority cases are dealt with if there are no urgent and high priority cases in the Backlog or if a support representative thinks that the request can be dealt with very quickly or that they are working on a similar case already and it's beneficial to work on the related low priority case as well. You can see what priority your case was assigned to in the case detail view on the Support and Partner Portal. @@ -65,7 +65,7 @@ You can see what priority your case was assigned to in the case detail view on t We recently gave our partners and customers the option to specify desired solution times on request, change request, and problem cases. Emergency cases do not have this field, because they are always dealt with as soon as possible. ### Case types -The case type you choose to create an issue also determines how high it is prioritized initially. +The case type you choose to create an issue also determines how high it's prioritized initially. * *Request Cases* automatically receive low priority and are dealt with when there is time. * *Problem Cases* let you specify business impact and desired solution time. We assign a priority to this case after evaluating the information provided, the business impact specified, and the desired solution time. * *Emergency Cases* are reserved for severe outages with significant business impact. Emergency cases always receive the highest priority and can only be cases with business impact P1—Urgent. diff --git a/docs/about/all/support/project-level-and-core-level-fixes.md b/docs/about/all/support/project-level-and-core-level-fixes.md index ac1a5adf4ba..9a54b857371 100644 --- a/docs/about/all/support/project-level-and-core-level-fixes.md +++ b/docs/about/all/support/project-level-and-core-level-fixes.md @@ -13,7 +13,7 @@ This document explains the differences between project and core level fixes to p ## Project-level fixes -Sometimes, it is important to react fast and provide an undemocratic solution to an urgent problem. This is where project-level fixes come into place. We use them to solve problems on a project level. If a reported problem is relatively simple but has a high business impact, we sometimes provide a patch. This patch might not run through the normal QA and review processes and has the singular purpose of solving a problem with high business impact as fast as possible and buying the time necessary to provide a proper solution. +Sometimes, it's important to react fast and provide an undemocratic solution to an urgent problem. This is where project-level fixes come into place. We use them to solve problems on a project level. If a reported problem is relatively simple but has a high business impact, we sometimes provide a patch. This patch might not run through the normal QA and review processes and has the singular purpose of solving a problem with high business impact as fast as possible and buying the time necessary to provide a proper solution. We also usually try to avoid project-level fixes where possible, because they do not make Spryker better for everyone and treat symptoms rather than solving the core issue. ## Core-level fixes diff --git a/docs/about/all/support/support-case-escalations.md b/docs/about/all/support/support-case-escalations.md index 439009622f4..5c8bf375152 100644 --- a/docs/about/all/support/support-case-escalations.md +++ b/docs/about/all/support/support-case-escalations.md @@ -21,7 +21,7 @@ While this strategy might feel like the right thing to do (we need to do somethi ## How do we want to deal with escalations? -In Support, we acknowledge that we cannot always produce a satisfying result. We do not always get it right, and sometimes our hands might simply be tied. Escalations happen, and it is important for us to steer them into a constructive and orderly direction right away that ensures: +In Support, we acknowledge that we cannot always produce a satisfying result. We do not always get it right, and sometimes our hands might simply be tied. Escalations happen, and it's important for us to steer them into a constructive and orderly direction right away that ensures: 1. It is easy for a customer or partner to escalate an issue. 2. The customer's or partner's problem is evaluated by the right audience. 3. The stakeholders align quickly to find a feasible strategy going forward. @@ -36,7 +36,7 @@ The escalation process is designed in a way to create visibility for the right a `STARTED`. A customer or partner has created an emergency case. Internal stakeholders are informed and began evaluating the information provided. In cases where the Emergency Case option is misused, the Escalation is canceled, and the requester is informed about it. -`ACKNOWLEDGED`. If the escalation is valid, it is acknowledged by the support rep that takes care of the case. They do not inform internal stakeholders and see to it that a solution is developed. They also make sure to update the customer and partner at regular intervals on their progress. +`ACKNOWLEDGED`. If the escalation is valid, it's acknowledged by the support rep that takes care of the case. They do not inform internal stakeholders and see to it that a solution is developed. They also make sure to update the customer and partner at regular intervals on their progress. `SOLUTION PROPOSED`. Once the team has found a solution that either fixes the problem outright, or at least mitigates its impact, they propose a solution, and the partner and customer are asked to accept or reject the proposed solution. diff --git a/docs/about/all/support/support-ticket-statuses.md b/docs/about/all/support/support-ticket-statuses.md index e04376cc94e..cd986a95583 100644 --- a/docs/about/all/support/support-ticket-statuses.md +++ b/docs/about/all/support/support-ticket-statuses.md @@ -9,7 +9,7 @@ redirect_from: - /docs/scos/user/intro-to-spryker/support/understanding-ticket-status.html --- -When you report an issue, and we discover an underlying problem with Spryker, we create a Jira Bug Ticket. Then, this ticket is handed over to our development department, and our colleagues evaluate how to address the problem best and resolve it. After the issue is resolved, it is then released to our repositories. +When you report an issue, and we discover an underlying problem with Spryker, we create a Jira Bug Ticket. Then, this ticket is handed over to our development department, and our colleagues evaluate how to address the problem best and resolve it. After the issue is resolved, it's then released to our repositories. ## Status descriptions diff --git a/docs/about/all/support/understanding-slas.md b/docs/about/all/support/understanding-slas.md index ac98e236813..2c10dce7c3c 100644 --- a/docs/about/all/support/understanding-slas.md +++ b/docs/about/all/support/understanding-slas.md @@ -9,7 +9,7 @@ redirect_from: - /docs/scos/user/intro-to-spryker/support/understand-slas.html --- -Like any legal text, Service Level Agreements (SLAs) can be hard to understand for the uninitiated. We strive to keep our SLAs clear and comprehensive, but sometimes it is better to explain some core concepts more verbose. +Like any legal text, Service Level Agreements (SLAs) can be hard to understand for the uninitiated. We strive to keep our SLAs clear and comprehensive, but sometimes it's better to explain some core concepts more verbose. ## What we expect from you Fulfilling SLA is a two-way street, and we cannot achieve good results without you. The following is what we expect from our customers. @@ -17,7 +17,7 @@ Fulfilling SLA is a two-way street, and we cannot achieve good results without y ### Keeping Spryker environments up-to-date We generally expect our customers to keep their Spryker environment up to date. The reason for this is having multiple layers. We release updates to introduce new features, performance improvements, and security enhancements. Especially the last ones you do not want to miss. We want our customers to have fast, responsive, and more secure shops. -Up-to-date code generally means more stability, better support, and compatibility for 3rd party applications. If you use the latest versions, it means that you are using the best and most up-to-date version of the code we have to offer. Looking at the motivations to keep up-to-.date listed above, this is not only good for you, but it is good for us too. Working with a project that has recent code means that we have an easier time understanding what is going on. This reduces case resolution time and makes communication between you, Spryker Support, and Development much easier. +Up-to-date code generally means more stability, better support, and compatibility for 3rd party applications. If you use the latest versions, it means that you are using the best and most up-to-date version of the code we have to offer. Looking at the motivations to keep up-to-.date listed above, this is not only good for you, but it's good for us too. Working with a project that has recent code means that we have an easier time understanding what is going on. This reduces case resolution time and makes communication between you, Spryker Support, and Development much easier. ### Keep it in English @@ -48,7 +48,7 @@ There is a number of things you can do to avoid problems. ### Keep updated on Spryker -Keeping your Spryker environment up to date is important, but it is equally important to keep your knowledge about what is going on with Spryker updated, too. +Keeping your Spryker environment up to date is important, but it's equally important to keep your knowledge about what is going on with Spryker updated, too. Our Spryker Community on [CommerceQuest](https://commercequest.space/), a vibrant forum for people using Spryker, is a perfect platform to use. It is also a place where people come to discuss. We would like to invite every customer to join and contribute actively. Often, you will hear the latest news first there. In addition, our community team also hosts monthly Spryker User Group Meetups in which internal Spryker teams and community members share and discuss the latest developments. See [commercequest.space/events](https://commercequest.space/events/category) for upcoming meetups and other relevant events. Also, subscribe to our new newsletter (soon to come) and be sure to check out our Technical News Page (soon to come), for the latest important news. diff --git a/docs/ca/dev/add-variables-in-the-parameter-store.md b/docs/ca/dev/add-variables-in-the-parameter-store.md index c39177075ba..b5bd1b0edca 100644 --- a/docs/ca/dev/add-variables-in-the-parameter-store.md +++ b/docs/ca/dev/add-variables-in-the-parameter-store.md @@ -35,7 +35,7 @@ If there is a need to modify a Spryker-owned environment variable, it must be do By adhering to these guidelines, you can effectively manage your environment variables without risking the system stability. It also helps in maintaining a seamless experience while working with the Spryker Cloud Commerce OS. -Please remember that improper management of environment variables can lead to unexpected issues. Therefore, it is recommended to consult the Spryker Cloud or support team for any complex or system-critical changes. +Please remember that improper management of environment variables can lead to unexpected issues. Therefore, it's recommended to consult the Spryker Cloud or support team for any complex or system-critical changes. ## Naming convention for variables diff --git a/docs/ca/dev/best-practices/best-practises-jenkins-stability.md b/docs/ca/dev/best-practices/best-practises-jenkins-stability.md index 32a2efd8ba2..3e2933d6b9f 100644 --- a/docs/ca/dev/best-practices/best-practises-jenkins-stability.md +++ b/docs/ca/dev/best-practices/best-practises-jenkins-stability.md @@ -25,7 +25,7 @@ We recommend profiling your application to understand how much RAM your Jenkins ## Jenkins executors configuration -Jenkins executors let you orchestrate Jenkins jobs and introduce parallel processing. By default, Jenkins instances have two executors configured, similar to local environment setups. You can adjust the executor count and run many console commands in parallel. While this may speed up processing in your application, it increases the importance of understanding the memory utilization profile of your application. For stable job execution, you need to ensure that no parallelized jobs collectively consume more memory than the amount available to the Jenkins container. Also, it is a common practice to set the number of executors equal to the number of CPUs available to Jenkins. Standard environments are equipped with two vCPUs. Configuring more than the standard two executors risks jobs "fighting" for CPU cycles. This severely limits the performance of all jobs running in parallel and potentially introduces instability to the container itself. +Jenkins executors let you orchestrate Jenkins jobs and introduce parallel processing. By default, Jenkins instances have two executors configured, similar to local environment setups. You can adjust the executor count and run many console commands in parallel. While this may speed up processing in your application, it increases the importance of understanding the memory utilization profile of your application. For stable job execution, you need to ensure that no parallelized jobs collectively consume more memory than the amount available to the Jenkins container. Also, it's a common practice to set the number of executors equal to the number of CPUs available to Jenkins. Standard environments are equipped with two vCPUs. Configuring more than the standard two executors risks jobs "fighting" for CPU cycles. This severely limits the performance of all jobs running in parallel and potentially introduces instability to the container itself. We recommend sticking to the default executor count or the concurrent job limit recommended in the Spryker Service Description for your package. This ensures the stability of Jenkins and prevents instability and crashes. diff --git a/docs/ca/dev/best-practices/jenkins-operational-best-practices.md b/docs/ca/dev/best-practices/jenkins-operational-best-practices.md index 320504e5885..6ca79d82652 100644 --- a/docs/ca/dev/best-practices/jenkins-operational-best-practices.md +++ b/docs/ca/dev/best-practices/jenkins-operational-best-practices.md @@ -48,7 +48,7 @@ Formula to estimate your maximum theoretical RAM demand: Number of executors x (maximum workers and threads spawned by heaviest job * memory_limit) = Theoretical max RAM Demand -As you can see from the multiplicative nature of the threads and executors, you can easily reach a surprisingly high theoretical max RAM demand. However, it's unlikely that you will actually consume this amount. You would need to have multiple heaviest jobs running in parallel and consuming up to the `memory_limit simultaneously`. Nevertheless, calculating it is good practice, as keeping your theoretical maximum RAM demand below the memory supply significantly increases stability as it virtually eliminates the risk of Jenkins crashing because of exhausting its memory supply. This is currently the most common root cause of Jenkins service degradation and outages. +As you can see from the multiplicative nature of the threads and executors, you can easily reach a surprisingly high theoretical max RAM demand. However, it's unlikely that you will actually consume this amount. You would need to have multiple heaviest jobs running in parallel and consuming up to the `memory_limit simultaneously`. Nevertheless, calculating it's good practice, as keeping your theoretical maximum RAM demand below the memory supply significantly increases stability as it virtually eliminates the risk of Jenkins crashing because of exhausting its memory supply. This is currently the most common root cause of Jenkins service degradation and outages. ### To-Dos @@ -95,7 +95,7 @@ Import jobs, as well as Publish and Sync-related processes, can be taxing on the ### Imports and Publish and Synchronize -Imports and certain Publish and Sync processes can lead to high computational costs, such as permutation calculations for filters. Therefore, it is crucial to implement [RAM-aware batch processing](/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.html#integrate-ram-aware-batch-processing) and [queue chunk sizes](/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.html#chunk-size) that are suitable for the complexity of your data. The former helps prevent loading all import data into RAM, while the latter prevents RabbitMQ pipe timeouts because of lengthy processing times. A chunk or batch size that is too large may result in memory-related exceptions or messages being stuck in queues (with logs indicating RabbitMQ broken pipe exceptions), whereas a chunk or batch size that is too small may lead to subpar import and P&S performance. There is no one-size-fits-all solution, but with profiling, you can find a good balance between stability and performance. +Imports and certain Publish and Sync processes can lead to high computational costs, such as permutation calculations for filters. Therefore, it's crucial to implement [RAM-aware batch processing](/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.html#integrate-ram-aware-batch-processing) and [queue chunk sizes](/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.html#chunk-size) that are suitable for the complexity of your data. The former helps prevent loading all import data into RAM, while the latter prevents RabbitMQ pipe timeouts because of lengthy processing times. A chunk or batch size that is too large may result in memory-related exceptions or messages being stuck in queues (with logs indicating RabbitMQ broken pipe exceptions), whereas a chunk or batch size that is too small may lead to subpar import and P&S performance. There is no one-size-fits-all solution, but with profiling, you can find a good balance between stability and performance. While fine-tuning your chunk size, check out the following articles: - [Messages are moved to error queues](https://docs.spryker.com/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/troubleshooting-rabbitmq/messages-are-moved-to-error-queues.html) diff --git a/docs/ca/dev/configure-deployment-pipelines/deployment-in-states.md b/docs/ca/dev/configure-deployment-pipelines/deployment-in-states.md index b92bad07483..d2a3ffc1c83 100644 --- a/docs/ca/dev/configure-deployment-pipelines/deployment-in-states.md +++ b/docs/ca/dev/configure-deployment-pipelines/deployment-in-states.md @@ -111,7 +111,7 @@ During this step, all the services in an updated state may still respond to requ ## Run_install -In this step, the scripts in the `SPRYKER_HOOK_INSTALL` are run. By default, it is `vendor/bin/install -r EU/production --no-ansi -vvv`. +In this step, the scripts in the `SPRYKER_HOOK_INSTALL` are run. By default, it's `vendor/bin/install -r EU/production --no-ansi -vvv`. The script runs all the propel database migrations, so the database is updated to V2. However, Search and Redis are not, as the synchronization was "paused". diff --git a/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md b/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md index 62b076a04c9..f32d2ea711b 100644 --- a/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md +++ b/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md @@ -106,7 +106,7 @@ The CodeBuild project of this stage is named `Run_pre-deploy_for_` {% info_block warningBox "Updating the pre-deploy hook" %} -The CodeBuild project of the pre-deploy hook uses a *currently running* application image. If you add a new command to the hook, it is added to the hook during the next deployment. So, after updating the hook's configuration, the command only runs starting from the second deployment. +The CodeBuild project of the pre-deploy hook uses a *currently running* application image. If you add a new command to the hook, it's added to the hook during the next deployment. So, after updating the hook's configuration, the command only runs starting from the second deployment. {% endinfo_block %} diff --git a/docs/ca/dev/environment-provisioning.md b/docs/ca/dev/environment-provisioning.md index 13a547fb067..c58dbb78d6a 100644 --- a/docs/ca/dev/environment-provisioning.md +++ b/docs/ca/dev/environment-provisioning.md @@ -121,7 +121,7 @@ Customer and partner users can have access to the following: This section explains what additional attributes you can specify at the beginning of your provisioning, as well as accesses you can request. ### Optional: SFTP -SFTP is implemented on top of EFS. You can use SFTP for any third-party integrations or for explicit data imports via Jenkins jobs if required on the project level. Note that SFTP is only available on Bastion and Jenkins. This feature is disabled by default. You can also request it later via the support ticket, but it is preferred to validate this option during provisioning. +SFTP is implemented on top of EFS. You can use SFTP for any third-party integrations or for explicit data imports via Jenkins jobs if required on the project level. Note that SFTP is only available on Bastion and Jenkins. This feature is disabled by default. You can also request it later via the support ticket, but it's preferred to validate this option during provisioning. For data import, we recommend using S3 buckets. diff --git a/docs/ca/dev/environment-scaling.md b/docs/ca/dev/environment-scaling.md index e5a07949698..d1f9c8f9aad 100644 --- a/docs/ca/dev/environment-scaling.md +++ b/docs/ca/dev/environment-scaling.md @@ -27,7 +27,7 @@ There is an autoscaling configuration that has a service-level CPU threshold con You can test autoscaling by applying load to the aforementioned services of your application. The application will automatically scale, which might visible by by "steps" in your monitoring—response time climbing until a new container is provisioned, which will make it fall again. You should also be able to see new containers being deployed when checking the ECS overview of the service you are load testing. -Because autoscaling is guard-railed by a maximum number of scaling group members, we recommend load and performance testing before going live so that this maximum number can be dialed in more easily. While our monitoring team can adjust these settings on the fly as well, it is normally best to apply a realistic load to the application (containing the data you want to use in production) before going live. This will also help adjust the container CPU and memory budget—which will determine how much CPU and memory each service will "get" compared to other containers. This helps to further optimize the setup. +Because autoscaling is guard-railed by a maximum number of scaling group members, we recommend load and performance testing before going live so that this maximum number can be dialed in more easily. While our monitoring team can adjust these settings on the fly as well, it's normally best to apply a realistic load to the application (containing the data you want to use in production) before going live. This will also help adjust the container CPU and memory budget—which will determine how much CPU and memory each service will "get" compared to other containers. This helps to further optimize the setup. ## Additional notes diff --git a/docs/ca/dev/getting-started-with-cloud-administration.md b/docs/ca/dev/getting-started-with-cloud-administration.md index d134941c2dc..6ea4dd1989d 100644 --- a/docs/ca/dev/getting-started-with-cloud-administration.md +++ b/docs/ca/dev/getting-started-with-cloud-administration.md @@ -56,7 +56,7 @@ The following CD pipelines are configured in [CodePipeline](https://docs.aws.ama | --- | --- | | DESTRUCTIVE | You can configure the installation stage of this pipeline in `config/install/destructive.yml`. | | NORMAL | You can configure the installation stage of this pipeline in `config/install/production.yml`. | -| Build | Compiles images and pushes them into the [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html). Starts automatically when a new commit is detected. | +| Build | Compiles images and pushes them into the [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html). Starts automatically when a new commit's detected. | | Rollout Scheduler | Deploys the scheduler. | diff --git a/docs/ca/dev/multi-store-setups/multistore-setup-options.md b/docs/ca/dev/multi-store-setups/multistore-setup-options.md index 759daef8c6e..ae7a2813bad 100644 --- a/docs/ca/dev/multi-store-setups/multistore-setup-options.md +++ b/docs/ca/dev/multi-store-setups/multistore-setup-options.md @@ -17,7 +17,7 @@ Keep in mind that the definition of a store can vary depending on the business u ## Assess whether your shop is fit for Spryker Multi-Store -When planning multiple stores, it is crucial to determine whether your project supports the Spryker Multistore solution and assess whether it is necessary for your business needs. +When planning multiple stores, it's crucial to determine whether your project supports the Spryker Multistore solution and assess whether it's necessary for your business needs. The Spryker Multi-Store solution is designed to represent several business channels on a single platform. These channels include: @@ -48,7 +48,7 @@ There are three types of setups you can choose from. {% info_block infoBox "Stores grouping" %} -When setting up multiple stores, we recommended to group stores that share the same processes and data to regional stores. For instance, if your DE and AT stores share the same database, it is best not to separate them but to have one regional store instead. +When setting up multiple stores, we recommended to group stores that share the same processes and data to regional stores. For instance, if your DE and AT stores share the same database, it's best not to separate them but to have one regional store instead. {% endinfo_block %} @@ -162,7 +162,7 @@ This setup has the following characteristics: - Separate database per account. - Allows for different regions. - Lets you use themes for a different visual look and feel. -- Possibility of an isolated codebase for each store. In this case, it is possible to have fully independent development teams. +- Possibility of an isolated codebase for each store. In this case, it's possible to have fully independent development teams. - In the case of a shared codebase: - Use of code buckets for store customization (logic). - Centralized third-party integrations. diff --git a/docs/ca/dev/performance-testing-in-staging-enivronments.md b/docs/ca/dev/performance-testing-in-staging-enivronments.md index 7e5999c9aa1..6867a411678 100644 --- a/docs/ca/dev/performance-testing-in-staging-enivronments.md +++ b/docs/ca/dev/performance-testing-in-staging-enivronments.md @@ -334,7 +334,7 @@ APPLICATION_STORE="DE" COMMAND="$PHP_BIN vendor/bin/console queue:worker:start - {% info_block infoBox %} -While it is possible to change the Jenkins cronjobs found at **/config/Zed/cronjobs/jenkins.php**, please note that these entries require a scheduled time and setting this will cause those jobs to run until they have been disabled in the Jenkins web UI. +While it's possible to change the Jenkins cronjobs found at **/config/Zed/cronjobs/jenkins.php**, please note that these entries require a scheduled time and setting this will cause those jobs to run until they have been disabled in the Jenkins web UI. {% endinfo_block %} diff --git a/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-a-third-party-dns-zone-provider.md b/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-a-third-party-dns-zone-provider.md index 4e592f61b46..53d2a42ea48 100644 --- a/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-a-third-party-dns-zone-provider.md +++ b/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-a-third-party-dns-zone-provider.md @@ -67,7 +67,7 @@ groups: {% info_block warningBox "Store configuration" %} -`store:` must correspond to `groups:` and `region:`. For example, it is impossible to set a US store in the DE region. +`store:` must correspond to `groups:` and `region:`. For example, it's impossible to set a US store in the DE region. {% endinfo_block %} diff --git a/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-route-53.md b/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-route-53.md index 229635f8c2b..bb1833158c3 100644 --- a/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-route-53.md +++ b/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-route-53.md @@ -68,7 +68,7 @@ groups: {% info_block warningBox "Store configuration" %} -`store:` must correspond to `groups:` and `region:`. For example, it is impossible to set a US store in the DE region. +`store:` must correspond to `groups:` and `region:`. For example, it's impossible to set a US store in the DE region. {% endinfo_block %} diff --git a/docs/ca/dev/setting-up-a-custom-ssl-certificate.md b/docs/ca/dev/setting-up-a-custom-ssl-certificate.md index a67fa755866..69ce6db25a9 100644 --- a/docs/ca/dev/setting-up-a-custom-ssl-certificate.md +++ b/docs/ca/dev/setting-up-a-custom-ssl-certificate.md @@ -17,7 +17,7 @@ By default, all the domain names (domains) are provided with generic SSLs, which {% info_block infoBox "Third-party DNS zone provider" %} -If the DNS zone of a domain name is hosted with a third-party provider, it is impossible to use the generic SSLs and manage custom SSLs in Spryker Cloud Commerce OS. +If the DNS zone of a domain name is hosted with a third-party provider, it's impossible to use the generic SSLs and manage custom SSLs in Spryker Cloud Commerce OS. {% endinfo_block %} diff --git a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-403-error.md b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-403-error.md index 27dbd0f44ad..00295707d38 100644 --- a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-403-error.md +++ b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-403-error.md @@ -16,7 +16,7 @@ To check 403 errors via browser console, do the following: ## Checking the WAF rule that triggered the 403 error -If you found a 403 status response code in the frontend logs or in the browser console, it is most likely that it had been triggered by a [WAF(web application firewall)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) rule. Knowing the rule that triggered the error will help you to understand the source of the issue. +If you found a 403 status response code in the frontend logs or in the browser console, it's most likely that it had been triggered by a [WAF(web application firewall)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) rule. Knowing the rule that triggered the error will help you to understand the source of the issue. To check the WAF rule that triggered the error, do the following: diff --git a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-a-failed-deployment.md b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-a-failed-deployment.md index 03ab452b3cc..e3460a1244d 100644 --- a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-a-failed-deployment.md +++ b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-a-failed-deployment.md @@ -89,7 +89,7 @@ Alternatively, you can check the script of the step in the environment's deploy ![pre-deploy-file] -In this example, the `scheduler:suspendddddddddddd` is misspelled, and it is the root cause of the issue. +In this example, the `scheduler:suspendddddddddddd` is misspelled, and it's the root cause of the issue. {% info_block infoBox "Debugging pre-deploy scripts" %} diff --git a/docs/ca/devscu/developing-with-spryker-code-upgrader.md b/docs/ca/devscu/developing-with-spryker-code-upgrader.md index 7769c8b8121..ac13a838e2b 100644 --- a/docs/ca/devscu/developing-with-spryker-code-upgrader.md +++ b/docs/ca/devscu/developing-with-spryker-code-upgrader.md @@ -8,7 +8,7 @@ redirect_from: - /docs/scu/dev/spryker-code-upgrader-in-a-development-workflow.html --- -Spryker Code Upgrader works best when it is strategically integrated into your development process. This document describes how to integrate the Upgrader into your scrum activities and Git flow to streamline and optimize the development workflow. +Spryker Code Upgrader works best when it's strategically integrated into your development process. This document describes how to integrate the Upgrader into your scrum activities and Git flow to streamline and optimize the development workflow. ## Processing code upgrades with Scrum diff --git a/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.md b/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.md index 37bff777c0f..6e2126403d8 100644 --- a/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.md +++ b/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.md @@ -11,7 +11,7 @@ To start managing upgrades with Spryker Code Upgrader, fulfill the following pre ## Make your code compliant with upgradability guidelines -Our [upgradability guidelines](/docs/scos/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/upgradability-guidelines.html) ensure your project stays upgradable. When an application is compliant with the guidelines, it can take minor and patch updates without breaking functionality, even if it is highly customized. +Our [upgradability guidelines](/docs/scos/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/upgradability-guidelines.html) ensure your project stays upgradable. When an application is compliant with the guidelines, it can take minor and patch updates without breaking functionality, even if it's highly customized. To check if your code is compliant with the guidelines, [run the evaluator tool](/docs/dg/dev/guidelines/keeping-a-project-upgradable/run-the-evaluator-tool.html). diff --git a/docs/ca/devscu/troubleshooting/a-php-extension-is-missing-from-your-system.md b/docs/ca/devscu/troubleshooting/a-php-extension-is-missing-from-your-system.md index f2eea6cbda6..3e56cc79029 100644 --- a/docs/ca/devscu/troubleshooting/a-php-extension-is-missing-from-your-system.md +++ b/docs/ca/devscu/troubleshooting/a-php-extension-is-missing-from-your-system.md @@ -70,7 +70,7 @@ Your requirements could not be resolved to an installable set of packages. Problem 1 - - / requires ext- * -> it is missing from your system. Install or enable PHP\'s extension. + - / requires ext- * -> it's missing from your system. Install or enable PHP\'s extension. You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode. diff --git a/docs/dg/dev/acp/acp-security-assessment.md b/docs/dg/dev/acp/acp-security-assessment.md index ef2b348c782..1c27c6a9fb2 100644 --- a/docs/dg/dev/acp/acp-security-assessment.md +++ b/docs/dg/dev/acp/acp-security-assessment.md @@ -15,7 +15,7 @@ This document outlines the threat modeling and security assessment requirements ## ACP security -In the context of listings on the ACP apps catalog, security is a measure of trust. For our enterprise customers to trust us with their data, it is important that every app they use with SCCOS offers a satisfactory level of security. +In the context of listings on the ACP apps catalog, security is a measure of trust. For our enterprise customers to trust us with their data, it's important that every app they use with SCCOS offers a satisfactory level of security. ## Security responsibility @@ -158,7 +158,7 @@ The diagram below demonstrates the security assessment procedure: ## Review results - As soon as a review is cleared, an app is marked as approved, and a badge is displayed on the marketplace listing. -- During subsequent full reviews (typically annually), the app will retain its badge while it is in the test cycles. Nevertheless, in the following scenarios, the badge will be removed, and customers notified of it: +- During subsequent full reviews (typically annually), the app will retain its badge while it's in the test cycles. Nevertheless, in the following scenarios, the badge will be removed, and customers notified of it: - The app developer fails to respond to repeated requests for annual re-assessments. - During the re-assessment, the app fails repeatedly (about 5 times), and the app developer isn’t able to fix the reported issues. - At this time, customers can choose to look at an alternate application or work with the developer to remedy the issues. diff --git a/docs/dg/dev/architecture/architectural-convention.md b/docs/dg/dev/architecture/architectural-convention.md index 71aed562c47..875273f66e8 100644 --- a/docs/dg/dev/architecture/architectural-convention.md +++ b/docs/dg/dev/architecture/architectural-convention.md @@ -2218,7 +2218,7 @@ No general conventions. #### Guidelines - Operations on single items in plugin stack methods is not feasible, except for the following reasons: - - it is strictly and inevitably a single-item flow. + - it's strictly and inevitably a single-item flow. - the items go in FIFO order and there is no other way to use a collection instead. - Plugin interface class specification should explain: - how the [Plugins](#plugin) will be used, diff --git a/docs/dg/dev/architecture/conceptual-overview.md b/docs/dg/dev/architecture/conceptual-overview.md index bc86c039bff..f92c7c63781 100644 --- a/docs/dg/dev/architecture/conceptual-overview.md +++ b/docs/dg/dev/architecture/conceptual-overview.md @@ -53,7 +53,7 @@ Along with the default frontend app that is provided out of the box, you can hav The application separation brings three main benefits: -1. *Performance*. A frontend applications in Spryker uses a data storage separated from the backend one. It uses a blazing fast key-value storage while the backend uses a relational database. With this separation, it is way faster than using the traditional way of sharing one relational database for both applications. +1. *Performance*. A frontend applications in Spryker uses a data storage separated from the backend one. It uses a blazing fast key-value storage while the backend uses a relational database. With this separation, it's way faster than using the traditional way of sharing one relational database for both applications. 2. *Scalability*. As frontends in Spryker have their own applications, storages, and deployments, scalability becomes easily achievable and given by the architecture. Spryker can be easily scaled out horizontally by simply just adding more instances with more storages without affecting the backend application and logic. 3. *Security*. Having two applications, accessing the backend relational database becomes a harder challenge for cyber attacks. The backend application also is usually hidden behind a firewall making the Commerce OS even more secured for different e-commerce applications. diff --git a/docs/dg/dev/architecture/module-api/semantic-versioning-major-vs.-minor-vs.-patch-release.md b/docs/dg/dev/architecture/module-api/semantic-versioning-major-vs.-minor-vs.-patch-release.md index 5eb2001d008..f51af415003 100644 --- a/docs/dg/dev/architecture/module-api/semantic-versioning-major-vs.-minor-vs.-patch-release.md +++ b/docs/dg/dev/architecture/module-api/semantic-versioning-major-vs.-minor-vs.-patch-release.md @@ -24,7 +24,7 @@ A pull request can ship a new feature, bug fixes, and improvements to existing f ## What is a Major release? -When we make a change to the [external API of a module](/docs/dg/dev/architecture/module-api/declaration-of-module-apis-public-and-private.html), it is a major release. This includes changes to the internal contract. Even when there is no change in a facade method, there can be a change in the behavior so that the contract (~ expected behavior) changes. Please obey the constraints for major releases. +When we make a change to the [external API of a module](/docs/dg/dev/architecture/module-api/declaration-of-module-apis-public-and-private.html), it's a major release. This includes changes to the internal contract. Even when there is no change in a facade method, there can be a change in the behavior so that the contract (~ expected behavior) changes. Please obey the constraints for major releases. Our customers need to change their `composer.json` file to get major versions of modules. @@ -34,7 +34,7 @@ We have two types of major releases: ## What is a Minor release? -A release is *minor* when the internal API is changed. For example, when the signature of internal models or constructors is changed, or classes are renamed. Actually, it is anything that can break extensions using inheritance or composition on a project level. +A release is *minor* when the internal API is changed. For example, when the signature of internal models or constructors is changed, or classes are renamed. Actually, it's anything that can break extensions using inheritance or composition on a project level. Our customers get all new minor releases automatically during composer update if they use the _^_ (caret) symbol in `composer.json`—for example, `"spryker/category": "^4.1.2"`. We recommend using the _~_ (tilde) symbol for all modules that have been extended at the project level to make sure that nothing breaks after a release—for example, `"spryker/category": "~4.1.0"`. For mode details about how you can easily detect _^_ in the extended modules and update them with _~_, see [Using ~ Composer Constraint for Customized Modules](/docs/dg/dev/architecture/module-api/use-composer-constraint-for-customized-modules.html) diff --git a/docs/dg/dev/architecture/programming-concepts.md b/docs/dg/dev/architecture/programming-concepts.md index e37057c6869..867979e0b4a 100644 --- a/docs/dg/dev/architecture/programming-concepts.md +++ b/docs/dg/dev/architecture/programming-concepts.md @@ -24,7 +24,7 @@ Having covered the main architectural concepts of the Spryker Commerce OS, front Spryker *Facades* use the [Facade design pattern](https://en.wikipedia.org/wiki/Facade_pattern). They hide all the business logic of a module behind them and give a very simple and straightforward interface. Thus, the main API of a module is its Facade. When you want to find out what a module does, simply check its Facade interface. -Spryker's Facades work as delegators, so they do not have any business logic in them. They delegate to the right model in order to handle the needed business logic. There is only one Facade for each module, and it is located in the Business layer. +Spryker's Facades work as delegators, so they do not have any business logic in them. They delegate to the right model in order to handle the needed business logic. There is only one Facade for each module, and it's located in the Business layer. ## Factory @@ -32,7 +32,7 @@ Spryker *Factories* follow the [Factory method pattern](https://en.wikipedia.org To isolate objects between the software layers in Spryker, every software layer in a module has its own Factory. The only exception is that the Presentation layer does not have objects, only templates. So, there are Persistence Factories, Business Factories, and Communication Factories. -Glue, Client, and Service application layers have their own Factories as well. Yves can have a Factory when needed. However, it is not enforced by the Spryker architecture as, in many cases, it is not needed for the frontend presentation logic. +Glue, Client, and Service application layers have their own Factories as well. Yves can have a Factory when needed. However, it's not enforced by the Spryker architecture as, in many cases, it's not needed for the frontend presentation logic. ## Query Container @@ -64,7 +64,7 @@ To manage data transfer between the frontend and the Commerce OS applications an Transfer Objects are defined as XML files. Every module can define its own Transfer Objects or extend Transfer Objects from other modules when a dependency to that data is needed. The XML files are merged and transformed into auto-generated PHP objects. -Transfer Objects are a great way to represent data contracts between the Commerce OS and frontend applications. It also represents data contracts between different modules. When any data is needed from a module, it is clear what structure the data has and how to properly use it. +Transfer Objects are a great way to represent data contracts between the Commerce OS and frontend applications. It also represents data contracts between different modules. When any data is needed from a module, it's clear what structure the data has and how to properly use it. As both the Commerce OS and the frontend application need to know about the structure of the Transfer Objects, they are located on the Shared application layer. Every module can have one or more Transfer Objects. diff --git a/docs/dg/dev/backend-development/client/client.md b/docs/dg/dev/backend-development/client/client.md index b5643c9f49c..faba2a659b4 100644 --- a/docs/dg/dev/backend-development/client/client.md +++ b/docs/dg/dev/backend-development/client/client.md @@ -28,7 +28,7 @@ End customers interact only with the frontend application. The frontend applicat The _client's_ job is to connect the frontend application to all of the surrounding resources needed for the frontend application to work. These resources include the Commerce OS, Storage, and Search. It also contains some other resources like Session and Queues. -For each of these resources, there is a client. So, it is not only one client, but many of them. Each one of them is responsible for a specific resource or functionality. Spryker, by default, is shipped with the following clients: +For each of these resources, there is a client. So, it's not only one client, but many of them. Each one of them is responsible for a specific resource or functionality. Spryker, by default, is shipped with the following clients: * SearchClient: to connect to Elasticsearch using its API. * StorageClient: to connect to Redis using the Redis protocol; RESP. diff --git a/docs/dg/dev/backend-development/client/use-and-configure-redis-as-a-key-value-storage.md b/docs/dg/dev/backend-development/client/use-and-configure-redis-as-a-key-value-storage.md index 09b124bd43c..dddb0ddbc0f 100644 --- a/docs/dg/dev/backend-development/client/use-and-configure-redis-as-a-key-value-storage.md +++ b/docs/dg/dev/backend-development/client/use-and-configure-redis-as-a-key-value-storage.md @@ -158,12 +158,12 @@ To optimize the data retrieval from Redis, we designed an algorithm to store all The Redis cache for a page is basically a key-value pair. The key of the cache is the prefix `StorageClient_` followed by the URL of the page, while the value of the cache is simply a list of all Redis keys used on the cached page. -When accessing a new page, the algorithm checks if a cache for it is already built. If yes, the page uses or refreshes the cache if needed; otherwise, the algorithm builds a new cache. +When accessing a new page, the algorithm checks if a cache for it's already built. If yes, the page uses or refreshes the cache if needed; otherwise, the algorithm builds a new cache. Spryker provides three caching strategies to build the list of the keys in the cache entry: * *Replacement strategy.* This strategy overwrites the list of the keys in a cache with a new one every time a cached page is accessed. This strategy is useful with static pages where the list of keys for these does not change often. This is a default strategy when a strategy is not specified. -* *Incremental strategy.* This strategy increments the list of keys inside the cache until the limit is exceeded. The default limit is 1000 keys. The incremental strategy is useful with a page that uses configurators—for example, variants where the cache stores all the different combinations. +* *Incremental strategy.* This strategy increments the list of keys inside the cache until the limit's exceeded. The default limit's 1000 keys. The incremental strategy is useful with a page that uses configurators—for example, variants where the cache stores all the different combinations. * *Inactive strategy.* This strategy deactivates the cache for a specified page. All the cache entries have a default TTL of one day. The cache is removed after one day, and a new one is generated for different pages when accessing them. diff --git a/docs/dg/dev/backend-development/console-commands/console-commands.md b/docs/dg/dev/backend-development/console-commands/console-commands.md index 720f6f98c77..35140c42080 100644 --- a/docs/dg/dev/backend-development/console-commands/console-commands.md +++ b/docs/dg/dev/backend-development/console-commands/console-commands.md @@ -219,7 +219,7 @@ Depending on your environment and needs, there is a number of commands you can r {% info_block infoBox %} -To use the npm commands, download and install [Node.js](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). The minimum version for Node.js is *18.x* and for npm it is *9.x*. Then, you can use the appropriate commands listed in the table. +To use the npm commands, download and install [Node.js](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). The minimum version for Node.js is *18.x* and for npm it's *9.x*. Then, you can use the appropriate commands listed in the table. {% endinfo_block %} diff --git a/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.md b/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.md index 2c985d27363..4371738c11c 100644 --- a/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.md +++ b/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.md @@ -11,7 +11,7 @@ redirect_from: Our out-of-the-box (OOTB) system requires a specific command (Worker - `queue:worker:start`) to be continuously running for each store to process queues and ensure the propagation of information. In addition to this command, there are other commands such as OMS processing, import, export, and more. When these processes are not functioning or running slowly, there is a delay in data changes being reflected on the frontend, causing dissatisfaction among customers and leading to disruption of business processes. -By default, our system has a limit of two Jenkins executors for each environment. This limit is usually not a problem for single-store setups, but it becomes a potentially critical issue when there are multiple stores. Without increasing this limit, processing becomes slow because only two Workers are scanning queues and running tasks at a time, while other Workers for different stores have to wait. On top of this, even when some stores don't have messages to process, we still need to run a Worker just for scanning purposes, which occupies Jenkins executors, CPU time, and memory. +By default, our system has a limit of two Jenkins executors for each environment. This limit's usually not a problem for single-store setups, but it becomes a potentially critical issue when there are multiple stores. Without increasing this limit, processing becomes slow because only two Workers are scanning queues and running tasks at a time, while other Workers for different stores have to wait. On top of this, even when some stores don't have messages to process, we still need to run a Worker just for scanning purposes, which occupies Jenkins executors, CPU time, and memory. Increasing the number of processes per queue can lead to issues such as Jenkins hanging, crashing, or becoming unresponsive. Although memory consumption and CPU utilization are not generally high (around 20-30%), there can be spikes in memory consumption because of a random combination of several workers simultaneously processing heavy messages for multiple stores. @@ -31,7 +31,7 @@ In computer science, a pool refers to a collection of resources that are kept in ![image](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/NewWorker+Flow.png) -We define the total number of simultaneously running processes for the entire setup on the EC2 instance level. This makes it easier to manage, as we can monitor the average memory consumption for the process pool. If it's too low, we can increase the pool size, and if it's too high, we can decrease it. Additionally, we check the available memory (RAM) and prevent spawning additional processes if it is too low, ensuring system stability. Execution statistics provide valuable insights for decision-making, including adjusting the pool size or scaling the EC2 instance up or down. +We define the total number of simultaneously running processes for the entire setup on the EC2 instance level. This makes it easier to manage, as we can monitor the average memory consumption for the process pool. If it's too low, we can increase the pool size, and if it's too high, we can decrease it. Additionally, we check the available memory (RAM) and prevent spawning additional processes if it's too low, ensuring system stability. Execution statistics provide valuable insights for decision-making, including adjusting the pool size or scaling the EC2 instance up or down. The following parameters exist: @@ -61,7 +61,7 @@ Child processes are killed at the end of each minute, which means those batches There are two methods possible for implementing this: -1. Applying a patch, although it may require conflict resolution since it is applied on the project level and each project may have unique customizations already in place. See the attached diffs for an example implementation. [Here's a diff](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/one-worker.diff). +1. Applying a patch, although it may require conflict resolution since it's applied on the project level and each project may have unique customizations already in place. See the attached diffs for an example implementation. [Here's a diff](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/one-worker.diff). ```bash git apply one-worker.diff @@ -118,7 +118,7 @@ class NewWorker implements WorkerInterface public function start(string $command, array $options = []): void { // env var - QUEUE_WORKER_MAX_THRESHOLD_SECONDS - // default is 60 seconds, 1 minute, it is safe to have it as 1 hour instead + // default is 60 seconds, 1 minute, it's safe to have it as 1 hour instead $maxThreshold = $this->queueConfig->getQueueWorkerMaxThreshold(); // minimum interval after starting one process before executing another @@ -156,7 +156,7 @@ class NewWorker implements WorkerInterface // QUEUE_WORKER_MEMORY_MAX_GROWTH_FACTOR, 50 by default // measures how much Worker own memory consumption increased after first iteration - // when more than 50% - it is considered a memory leak and Worker will finish its operation + // when more than 50% - it's considered a memory leak and Worker will finish its operation // allowing Jenkins to run Worker again if ($ownMemGrowthFactor > $this->queueConfig->maxAllowedWorkerMemoryGrowthFactor()) { $this->logger->emergency(sprintf('Worker memory grew more than %d%%, probably a memory leak, exiting', $ownMemGrowthFactor)); @@ -248,7 +248,7 @@ Available free system memory measured before spawning each child process. The system should always have spare resources, because each `queue:task:start ...` command can consume different amount of resources, which is not easily predictable. Because of this, this buffer must be set with such limitations in mind. -- to accomodate a new process it is going to launch +- to accomodate a new process it's going to launch - to leave space for any sporadic memory consumption change of already running processes
@@ -478,7 +478,7 @@ class OrderedQueuesStrategy implements QueueProcessingStrategyInterface Currently, this solution proved to be useful for multi-store setup environments with more than 2 stores operated within a single AWS region, although projects with only two stores can benefit from this solution as well. -At the same time, it is worth mentioning that it does not make sense to apply this customization for a single-store setup. Although there are no drawbacks, it won't provide any significant benefits in performance, just better logging. +At the same time, it's worth mentioning that it does not make sense to apply this customization for a single-store setup. Although there are no drawbacks, it won't provide any significant benefits in performance, just better logging. - In summary, this HowTo can be applied to multi-store setup with at least 2 stores within one AWS region to gain such benefits as potential cost reduction from scaling down a Jenkins instance, or to speed Publish and Synchronize processing instead. diff --git a/docs/dg/dev/backend-development/cronjobs/reduce-jenkins-execution-costs-without-p&s-and-data-importers-refactoring.md b/docs/dg/dev/backend-development/cronjobs/reduce-jenkins-execution-costs-without-p&s-and-data-importers-refactoring.md index 4b34ec75648..d06c32ef985 100644 --- a/docs/dg/dev/backend-development/cronjobs/reduce-jenkins-execution-costs-without-p&s-and-data-importers-refactoring.md +++ b/docs/dg/dev/backend-development/cronjobs/reduce-jenkins-execution-costs-without-p&s-and-data-importers-refactoring.md @@ -9,7 +9,7 @@ redirect_from: By default, the system requires the `queue:worker:start` command to be continuously running for each store to process queues and ensure the propagation of information. In addition to this command, there are other commands such as OMS processing, import, export, and more. When these processes aren't functioning or running slowly, there is a delay in data changes being reflected on the frontend, causing dissatisfaction among customers and leading to disruption of business processes. -By default, Spryker has a limit of two Jenkins executors for each environment. This limit is usually not a problem for single-store setups, but it can be a critical issue when there are multiple stores. Without increasing this limit, processing becomes slow because only two Workers are scanning queues and running tasks at a time, while other Workers for different stores have to wait. On top of this, even when some stores don't have messages to process, we still need to run a Worker just for scanning purposes, which occupies Jenkins executors, CPU time, and memory. +By default, Spryker has a limit of two Jenkins executors for each environment. This limit's usually not a problem for single-store setups, but it can be a critical issue when there are multiple stores. Without increasing this limit, processing becomes slow because only two Workers are scanning queues and running tasks at a time, while other Workers for different stores have to wait. On top of this, even when some stores don't have messages to process, we still need to run a Worker just for scanning purposes, which occupies Jenkins executors, CPU time, and memory. Increasing the number of processes per queue can lead to issues such as Jenkins hanging, crashing, or becoming unresponsive. Although memory consumption and CPU usage aren't generally high (around 20-30%), there can be spikes in memory consumption because of a random combination of several workers simultaneously processing heavy messages for multiple stores. @@ -47,7 +47,7 @@ A pool refers to a collection of resources that are kept in memory and ready to ![image](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/NewWorker+Flow.png) -We define the total number of simultaneously running processes for the entire setup on the EC2 instance level. This makes it easier to manage, as we can monitor the average memory consumption for the process pool. If it's too low, we can increase the pool size, and if it's too high, we can decrease it. Additionally, we check the available memory (RAM) and prevent spawning additional processes if it is too low, ensuring system stability. Execution statistics provide valuable insights for decision-making, including adjusting the pool size or scaling the EC2 instance up or down. +We define the total number of simultaneously running processes for the entire setup on the EC2 instance level. This makes it easier to manage, as we can monitor the average memory consumption for the process pool. If it's too low, we can increase the pool size, and if it's too high, we can decrease it. Additionally, we check the available memory (RAM) and prevent spawning additional processes if it's too low, ensuring system stability. Execution statistics provide valuable insights for decision-making, including adjusting the pool size or scaling the EC2 instance up or down. The following parameters exist: @@ -76,7 +76,7 @@ Child processes are killed at the end of each minute, which means those batches There are two ways to implement the background job orchestration: -1. Applying a patch, although it may require conflict resolution since it is applied on the project level, and each project may have unique customizations already in place. See [these diffs](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/one-worker.diff) for an example implementation. +1. Applying a patch, although it may require conflict resolution since it's applied on the project level, and each project may have unique customizations already in place. See [these diffs](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/one-worker.diff) for an example implementation. ```bash git apply one-worker.diff @@ -133,7 +133,7 @@ class NewWorker implements WorkerInterface public function start(string $command, array $options = []): void { // env var - QUEUE_WORKER_MAX_THRESHOLD_SECONDS - // default is 60 seconds, 1 minute, it is safe to have it as 1 hour instead + // default is 60 seconds, 1 minute, it's safe to have it as 1 hour instead $maxThreshold = $this->queueConfig->getQueueWorkerMaxThreshold(); // minimum interval after starting one process before executing another @@ -171,7 +171,7 @@ class NewWorker implements WorkerInterface // QUEUE_WORKER_MEMORY_MAX_GROWTH_FACTOR, 50 by default // measures how much Worker own memory consumption increased after first iteration - // when more than 50% - it is considered a memory leak and Worker will finish its operation + // when more than 50% - it's considered a memory leak and Worker will finish its operation // allowing Jenkins to run Worker again if ($ownMemGrowthFactor > $this->queueConfig->maxAllowedWorkerMemoryGrowthFactor()) { $this->logger->emergency(sprintf('Worker memory grew more than %d%%, probably a memory leak, exiting', $ownMemGrowthFactor)); diff --git a/docs/dg/dev/backend-development/data-manipulation/configuration-management.md b/docs/dg/dev/backend-development/data-manipulation/configuration-management.md index 45e00da66f8..708f17722a3 100644 --- a/docs/dg/dev/backend-development/data-manipulation/configuration-management.md +++ b/docs/dg/dev/backend-development/data-manipulation/configuration-management.md @@ -39,7 +39,7 @@ All of these files are merged automatically by Spryker when the application is r ### Constant interfaces -As you can see in the configuration files, the whole configuration is a big array of keys and values. To enable traceability, it is a good practice to use constants as keys. These constants are defined in shared interfaces that are provided by the related module. +As you can see in the configuration files, the whole configuration is a big array of keys and values. To enable traceability, it's a good practice to use constants as keys. These constants are defined in shared interfaces that are provided by the related module. ```php ”`. Running the composer update command removes all mentions of the module (for example, `refund`) and replaces it with your module (for example, `replace_refund`). {% info_block warningBox %} diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/add-publish-events.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/add-publish-events.md index c767b416c46..0e09b7bccc4 100644 --- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/add-publish-events.md +++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/add-publish-events.md @@ -204,4 +204,4 @@ class SpyGlossary extends BaseSpyGlossary } ``` -Now, you can track the changes in the `Glossary` entity. When it is created, updated, or deleted, an event is created and posted to the specified RabbitMQ publish queue (`publish.translation`). +Now, you can track the changes in the `Glossary` entity. When it's created, updated, or deleted, an event is created and posted to the specified RabbitMQ publish queue (`publish.translation`). diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/bypass-the-key-value-storage.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/bypass-the-key-value-storage.md index ee9eb0aaa0d..a732800e287 100644 --- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/bypass-the-key-value-storage.md +++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/bypass-the-key-value-storage.md @@ -36,7 +36,7 @@ This new module is responsible for interacting with the database in read-only mo There are two limitations of using the database as storage on Yves compared to the default storage engine. The following are scenarios when Yves actually writes data to storage: -- Caching of requests to storage: while using the database as storage, it is not possible to cache anything in Yves. +- Caching of requests to storage: while using the database as storage, it's not possible to cache anything in Yves. - Concurrent requests and caching for the Glue API. {% endinfo_block %} diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/handle-data-with-publish-and-synchronization.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/handle-data-with-publish-and-synchronization.md index 3e4cbcba144..efff22da5c1 100644 --- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/handle-data-with-publish-and-synchronization.md +++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/handle-data-with-publish-and-synchronization.md @@ -546,7 +546,7 @@ For debugging purposes, use the `-k` option to keep messages in the queue `queue ## 6. Storage table -To synchronize data with Redis, an intermediate Zed database table is required. The table stores the data until it is sent to Redis. The data in the table is already structured for Redis. +To synchronize data with Redis, an intermediate Zed database table is required. The table stores the data until it's sent to Redis. The data in the table is already structured for Redis. Follow the steps to create the table: diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-publish-and-synchronization.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-publish-and-synchronization.md index 2b05df58be2..2a01039e127 100644 --- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-publish-and-synchronization.md +++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-publish-and-synchronization.md @@ -124,7 +124,7 @@ The next step is to create a database table that is used as a mirror for the cor {% info_block infoBox "Naming convention"%} -As a naming convention, it is recommended to append `_storage` to the end of the table name if it is synchronized with Redis, and `_search` if it is synchronized with Elasticsearch. +As a naming convention, it's recommended to append `_storage` to the end of the table name if it's synchronized with Redis, and `_search` if it's synchronized with Elasticsearch. {% endinfo_block %} @@ -173,8 +173,8 @@ The *Synchronization* behavior added by the above schema files adds a column tha Synchronization behavior parameters: * `resource`—specifies the Redis or Elasticsearch namespace to synchronize with. -* `store`—specifies whether it is necessary to specify a store for an entity. -* `locale`—specifies whether it is necessary to specify a locale for an entity. +* `store`—specifies whether it's necessary to specify a store for an entity. +* `locale`—specifies whether it's necessary to specify a locale for an entity. * `key_suffix_column`—specifies the name of the column that will be appended to the Redis or Elasticsearch key to make the key unique. If this parameter is omitted, then all entities will be stored under the same key. * `queue_group`—specifies the queue group for synchronization. * `params`—specifies search parameters (Elasticsearch only). @@ -298,7 +298,7 @@ The `handleBulk` method is called by the event queue for the defined events in t {% info_block infoBox "Info"%} -For performance considerations, events are passed to the listener in bulk. Even if a single event must be handled, it is passed as an array of a single element. +For performance considerations, events are passed to the listener in bulk. Even if a single event must be handled, it's passed as an array of a single element. {% endinfo_block %} diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/synchronization-behavior-enabling-multiple-mappings.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/synchronization-behavior-enabling-multiple-mappings.md index 2baa638bc01..751745189c0 100644 --- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/synchronization-behavior-enabling-multiple-mappings.md +++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/synchronization-behavior-enabling-multiple-mappings.md @@ -38,7 +38,7 @@ During the [Publish and Synchronization](/docs/dg/dev/backend-development/data-m where *123* is the product ID from the database. Now, we can get that product's data straight away by querying storage for this particular key. But what if we don't know ID of a product, but know its SKU? What if we don't want to expose database IDs to the outer world? In these cases, we could make some heavy changes to the Publish & Synchronize mechanism on the project level, or we could use *mappings*. ## What are mappings -You can instruct Publish & Synchronize facilities to create mappings for any resource. Mapping is a relation between a resource's database ID and some other unique piece of information about that resource. In terms of storage, it is an extra-record, related to some resource entity, which stores its ID, and is saved with its own key. This key, of course, does not have database ID as its part. To understand the mappings better, read on how mappings are [defined](#defining) and [used](#using). +You can instruct Publish & Synchronize facilities to create mappings for any resource. Mapping is a relation between a resource's database ID and some other unique piece of information about that resource. In terms of storage, it's an extra-record, related to some resource entity, which stores its ID, and is saved with its own key. This key, of course, does not have database ID as its part. To understand the mappings better, read on how mappings are [defined](#defining) and [used](#using). diff --git a/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/extend-the-core.md b/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/extend-the-core.md index f230866aa8c..d670302be00 100644 --- a/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/extend-the-core.md +++ b/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/extend-the-core.md @@ -18,7 +18,7 @@ related: We offer several ways like plugins to hook into the core's behavior and extend this without modifications. But sometimes this is not enough, so you need to replace a method that is deep in the core. -Before you proceed, double-check if there is no other way to solve your requirement, maybe there is a facade method that fits in or you can use plugins. You must understand that if you do a core extension, you are behind the stable internal APIs, so there is no guarantee that the extended class is not modified, renamed, or even non-existing in the next release. Therefore, you take over responsibility for your extension, and it is highly recommended to cover it with unit tests. If it is not urgent, you can request a change in our support desk to get an official extension point. +Before you proceed, double-check if there is no other way to solve your requirement, maybe there is a facade method that fits in or you can use plugins. You must understand that if you do a core extension, you are behind the stable internal APIs, so there is no guarantee that the extended class is not modified, renamed, or even non-existing in the next release. Therefore, you take over responsibility for your extension, and it's highly recommended to cover it with unit tests. If it's not urgent, you can request a change in our support desk to get an official extension point. There are three ways to extend classes from the core: * Replacement class diff --git a/docs/dg/dev/backend-development/factory/factory.md b/docs/dg/dev/backend-development/factory/factory.md index ceae0c52bf7..0015d7ed237 100644 --- a/docs/dg/dev/backend-development/factory/factory.md +++ b/docs/dg/dev/backend-development/factory/factory.md @@ -71,7 +71,7 @@ The extended `AbstractFactory` holds some important methods: ## Snippets to create a new factory -The factory pattern is used all over our code base. The concrete implementations look a bit different for Yves, Zed, and Client. You can copy and paste these snippets and just replace `MyBundle` with your real module name. To enable auto-completion, it is recommended to define the interfaces for the query container and module config in the class doc block as shown in the snippets. +The factory pattern is used all over our code base. The concrete implementations look a bit different for Yves, Zed, and Client. You can copy and paste these snippets and just replace `MyBundle` with your real module name. To enable auto-completion, it's recommended to define the interfaces for the query container and module config in the class doc block as shown in the snippets. ### Yves diff --git a/docs/dg/dev/backend-development/plugins/get-an-overview-of-the-used-plugins.md b/docs/dg/dev/backend-development/plugins/get-an-overview-of-the-used-plugins.md index 4dc35611165..9b711b24b4f 100644 --- a/docs/dg/dev/backend-development/plugins/get-an-overview-of-the-used-plugins.md +++ b/docs/dg/dev/backend-development/plugins/get-an-overview-of-the-used-plugins.md @@ -13,7 +13,7 @@ related: link: docs/dg/dev/backend-development/plugins/plugins.html --- -To use a new feature projects most likely need to add some plugins to their `*DependencyProvider`. Currently, it is not easy for projects to integrate a new feature because of the difficulties in identifying to which *`DependencyProvider` plugin A* of *module B* can be added to bring *functionality X*. +To use a new feature projects most likely need to add some plugins to their `*DependencyProvider`. Currently, it's not easy for projects to integrate a new feature because of the difficulties in identifying to which *`DependencyProvider` plugin A* of *module B* can be added to bring *functionality X*. To see which [Plugin](/docs/dg/dev/backend-development/plugins/plugins.html) can be used in which `DependencyProvider` we added a feature called **Plugin Overview**. This feature gives you several ways of displaying our plugin usages. The feature brings a console command (`vendor/bin/console dev:plugin-usage:dump`) and a [GUI in Zed](https://zed.mysprykershop.com/development/dependency-provider-plugin-usage). diff --git a/docs/dg/dev/backend-development/zed/business-layer/custom-exceptions.md b/docs/dg/dev/backend-development/zed/business-layer/custom-exceptions.md index a0e3f4b43aa..d52ef6c7e20 100644 --- a/docs/dg/dev/backend-development/zed/business-layer/custom-exceptions.md +++ b/docs/dg/dev/backend-development/zed/business-layer/custom-exceptions.md @@ -14,7 +14,7 @@ related: link: docs/dg/dev/backend-development/zed/business-layer/business-models.html --- -To throw an exception, you need to define your own type of exception. Later, it is much easier to handle exceptions when the type represents a specific type of error. +To throw an exception, you need to define your own type of exception. Later, it's much easier to handle exceptions when the type represents a specific type of error. {% info_block errorBox %} diff --git a/docs/dg/dev/backend-development/zed/business-layer/facade/a-facade-implementation.md b/docs/dg/dev/backend-development/zed/business-layer/facade/a-facade-implementation.md index 6f4322ed25c..77b0c252ed3 100644 --- a/docs/dg/dev/backend-development/zed/business-layer/facade/a-facade-implementation.md +++ b/docs/dg/dev/backend-development/zed/business-layer/facade/a-facade-implementation.md @@ -45,7 +45,7 @@ class GlossaryFacade extends AbstractFacade When you look at the `deleteKey()` method, observe the following: -* The method's name expresses exactly what happens. It uses the terms of the related terminology, but it is easy to grasp what happens ("A key is deleted"). +* The method's name expresses exactly what happens. It uses the terms of the related terminology, but it's easy to grasp what happens ("A key is deleted"). * The method does not contain any control logic, like `if` or `foreach` statements; it just delegates to the business model and calls the right method. * The business model KeyManager is created using the factory, so it does not need to know how the class is created. diff --git a/docs/dg/dev/backend-development/zed/business-layer/facade/design-by-contract-dbc-facade.md b/docs/dg/dev/backend-development/zed/business-layer/facade/design-by-contract-dbc-facade.md index 7e405c576f5..1029adac740 100644 --- a/docs/dg/dev/backend-development/zed/business-layer/facade/design-by-contract-dbc-facade.md +++ b/docs/dg/dev/backend-development/zed/business-layer/facade/design-by-contract-dbc-facade.md @@ -51,5 +51,5 @@ Based on the name, this method "saves a customer". So the contract is as follows **Additional information**: * *The post-conditions are complete*. Any other behavior is not expected here—for example, this method must not send an email to a customer to confirm the change. -* *This method must not return anything*. You could think of a boolean return value if the email cannot be changed. But then this method would do two things. Therefore, it is a better approach to have another `doesEmailExist($email)` method for the pre-check. +* *This method must not return anything*. You could think of a boolean return value if the email cannot be changed. But then this method would do two things. Therefore, it's a better approach to have another `doesEmailExist($email)` method for the pre-check. * *If the preconditions are not valid, the method must throw an exception*. In this case, if the email address already exists, the `EmailAlreadyExistsException` exception is thrown. diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/database-overview.md b/docs/dg/dev/backend-development/zed/persistence-layer/database-overview.md index 929dcf419c7..91e4f30c888 100644 --- a/docs/dg/dev/backend-development/zed/persistence-layer/database-overview.md +++ b/docs/dg/dev/backend-development/zed/persistence-layer/database-overview.md @@ -31,7 +31,7 @@ The `src/Orm/Propel` folder is for the following: * Configuration in Propel format (generated `propel.json`—don't touch it). * Copy of merged schema files (don't touch). -* Migration files (can be in `.gitignore` or can be committed; the decision is made on the project level. We recommend using `.gitignore`; however Propel documentation says that "On a project using version control, it is important to commit the migration classes to the code repository. That way, other developers checking out the project just have to run the same migrations to get a database in a similar state". +* Migration files (can be in `.gitignore` or can be committed; the decision is made on the project level. We recommend using `.gitignore`; however Propel documentation says that "On a project using version control, it's important to commit the migration classes to the code repository. That way, other developers checking out the project just have to run the same migrations to get a database in a similar state". The `src/Orm/Zed` folder is for the following: diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.md b/docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.md index 77dd6aea550..8f5ce78261f 100644 --- a/docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.md +++ b/docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.md @@ -79,14 +79,14 @@ The workflow can be described like this: ## Schema file merge -Sometimes it is useful to add columns to a table that belongs to another module. Possible use cases are: +Sometimes it's useful to add columns to a table that belongs to another module. Possible use cases are: * A core module wants to inject a foreign key into a table from another core module. This happens when the dependency direction is in contrast to the direction of the relation. * A project module wants to add a column to a table from a core module. When you add a column to a core table, this column must not be mandatory. Otherwise, the core classes, not knowing the mandatory fields, become unusable and, thus, have to be overwritten. This makes updating more difficult. In most cases, you need to avoid adding a column to a core table, as it can cause compatibility problems in the future. -What happens when the next release adds a column with the same name but another meaning? To avoid this problem, it is a good practice to add a new table and use a one-to-one relationship. +What happens when the next release adds a column with the same name but another meaning? To avoid this problem, it's a good practice to add a new table and use a one-to-one relationship. ### Merge workflow diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.md b/docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.md index ad413267381..dbd6baa7862 100644 --- a/docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.md +++ b/docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.md @@ -30,7 +30,7 @@ As an example of using an entity manager, see the [Company module](https://githu ## Entity transfers -With the Publish and Synchronize feature, we have added a new transfer generation for `EntityTransfers`. The `EntityTransfers` are a direct representation of SQL tables. `EntityTransfer` has all properties, and relations defined and holds FQCN to the Propel entity it is mapped to. This FQCN is used when mapping the entity as the data is persisted. +With the Publish and Synchronize feature, we have added a new transfer generation for `EntityTransfers`. The `EntityTransfers` are a direct representation of SQL tables. `EntityTransfer` has all properties, and relations defined and holds FQCN to the Propel entity it's mapped to. This FQCN is used when mapping the entity as the data is persisted. ## AbstractEntityManager class diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.md b/docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.md index b2541fcebab..5d0248bd900 100644 --- a/docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.md +++ b/docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.md @@ -36,6 +36,6 @@ As you can see `src/Orm/Zed/` the query object which belongs to the Spryker core The `Propel` module alters the rules of generating query models by requiring explicit passing of filtering criteria into `filterBy..` and `findBy...` methods. -This means, that when an array, `LIKE` expression or an array with `min/max` are passed as a filtering argument, it is explicitly required to specify `Criteria::IN`, `Criteria::LIKE` or `Criteria::BETWEEN`. The `Criteria::BETWEEN` is implemented in the wrapper class `Spryker\Zed\Propel\Business\Runtime\ActiveQuery\Criteria`. +This means, that when an array, `LIKE` expression or an array with `min/max` are passed as a filtering argument, it's explicitly required to specify `Criteria::IN`, `Criteria::LIKE` or `Criteria::BETWEEN`. The `Criteria::BETWEEN` is implemented in the wrapper class `Spryker\Zed\Propel\Business\Runtime\ActiveQuery\Criteria`. Additionally the `Propel` module adds the following methods into the generated classes, that allow to easily filter: `filterBy...._In()`, `filterBy...._Like()` and `filterBy...._Between()`. diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/repository.md b/docs/dg/dev/backend-development/zed/persistence-layer/repository.md index deaf6634e86..cede4912da5 100644 --- a/docs/dg/dev/backend-development/zed/persistence-layer/repository.md +++ b/docs/dg/dev/backend-development/zed/persistence-layer/repository.md @@ -53,7 +53,7 @@ class BlogRepository extends AbstractRepository implements BlogRepositoryInterfa ## EntityTransfers -With the Publish and Synchronize feature, we have added a new transfer generation for `EntityTransfers`. The `EntityTransfers` are a direct representation of SQL tables, `EntityTransfer` has all properties and relations defined, also it holds FQCN to the Propel entity it is mapped to. This FQCN is used when mapping entity when data is persisted. Names of `EntityTransfers` start with `Spy`, followed by the table name, and then the `EntityTransfer` suffix. For example, `SpyBlogEntityTransfer` would map to SpyBlog Propel entity. +With the Publish and Synchronize feature, we have added a new transfer generation for `EntityTransfers`. The `EntityTransfers` are a direct representation of SQL tables, `EntityTransfer` has all properties and relations defined, also it holds FQCN to the Propel entity it's mapped to. This FQCN is used when mapping entity when data is persisted. Names of `EntityTransfers` start with `Spy`, followed by the table name, and then the `EntityTransfer` suffix. For example, `SpyBlogEntityTransfer` would map to SpyBlog Propel entity. ## Abstract Repository Class diff --git a/docs/dg/dev/best-practices/basic-seo-techniques-to-use-in-your-project.md b/docs/dg/dev/best-practices/basic-seo-techniques-to-use-in-your-project.md index 7e05d4473df..351d55fc7bb 100644 --- a/docs/dg/dev/best-practices/basic-seo-techniques-to-use-in-your-project.md +++ b/docs/dg/dev/best-practices/basic-seo-techniques-to-use-in-your-project.md @@ -26,7 +26,7 @@ It is important to use the `h1` heading. However, the number of `h1` elements on {% endinfo_block %} -For example, on a catalog page, `h1` is the name of the chosen category. Or, on a product details page, it is the product name. +For example, on a catalog page, `h1` is the name of the chosen category. Or, on a product details page, it's the product name. Then `h2` and `h3` subheadings are used to introduce different sections. Those individual sections might also use more specific headers (`h3` tags, then `h4` tags) to introduce sub-sections. It's rare for most content to get deep enough to need to use h4 tags. Check out the headings structure on a catalog page in the Spryker Demo Shop: diff --git a/docs/dg/dev/best-practices/coding-best-practices.md b/docs/dg/dev/best-practices/coding-best-practices.md index 3c7fe1e123b..30263d96c10 100644 --- a/docs/dg/dev/best-practices/coding-best-practices.md +++ b/docs/dg/dev/best-practices/coding-best-practices.md @@ -13,12 +13,12 @@ This document outlines a few common PHP coding problems and the recommended solu ## Merging arrays -When merging arrays, one usually uses `array_merge($defaults, $options)`. However, when working with associative arrays (keys are all string identifiers), it is recommended to use the `+` operator. This is not only a lot faster, it also yields more correct results with edge cases. Beware of the switched order in this case: `$mergedOptions = $options + $defaults;` +When merging arrays, one usually uses `array_merge($defaults, $options)`. However, when working with associative arrays (keys are all string identifiers), it's recommended to use the `+` operator. This is not only a lot faster, it also yields more correct results with edge cases. Beware of the switched order in this case: `$mergedOptions = $options + $defaults;` ## Operations per line -To facilitate readability and debugging, it is recommended to use only one operation per line. +To facilitate readability and debugging, it's recommended to use only one operation per line. ## Method size -Long methods tend to have too many responsibilities, and are usually harder to understand and maintain than smaller ones. Therefore it is advisable to stick to the "single responsibility" principle, when a method is just a few lines long. +Long methods tend to have too many responsibilities, and are usually harder to understand and maintain than smaller ones. Therefore it's advisable to stick to the "single responsibility" principle, when a method is just a few lines long. diff --git a/docs/dg/dev/data-import/202311.0/data-importers-implementation.md b/docs/dg/dev/data-import/202311.0/data-importers-implementation.md index 022de1037ea..542fd34373f 100644 --- a/docs/dg/dev/data-import/202311.0/data-importers-implementation.md +++ b/docs/dg/dev/data-import/202311.0/data-importers-implementation.md @@ -212,7 +212,7 @@ These actions should be enough to prepare a module-based importer to use. * Product Set Content Item Importer * Tax Importer -Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it is possible to append it directly to the `DataImport` module on the project level. +Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it's possible to append it directly to the `DataImport` module on the project level. To append a data importer to the DataImport module, do the following: diff --git a/docs/dg/dev/data-import/202311.0/importing-data-with-the-queue-data-importer.md b/docs/dg/dev/data-import/202311.0/importing-data-with-the-queue-data-importer.md index a42005aa455..3893a94aa72 100644 --- a/docs/dg/dev/data-import/202311.0/importing-data-with-the-queue-data-importer.md +++ b/docs/dg/dev/data-import/202311.0/importing-data-with-the-queue-data-importer.md @@ -23,7 +23,7 @@ Also, queue data import allows you to use different import groups. ## Why do you need it? -Mainly, it is used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers. +Mainly, it's used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers. ## How does it work? diff --git a/docs/dg/dev/data-import/202404.0/data-importers-implementation.md b/docs/dg/dev/data-import/202404.0/data-importers-implementation.md index a160b691db6..a17056fd725 100644 --- a/docs/dg/dev/data-import/202404.0/data-importers-implementation.md +++ b/docs/dg/dev/data-import/202404.0/data-importers-implementation.md @@ -212,7 +212,7 @@ These actions should be enough to prepare a module-based importer to use. * Product Set Content Item Importer * Tax Importer -Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it is possible to append it directly to the `DataImport` module on the project level. +Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it's possible to append it directly to the `DataImport` module on the project level. To append a data importer to the DataImport module, do the following: diff --git a/docs/dg/dev/data-import/202404.0/importing-data-with-the-queue-data-importer.md b/docs/dg/dev/data-import/202404.0/importing-data-with-the-queue-data-importer.md index d217365bc8b..ef882d2a739 100644 --- a/docs/dg/dev/data-import/202404.0/importing-data-with-the-queue-data-importer.md +++ b/docs/dg/dev/data-import/202404.0/importing-data-with-the-queue-data-importer.md @@ -23,7 +23,7 @@ Also, queue data import allows you to use different import groups. ## Why do you need it? -Mainly, it is used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers. +Mainly, it's used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers. ## How does it work? diff --git a/docs/dg/dev/data-import/202410.0/data-importers-implementation.md b/docs/dg/dev/data-import/202410.0/data-importers-implementation.md index a160b691db6..a17056fd725 100644 --- a/docs/dg/dev/data-import/202410.0/data-importers-implementation.md +++ b/docs/dg/dev/data-import/202410.0/data-importers-implementation.md @@ -212,7 +212,7 @@ These actions should be enough to prepare a module-based importer to use. * Product Set Content Item Importer * Tax Importer -Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it is possible to append it directly to the `DataImport` module on the project level. +Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it's possible to append it directly to the `DataImport` module on the project level. To append a data importer to the DataImport module, do the following: diff --git a/docs/dg/dev/data-import/202410.0/importing-data-with-the-queue-data-importer.md b/docs/dg/dev/data-import/202410.0/importing-data-with-the-queue-data-importer.md index d217365bc8b..ef882d2a739 100644 --- a/docs/dg/dev/data-import/202410.0/importing-data-with-the-queue-data-importer.md +++ b/docs/dg/dev/data-import/202410.0/importing-data-with-the-queue-data-importer.md @@ -23,7 +23,7 @@ Also, queue data import allows you to use different import groups. ## Why do you need it? -Mainly, it is used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers. +Mainly, it's used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers. ## How does it work? diff --git a/docs/dg/dev/example-modules.md b/docs/dg/dev/example-modules.md index 29cda6bc4d0..382d6dacf9f 100644 --- a/docs/dg/dev/example-modules.md +++ b/docs/dg/dev/example-modules.md @@ -46,7 +46,7 @@ In contrast to Spryker SCCOS core modules, example modules do not adhere to stri * While we do our best to keep things compatible, we can't guarantee forward or backward compatibility. * There is no upgradability support for projects or Demo Shop integrations. * **Learnability:** - While documentation is provided when possible, it is not a firm commitment. We encourage community learning and support. + While documentation is provided when possible, it's not a firm commitment. We encourage community learning and support. * **Maintainability:** * There is no obligation to maintain example modules. * Example modules may be abandoned at any time. diff --git a/docs/dg/dev/frontend-development/202311.0/marketplace/angular-services.md b/docs/dg/dev/frontend-development/202311.0/marketplace/angular-services.md index 8c833c0018f..9d2b0616d06 100644 --- a/docs/dg/dev/frontend-development/202311.0/marketplace/angular-services.md +++ b/docs/dg/dev/frontend-development/202311.0/marketplace/angular-services.md @@ -20,7 +20,7 @@ This document describes what Angular Services are, how to create and use them. ## Introduction The Angular Services are stateless objects which provide useful functionality. These functions can be invoked from any component of Angular, such as Components and Directives. It enables services to organize and share business logic, models, data and functions with other components of an Angular application and thus divide the web application into small, reusable logical units. A service typically encapsulates a particular aspect/function of the system (HTTP, part of business logic). -Using Angular Services methods, the data is maintained throughout the life of an application, that is, it is never refreshed and is always available. +Using Angular Services methods, the data is maintained throughout the life of an application, that is, it's never refreshed and is always available. #### Component communication using Angular services diff --git a/docs/dg/dev/frontend-development/202311.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md b/docs/dg/dev/frontend-development/202311.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md index 870a34c2769..944649aae41 100644 --- a/docs/dg/dev/frontend-development/202311.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md +++ b/docs/dg/dev/frontend-development/202311.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md @@ -37,7 +37,7 @@ This document explains the Table Feature Batch Actions component in the Componen Table Feature Batch Actions is a feature of the Table Component that allows triggering batch/multiple actions from rows. As Table Feature Batch Actions is based on the [Table Feature Selectable](/docs/dg/dev/frontend-development/{{page.version}}/marketplace/table-design/table-feature-extension/table-feature-selectable.html), batch actions must be registered and enabled via the table config. Batch actions are functions that can be performed on multiple items within a table. As soon as at least one row is selected in the table, the batch action bar with allowed actions appears at the top of the table. -To escape the `batch action mode`, it is necessary to unselect the table rows. +To escape the `batch action mode`, it's necessary to unselect the table rows. Check out an example usage of the Table Feature Batch Actions in the `@spryker/table` config. diff --git a/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/data-transformers/data-transformers.md b/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/data-transformers/data-transformers.md index 6ee35ca2681..230380540aa 100644 --- a/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/data-transformers/data-transformers.md +++ b/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/data-transformers/data-transformers.md @@ -136,7 +136,7 @@ export class CustomDataTransformerService implements export class RootModule {} ``` -The context in which the Data Transformer operates is determined by the local injector where it is being used. +The context in which the Data Transformer operates is determined by the local injector where it's being used. ## Interfaces diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md index d590ac30e95..6214c4109e9 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md @@ -34,7 +34,7 @@ In this example, the `inject` method is used to resolve a dependency based on a ## Multi-providers -Most dependencies in an application correspond to only one value, like a class. In some cases, it is useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers. +Most dependencies in an application correspond to only one value, like a class. In some cases, it's useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers. There are different types of multi-providers based on location an number of asterisks(`*`) in the name of their tokens. They are described in the following sections. diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection.md index ac547f6b489..95c25ffb041 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection.md @@ -14,7 +14,7 @@ Dependency injection (DI) is a design pattern that provides loosely-coupled, mai In the context of Oryx, DI enables you to customize logic deep inside the framework, which is particularly useful for projects with complex or rapidly-evolving requirements. Without DI, you need to override large portions of the logic or create a lot of boilerplate code. By leveraging DI, you can override logic while still being able to upgrade to new versions of Oryx. -The key advantage of using Oryx's DI implementation is that it is vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features. +The key advantage of using Oryx's DI implementation is that it's vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features. ## Next step diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md index 82686e05cd3..2f357d4cbe1 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md @@ -14,7 +14,7 @@ To compose a frontend application from different backend APIs, Oryx provides a f ## Data models -In modern web applications, it is common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application. +In modern web applications, it's common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application. In the Oryx framework, adapters transform API responses into a client model. Adapters make HTTP requests to load data from APIs and provide normalizers or serializers to transform the data into a more readable format. This is especially important when working with complex data standards like JSON-API, as they can be difficult for a component to work with directly. diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactive-components.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactive-components.md index 34aff77d1d6..0b6730e1dd5 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactive-components.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactive-components.md @@ -18,7 +18,7 @@ export class ProductPriceComponent extends LitElement { } ``` -To ensure that components are reusable in different contexts, it is recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller. +To ensure that components are reusable in different contexts, it's recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller. `ProductController` resolves the product qualifier (SKU) from the context and returns an observable from `ProductService`. If an SKU is provided statically to the component, `ProductController` also takes `sku` as a component property into account. This can be useful in custom development or for demonstrating the component—for example, in a Storybook. diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactivity.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactivity.md index a0bf1d0ff83..472954e0ba7 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactivity.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactivity.md @@ -20,7 +20,7 @@ This is achieved by establishing a connection between the user interface and the Implementing reactivity in a web application is a complex challenge, especially in an SPA where data is loaded asynchronously and in real time from a backend API. Various components dynamically request the same data, and updates of the application state must be managed in a highly efficient way. -The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it is shown using a product component. +The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it's shown using a product component. {% include diagrams/oryx/reactivity-high-level.md %} diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/signals.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/signals.md index fbbeb20196d..85417a685fd 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/signals.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/signals.md @@ -117,7 +117,7 @@ class MyComponent extends LitElement {} This decorator is required to make a component work with signals as expected. With the decorator, the component automatically detects signals and renders changes whenever a signal alters. It does this intelligently, considering only the signals relevant to the last render. -Some Oryx domain components are not using this decorator directly, as it is already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`. +Some Oryx domain components are not using this decorator directly, as it's already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`. ### `@elementEffect` directive diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md index 3d4fbd91430..8120c83aaf5 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md @@ -119,7 +119,7 @@ appBuilder().withOptions({'your-feature-key': {...}}); ### Define default values for feature options -To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it is used when a user does not provide any option: +To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it's used when a user does not provide any option: ```ts import { AppFeature } from '@spryker-oryx/core'; diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md index a39b77ead6c..8dce2cc0707 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md @@ -114,7 +114,7 @@ You can create custom plugins to change the behavior of an Oryx application. The - `apply()`: main life-cycle method. - `destroy()`: Optional cleanup method. -When a plugin is registered to the Oryx application builder, it is _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured. +When a plugin is registered to the Oryx application builder, it's _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured. The following additional plugin life-cycle methods are invoked around the main lifecycle of _all_ plugins: diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-typography.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-typography.md index 406829e3edf..f73666307f0 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-typography.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-typography.md @@ -93,7 +93,7 @@ The headings get `margin: 0` to avoid any clashes in the component layout. ### Semantic HTML structure versus UI -The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it is considered a violation of accessibility best practices. +The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it's considered a violation of accessibility best practices. A valid structure, however, might conflict with the UI design. UI designers use the headings in combination with the layout, which means that their options are more advanced compared to the structure only. UI designers tend to ignore the structure and favor layout options to emphasize sections of a page. diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-component-types.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-component-types.md index 230042e35f0..6b5db465693 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-component-types.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-component-types.md @@ -42,7 +42,7 @@ Oryx functionality is organized in domains. Domain packages contain functional c Domain components leverage the design system components to ensure a consistent UI/UX. The design system components are integrated with inputs (properties), and all of their events are handled by domain components. -Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it is changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components. +Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it's changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components. Each domain package contains associated domain components. Product components, for example, are part of the `@spryker-oryx/ui` package. The components use a consistent naming convention for class and element names. For example, the Product Title component, is named `ProductTitleComponent` and can be used with the `` element. To avoid clashes with other frameworks, the elements are prefixed with `oryx-`. diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-implementing-components.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-implementing-components.md index 87ba7c6cd92..07a7a6df172 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-implementing-components.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-implementing-components.md @@ -8,7 +8,7 @@ redirect_from: --- -Oryx components are web components built with [Lit](https://lit.dev). Lit is a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit. +Oryx components are web components built with [Lit](https://lit.dev). Lit's a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit. ## Implementing a component @@ -155,7 +155,7 @@ If your application needs to be indexed by crawlers, such as Google Search or Pi When a component is server-side rendered, some of the browser APIs are not available. Most commonly known are the `window` and `document` objects. Take this into account when implementing custom components. -Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it is needed. +Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it's needed. When developing a component, you need to configure the hydration trigger using the `@hydrate` decorator that can take an event or context. The following example shows how to set up the component to be hydrated when the context is changed: diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-managing-component-options.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-managing-component-options.md index 4c220a0116d..9ba83207674 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-managing-component-options.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-managing-component-options.md @@ -121,7 +121,7 @@ protected override render(): TemplateResult { ## Using component options -To use component options asynchronously, it is important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals. +To use component options asynchronously, it's important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals. The following code shows how to use the `$options` signal. Because of the component option interface, the usage of the signal is type safe. diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-boilerplate.md b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-boilerplate.md index 19e100f83d3..ec7aaedc338 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-boilerplate.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-boilerplate.md @@ -64,7 +64,7 @@ The following is a breakdown of the different bits of the boilerplate code. ### `package.json` -`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it is a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies. +`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it's a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies. That being said, having unused dependencies in your project does _not_ affect the build time or run time of your project. It is only an overhead during the installation process. diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-technology.md b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-technology.md index a0070f107c7..9799a2c8f1e 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-technology.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-technology.md @@ -50,7 +50,7 @@ In Oryx, Web Components are used to create reusable UI components that can be us ## Lit -Lit is a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit is used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code. +Lit's a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit's used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code. You can use Lit to customize Oryx, but you can also use another framework to build web components. Advantages of using Lit: - Reusable component mixins and controllers. diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-versioning.md b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-versioning.md index 97e76d4573c..666e0a1fd0b 100644 --- a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-versioning.md +++ b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-versioning.md @@ -65,7 +65,7 @@ Oryx consists of a range of packages, applications, and tools. To avoid inadvert ## Backward compatibility -The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it is removed completely only after a few releases. +The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it's removed completely only after a few releases. Minor releases are fully backward compatible and do not require any developer assistance. diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/atomic-frontend.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/atomic-frontend.md index 851f9ff9d5d..593c7d40ba4 100644 --- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/atomic-frontend.md +++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/atomic-frontend.md @@ -58,7 +58,7 @@ Based on their structure and use, all components are divided into the following * *Atom*. These are the smallest, most basic building blocks of UI design. Typical examples of atoms are labels, input fields, or buttons. Usually, atoms are very abstract in their essence and limited to a single functionality that can be included in many pages. They are not very useful by themselves. Being the smallest building block of atomic design, atoms cannot include other components. * *Molecules*. Molecules typically include two or more atoms or other molecules bonded together to serve a single purpose. These structures are already complex enough to have their own properties; however, they must not be overcomplicated and built for wide reuse. * *Organisms*. Such components are rather specific and already provide sufficient context for the molecules and atoms they are composed of. Usually, organisms do not form a certain page, but they are rather specific as to what they do and what is their function. Typical examples of organisms can include a header, a footer, or a sidebar. Such components are already complex enough to be used directly on a page. -* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it is available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it is recommended to limit the use of widgets as much as possible in your projects. +* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it's available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it's recommended to limit the use of widgets as much as possible in your projects. * *Templates*. Templates can be viewed as combinations of components composed according to a specific graphic layout. They are used to define a visual schema for a set of pages. Typically, pages with a common template have the same structure and share most of the content with the exception of a small portion of page-specific or widget-specific information that changes from page to page. Thus, a template serves as a backbone that defines a set of shared components and the overall layout. Examples of templates are the main site layout or the checkout layout. * *Views*. This is the highest point in the frontend hierarchy. A view is a template filled with specific content for use in a specific case. It represents a specific page or widget. Views are the only components that can be called by the backend directly which means that they also serve as a connection point between the backend and frontend. On the backend side, views are always connected to controllers. @@ -289,7 +289,7 @@ When defining a component template with Twig, you need to use the following defa **Attributes:** * `name` (required). It specifies the component name. This name is also used as the main class name for the component; therefore, the HTML element and modifiers have this name as the base. - * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it is created automatically by prefing `js-` to the component name. + * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it's created automatically by prefing `js-` to the component name. * `tag` (optional). It specifies the HTML tag name for the component. Every component is defined in the DOM as an HTML class with its dedicated tag name. Therefore, a tag name must be specified. You can use either a standard HTML5 tag name (for example, `p` or `td`) or have a custom element tag name in order to attach Javascript behavior. To create a component with custom behavior defined in Javascript, Web Component specification, specify a custom tag name. If tag name is not specified, `div`is used by default. * `data`. It is the variable defining the data contract for the component. This variable is used the data contract for the component. The contract consists of the attributes required for the component to function properly. The attributes provided by this variable can be either required or optional. Required attributes must always be defined whenever a component is used, while optional ones can be left undefined. Nevertheless, by convention, attributes cannot have their value undefined. For this reason, if you define an optional attribute in your contract, you must set a default value for it. The default value is used if an attribute value is not set explicitly or by context. @@ -479,7 +479,7 @@ export default class ComponentName extends Component { } ``` -The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it is derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop: +The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it's derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop: ```ts // Import class SideDrawer @@ -499,7 +499,7 @@ The `index.ts` file is required to load the client-side of the component with We To register the component in the DOM, you need to use the `register` function of the shop application. It accepts two arguments: -* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it is used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component. +* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it's used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component. * `importer`. It must be a call of Webpack's import function to import Typescript code for the component. The call must include a Webpack magic comment that specifies which type of import you want for the component, 'lazy' or 'eager'. For details, see [Dynamic Imports](https://webpack.js.org/guides/code-splitting/#dynamic-imports). diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/customizing-spryker-frontend.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/customizing-spryker-frontend.md index 4dc1311a266..a63ad0768d3 100644 --- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/customizing-spryker-frontend.md +++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/customizing-spryker-frontend.md @@ -28,7 +28,7 @@ This guide reviews customizing Spryker UI on each of these levels. ## Twig -The visual layout of each component, whether it is a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend. +The visual layout of each component, whether it's a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend. For more information about Twig basics, see [Twig Homepage](https://twig.symfony.com/). diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md index 31e3add1192..6c85eb8d94e 100644 --- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md +++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md @@ -188,6 +188,6 @@ $('.any-target-selector').countdown('2100/01/01', function (event: any) { {% info_block errorBox %} -Make sure that it is invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated). +Make sure that it's invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated). {% endinfo_block %} diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/extending-components.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/extending-components.md index 823d82f3b81..0554c86063b 100644 --- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/extending-components.md +++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/extending-components.md @@ -22,7 +22,7 @@ Let us review the process of extending a component on the example of **side-draw ![Open side drawer](https://spryker.s3.eu-central-1.amazonaws.com/docs/Tutorials/Introduction/Customize+Frontend/open-side-drawer.png) -The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it is present on a page. Also, the component outlook will be different. +The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it's present on a page. Also, the component outlook will be different. ## 1. Create component folder @@ -66,7 +66,7 @@ Now, let us customize the template of the source component. The original templa Apart from changing the icon, we are going to use different colors. This can be done via styles. -First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it is a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin. +First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it's a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin. Let us create file `new-existing-component-side-drawer.scss`, include the original mixin of the _side-drawer_ component, and pass the class name of the new component we are creating: diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/overriding-components.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/overriding-components.md index 382ef41006f..075d3f83f8b 100644 --- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/overriding-components.md +++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/overriding-components.md @@ -41,7 +41,7 @@ To override the global component, the Twig file name on the project level must b } {% raw %}%}{% endraw %} ``` -Since the new component will be used everywhere instead of the global one, it is also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component. +Since the new component will be used everywhere instead of the global one, it's also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component. As we are not going to change the component template, let us copy the whole of the source twig implementation (`vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/simple-carousel/simple-carousel.twig`) to the project level (`src/Pyz/Yves/ShopUi/Theme/default/components/molecules/simple-carousel.twig`). The Twig file will look as follows: diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/using-components.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/using-components.md index b6f9784c011..bc257b0f176 100644 --- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/using-components.md +++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/using-components.md @@ -69,7 +69,7 @@ For more details, see section _Twig_ in [Atomic Frontend](/docs/dg/dev/frontend- ## Include -By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it is added. +By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it's added. The following block demonstrates how to include component `new-component-counter`. ```twig diff --git a/docs/dg/dev/frontend-development/202311.0/yves/frontend-assets-building-and-loading.md b/docs/dg/dev/frontend-development/202311.0/yves/frontend-assets-building-and-loading.md index a94bbee40fa..93528535952 100644 --- a/docs/dg/dev/frontend-development/202311.0/yves/frontend-assets-building-and-loading.md +++ b/docs/dg/dev/frontend-development/202311.0/yves/frontend-assets-building-and-loading.md @@ -22,7 +22,7 @@ To support the assets loading behavior as described above, most pages considered For the landing pages, there is the `page-critical-path` layout defining the asset's loading behavior. It is an extension of the `page-blank` layout with the overwritten `nonCriticalStyles` and `styleLazyLoader` blocks. The `page-critical-path` contains a `style-loader` component before the closing tag of ``. The `style-loader` component is responsible for loading the non-critical CSS only after the whole page is loaded. -The `page-critical-path` layout uses cookies to track whether it is the first session on the site. If it is the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used. +The `page-critical-path` layout uses cookies to track whether it's the first session on the site. If it's the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used. The main purpose of the page-critical-path layout is to use the CSS Lazy Load only for the landing pages. To enable the CSS Lazy Load for your project, see [Frontend CSS Lazy Load integration](/docs/dg/dev/integrate-and-configure/integrate-css-lazy-loading.html). @@ -46,7 +46,7 @@ A *polyfill* is a code that is used to provide modern functionality for older br ## Cache-busting mechanism -The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it is a development environment, the `assets` folder is in a public `assets` folder rather than a container. +The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it's a development environment, the `assets` folder is in a public `assets` folder rather than a container. ## `isCssLazyLoadSupported` Twig variable diff --git a/docs/dg/dev/frontend-development/202311.0/yves/frontend-builder-for-yves.md b/docs/dg/dev/frontend-development/202311.0/yves/frontend-builder-for-yves.md index 30a021c693c..396cbb51467 100644 --- a/docs/dg/dev/frontend-development/202311.0/yves/frontend-builder-for-yves.md +++ b/docs/dg/dev/frontend-development/202311.0/yves/frontend-builder-for-yves.md @@ -96,7 +96,7 @@ class TwigConfig extends SprykerTwigConfig All public assets are generated into `/public/Yves/` plus the path defined in the config file, which is `assets/%namespace%/%theme%/` by default. -For example, for the `DE` namespace and default theme, it is`/public/Yves/assets/DE/default/`. +For example, for the `DE` namespace and default theme, it's`/public/Yves/assets/DE/default/`. All incoming files (images, fonts, etc.) are copied from `global` (for every namespace) and `DE` folders: diff --git a/docs/dg/dev/frontend-development/202404.0/marketplace/angular-services.md b/docs/dg/dev/frontend-development/202404.0/marketplace/angular-services.md index 4f3f6c8acdc..cd8881a5dc9 100644 --- a/docs/dg/dev/frontend-development/202404.0/marketplace/angular-services.md +++ b/docs/dg/dev/frontend-development/202404.0/marketplace/angular-services.md @@ -20,7 +20,7 @@ This document describes what Angular Services are, how to create and use them. ## Introduction The Angular Services are stateless objects which provide useful functionality. These functions can be invoked from any component of Angular, such as Components and Directives. It enables services to organize and share business logic, models, data and functions with other components of an Angular application and thus divide the web application into small, reusable logical units. A service typically encapsulates a particular aspect/function of the system (HTTP, part of business logic). -Using Angular Services methods, the data is maintained throughout the life of an application, that is, it is never refreshed and is always available. +Using Angular Services methods, the data is maintained throughout the life of an application, that is, it's never refreshed and is always available. #### Component communication using Angular services diff --git a/docs/dg/dev/frontend-development/202404.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md b/docs/dg/dev/frontend-development/202404.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md index 1af2feaf23d..ff8232b5a92 100644 --- a/docs/dg/dev/frontend-development/202404.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md +++ b/docs/dg/dev/frontend-development/202404.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md @@ -37,7 +37,7 @@ This document explains the Table Feature Batch Actions component in the Componen Table Feature Batch Actions is a feature of the Table Component that allows triggering batch/multiple actions from rows. As Table Feature Batch Actions is based on the [Table Feature Selectable](/docs/dg/dev/frontend-development/{{page.version}}/marketplace/table-design/table-feature-extension/table-feature-selectable.html), batch actions must be registered and enabled via the table config. Batch actions are functions that can be performed on multiple items within a table. As soon as at least one row is selected in the table, the batch action bar with allowed actions appears at the top of the table. -To escape the `batch action mode`, it is necessary to unselect the table rows. +To escape the `batch action mode`, it's necessary to unselect the table rows. Check out an example usage of the Table Feature Batch Actions in the `@spryker/table` config. diff --git a/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/data-transformers/data-transformers.md b/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/data-transformers/data-transformers.md index 1fdbbfcd893..782bb5430ca 100644 --- a/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/data-transformers/data-transformers.md +++ b/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/data-transformers/data-transformers.md @@ -136,7 +136,7 @@ export class CustomDataTransformerService implements export class RootModule {} ``` -The context in which the Data Transformer operates is determined by the local injector where it is being used. +The context in which the Data Transformer operates is determined by the local injector where it's being used. ## Interfaces diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md index 10aecded4ec..8ea3cef5a23 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md @@ -34,7 +34,7 @@ In this example, the `inject` method is used to resolve a dependency based on a ## Multi-providers -Most dependencies in an application correspond to only one value, like a class. In some cases, it is useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers. +Most dependencies in an application correspond to only one value, like a class. In some cases, it's useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers. There are different types of multi-providers based on location an number of asterisks(`*`) in the name of their tokens. They are described in the following sections. diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection.md index facb315f087..d5a337bbeb8 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection.md @@ -14,7 +14,7 @@ Dependency injection (DI) is a design pattern that provides loosely-coupled, mai In the context of Oryx, DI enables you to customize logic deep inside the framework, which is particularly useful for projects with complex or rapidly-evolving requirements. Without DI, you need to override large portions of the logic or create a lot of boilerplate code. By leveraging DI, you can override logic while still being able to upgrade to new versions of Oryx. -The key advantage of using Oryx's DI implementation is that it is vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features. +The key advantage of using Oryx's DI implementation is that it's vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features. ## Next step diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md index 0db2e871329..e214b37efbe 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md @@ -14,7 +14,7 @@ To compose a frontend application from different backend APIs, Oryx provides a f ## Data models -In modern web applications, it is common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application. +In modern web applications, it's common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application. In the Oryx framework, adapters transform API responses into a client model. Adapters make HTTP requests to load data from APIs and provide normalizers or serializers to transform the data into a more readable format. This is especially important when working with complex data standards like JSON-API, as they can be difficult for a component to work with directly. diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactive-components.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactive-components.md index 9d96b7308ce..713bd391ca5 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactive-components.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactive-components.md @@ -18,7 +18,7 @@ export class ProductPriceComponent extends LitElement { } ``` -To ensure that components are reusable in different contexts, it is recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller. +To ensure that components are reusable in different contexts, it's recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller. `ProductController` resolves the product qualifier (SKU) from the context and returns an observable from `ProductService`. If an SKU is provided statically to the component, `ProductController` also takes `sku` as a component property into account. This can be useful in custom development or for demonstrating the component—for example, in a Storybook. diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactivity.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactivity.md index 1c9e8965ecb..4d96ab0184f 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactivity.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactivity.md @@ -20,7 +20,7 @@ This is achieved by establishing a connection between the user interface and the Implementing reactivity in a web application is a complex challenge, especially in an SPA where data is loaded asynchronously and in real time from a backend API. Various components dynamically request the same data, and updates of the application state must be managed in a highly efficient way. -The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it is shown using a product component. +The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it's shown using a product component. {% include diagrams/oryx/reactivity-high-level.md %} diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/signals.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/signals.md index 2e35806be3b..a6f92dcd9b7 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/signals.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/signals.md @@ -117,7 +117,7 @@ class MyComponent extends LitElement {} This decorator is required to make a component work with signals as expected. With the decorator, the component automatically detects signals and renders changes whenever a signal alters. It does this intelligently, considering only the signals relevant to the last render. -Some Oryx domain components are not using this decorator directly, as it is already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`. +Some Oryx domain components are not using this decorator directly, as it's already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`. ### `@elementEffect` directive diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md index 8ce85c89a88..79696bb5643 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md @@ -119,7 +119,7 @@ appBuilder().withOptions({'your-feature-key': {...}}); ### Define default values for feature options -To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it is used when a user does not provide any option: +To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it's used when a user does not provide any option: ```ts import { AppFeature } from '@spryker-oryx/core'; diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md index 12f074dd38a..557dfa5d512 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md @@ -114,7 +114,7 @@ You can create custom plugins to change the behavior of an Oryx application. The - `apply()`: main life-cycle method. - `destroy()`: Optional cleanup method. -When a plugin is registered to the Oryx application builder, it is _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured. +When a plugin is registered to the Oryx application builder, it's _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured. The following additional plugin life-cycle methods are invoked around the main lifecycle of _all_ plugins: diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-typography.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-typography.md index c794c492ac2..2bab0735ad3 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-typography.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-typography.md @@ -93,7 +93,7 @@ The headings get `margin: 0` to avoid any clashes in the component layout. ### Semantic HTML structure versus UI -The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it is considered a violation of accessibility best practices. +The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it's considered a violation of accessibility best practices. A valid structure, however, might conflict with the UI design. UI designers use the headings in combination with the layout, which means that their options are more advanced compared to the structure only. UI designers tend to ignore the structure and favor layout options to emphasize sections of a page. diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-component-types.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-component-types.md index bda740dc821..0b895bac855 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-component-types.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-component-types.md @@ -42,7 +42,7 @@ Oryx functionality is organized in domains. Domain packages contain functional c Domain components leverage the design system components to ensure a consistent UI/UX. The design system components are integrated with inputs (properties), and all of their events are handled by domain components. -Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it is changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components. +Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it's changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components. Each domain package contains associated domain components. Product components, for example, are part of the `@spryker-oryx/ui` package. The components use a consistent naming convention for class and element names. For example, the Product Title component, is named `ProductTitleComponent` and can be used with the `` element. To avoid clashes with other frameworks, the elements are prefixed with `oryx-`. diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-implementing-components.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-implementing-components.md index 91615773196..15f31cce932 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-implementing-components.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-implementing-components.md @@ -8,7 +8,7 @@ redirect_from: --- -Oryx components are web components built with [Lit](https://lit.dev). Lit is a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit. +Oryx components are web components built with [Lit](https://lit.dev). Lit's a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit. ## Implementing a component @@ -155,7 +155,7 @@ If your application needs to be indexed by crawlers, such as Google Search or Pi When a component is server-side rendered, some of the browser APIs are not available. Most commonly known are the `window` and `document` objects. Take this into account when implementing custom components. -Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it is needed. +Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it's needed. When developing a component, you need to configure the hydration trigger using the `@hydrate` decorator that can take an event or context. The following example shows how to set up the component to be hydrated when the context is changed: diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-managing-component-options.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-managing-component-options.md index d81b74f42de..6a1dd2177c9 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-managing-component-options.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-managing-component-options.md @@ -121,7 +121,7 @@ protected override render(): TemplateResult { ## Using component options -To use component options asynchronously, it is important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals. +To use component options asynchronously, it's important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals. The following code shows how to use the `$options` signal. Because of the component option interface, the usage of the signal is type safe. diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-boilerplate.md b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-boilerplate.md index 022ed2fe44a..83d8d871f18 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-boilerplate.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-boilerplate.md @@ -64,7 +64,7 @@ The following is a breakdown of the different bits of the boilerplate code. ### `package.json` -`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it is a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies. +`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it's a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies. That being said, having unused dependencies in your project does _not_ affect the build time or run time of your project. It is only an overhead during the installation process. diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-technology.md b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-technology.md index d2ee1d78eb9..c25c09d2d0c 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-technology.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-technology.md @@ -50,7 +50,7 @@ In Oryx, Web Components are used to create reusable UI components that can be us ## Lit -Lit is a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit is used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code. +Lit's a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit's used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code. You can use Lit to customize Oryx, but you can also use another framework to build web components. Advantages of using Lit: - Reusable component mixins and controllers. diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-versioning.md b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-versioning.md index 995ab038bd2..797ed43832c 100644 --- a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-versioning.md +++ b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-versioning.md @@ -65,7 +65,7 @@ Oryx consists of a range of packages, applications, and tools. To avoid inadvert ## Backward compatibility -The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it is removed completely only after a few releases. +The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it's removed completely only after a few releases. Minor releases are fully backward compatible and do not require any developer assistance. diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/atomic-frontend.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/atomic-frontend.md index 3aa5feaea62..323cf4ce9f2 100644 --- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/atomic-frontend.md +++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/atomic-frontend.md @@ -58,7 +58,7 @@ Based on their structure and use, all components are divided into the following * *Atom*. These are the smallest, most basic building blocks of UI design. Typical examples of atoms are labels, input fields, or buttons. Usually, atoms are very abstract in their essence and limited to a single functionality that can be included in many pages. They are not very useful by themselves. Being the smallest building block of atomic design, atoms cannot include other components. * *Molecules*. Molecules typically include two or more atoms or other molecules bonded together to serve a single purpose. These structures are already complex enough to have their own properties; however, they must not be overcomplicated and built for wide reuse. * *Organisms*. Such components are rather specific and already provide sufficient context for the molecules and atoms they are composed of. Usually, organisms do not form a certain page, but they are rather specific as to what they do and what is their function. Typical examples of organisms can include a header, a footer, or a sidebar. Such components are already complex enough to be used directly on a page. -* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it is available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it is recommended to limit the use of widgets as much as possible in your projects. +* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it's available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it's recommended to limit the use of widgets as much as possible in your projects. * *Templates*. Templates can be viewed as combinations of components composed according to a specific graphic layout. They are used to define a visual schema for a set of pages. Typically, pages with a common template have the same structure and share most of the content with the exception of a small portion of page-specific or widget-specific information that changes from page to page. Thus, a template serves as a backbone that defines a set of shared components and the overall layout. Examples of templates are the main site layout or the checkout layout. * *Views*. This is the highest point in the frontend hierarchy. A view is a template filled with specific content for use in a specific case. It represents a specific page or widget. Views are the only components that can be called by the backend directly which means that they also serve as a connection point between the backend and frontend. On the backend side, views are always connected to controllers. @@ -289,7 +289,7 @@ When defining a component template with Twig, you need to use the following defa **Attributes:** * `name` (required). It specifies the component name. This name is also used as the main class name for the component; therefore, the HTML element and modifiers have this name as the base. - * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it is created automatically by prefing `js-` to the component name. + * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it's created automatically by prefing `js-` to the component name. * `tag` (optional). It specifies the HTML tag name for the component. Every component is defined in the DOM as an HTML class with its dedicated tag name. Therefore, a tag name must be specified. You can use either a standard HTML5 tag name (for example, `p` or `td`) or have a custom element tag name in order to attach Javascript behavior. To create a component with custom behavior defined in Javascript, Web Component specification, specify a custom tag name. If tag name is not specified, `div`is used by default. * `data`. It is the variable defining the data contract for the component. This variable is used the data contract for the component. The contract consists of the attributes required for the component to function properly. The attributes provided by this variable can be either required or optional. Required attributes must always be defined whenever a component is used, while optional ones can be left undefined. Nevertheless, by convention, attributes cannot have their value undefined. For this reason, if you define an optional attribute in your contract, you must set a default value for it. The default value is used if an attribute value is not set explicitly or by context. @@ -479,7 +479,7 @@ export default class ComponentName extends Component { } ``` -The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it is derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop: +The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it's derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop: ```ts // Import class SideDrawer @@ -499,7 +499,7 @@ The `index.ts` file is required to load the client-side of the component with We To register the component in the DOM, you need to use the `register` function of the shop application. It accepts two arguments: -* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it is used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component. +* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it's used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component. * `importer`. It must be a call of Webpack's import function to import Typescript code for the component. The call must include a Webpack magic comment that specifies which type of import you want for the component, 'lazy' or 'eager'. For details, see [Dynamic Imports](https://webpack.js.org/guides/code-splitting/#dynamic-imports). diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/customizing-spryker-frontend.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/customizing-spryker-frontend.md index 911ac245cbe..12203951932 100644 --- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/customizing-spryker-frontend.md +++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/customizing-spryker-frontend.md @@ -28,7 +28,7 @@ This guide reviews customizing Spryker UI on each of these levels. ## Twig -The visual layout of each component, whether it is a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend. +The visual layout of each component, whether it's a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend. For more information about Twig basics, see [Twig Homepage](https://twig.symfony.com/). diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md index fc8eccca8b7..cb44cbd1c0a 100644 --- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md +++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md @@ -188,6 +188,6 @@ $('.any-target-selector').countdown('2100/01/01', function (event: any) { {% info_block errorBox %} -Make sure that it is invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated). +Make sure that it's invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated). {% endinfo_block %} diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/extending-components.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/extending-components.md index 1a5cac4ad49..d08fc90800d 100644 --- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/extending-components.md +++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/extending-components.md @@ -22,7 +22,7 @@ Let us review the process of extending a component on the example of **side-draw ![Open side drawer](https://spryker.s3.eu-central-1.amazonaws.com/docs/Tutorials/Introduction/Customize+Frontend/open-side-drawer.png) -The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it is present on a page. Also, the component outlook will be different. +The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it's present on a page. Also, the component outlook will be different. ## 1. Create component folder @@ -66,7 +66,7 @@ Now, let us customize the template of the source component. The original templa Apart from changing the icon, we are going to use different colors. This can be done via styles. -First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it is a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin. +First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it's a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin. Let us create file `new-existing-component-side-drawer.scss`, include the original mixin of the _side-drawer_ component, and pass the class name of the new component we are creating: diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/overriding-components.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/overriding-components.md index b9ac523e243..6b85b5418ab 100644 --- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/overriding-components.md +++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/overriding-components.md @@ -41,7 +41,7 @@ To override the global component, the Twig file name on the project level must b } {% raw %}%}{% endraw %} ``` -Since the new component will be used everywhere instead of the global one, it is also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component. +Since the new component will be used everywhere instead of the global one, it's also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component. As we are not going to change the component template, let us copy the whole of the source twig implementation (`vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/simple-carousel/simple-carousel.twig`) to the project level (`src/Pyz/Yves/ShopUi/Theme/default/components/molecules/simple-carousel.twig`). The Twig file will look as follows: diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/using-components.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/using-components.md index 852c69e44c1..977b802188e 100644 --- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/using-components.md +++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/using-components.md @@ -69,7 +69,7 @@ For more details, see section _Twig_ in [Atomic Frontend](/docs/dg/dev/frontend- ## Include -By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it is added. +By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it's added. The following block demonstrates how to include component `new-component-counter`. ```twig diff --git a/docs/dg/dev/frontend-development/202404.0/yves/frontend-assets-building-and-loading.md b/docs/dg/dev/frontend-development/202404.0/yves/frontend-assets-building-and-loading.md index 966cf259ab7..e07950afa2d 100644 --- a/docs/dg/dev/frontend-development/202404.0/yves/frontend-assets-building-and-loading.md +++ b/docs/dg/dev/frontend-development/202404.0/yves/frontend-assets-building-and-loading.md @@ -22,7 +22,7 @@ To support the assets loading behavior as described above, most pages considered For the landing pages, there is the `page-critical-path` layout defining the asset's loading behavior. It is an extension of the `page-blank` layout with the overwritten `nonCriticalStyles` and `styleLazyLoader` blocks. The `page-critical-path` contains a `style-loader` component before the closing tag of ``. The `style-loader` component is responsible for loading the non-critical CSS only after the whole page is loaded. -The `page-critical-path` layout uses cookies to track whether it is the first session on the site. If it is the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used. +The `page-critical-path` layout uses cookies to track whether it's the first session on the site. If it's the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used. The main purpose of the page-critical-path layout is to use the CSS Lazy Load only for the landing pages. To enable the CSS Lazy Load for your project, see [Frontend CSS Lazy Load integration](/docs/dg/dev/integrate-and-configure/integrate-css-lazy-loading.html). @@ -46,7 +46,7 @@ A *polyfill* is a code that is used to provide modern functionality for older br ## Cache-busting mechanism -The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it is a development environment, the `assets` folder is in a public `assets` folder rather than a container. +The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it's a development environment, the `assets` folder is in a public `assets` folder rather than a container. ## `isCssLazyLoadSupported` Twig variable diff --git a/docs/dg/dev/frontend-development/202404.0/yves/frontend-builder-for-yves.md b/docs/dg/dev/frontend-development/202404.0/yves/frontend-builder-for-yves.md index 6ccda4b48a1..a27c71d7059 100644 --- a/docs/dg/dev/frontend-development/202404.0/yves/frontend-builder-for-yves.md +++ b/docs/dg/dev/frontend-development/202404.0/yves/frontend-builder-for-yves.md @@ -96,7 +96,7 @@ class TwigConfig extends SprykerTwigConfig All public assets are generated into `/public/Yves/` plus the path defined in the config file, which is `assets/%namespace%/%theme%/` by default. -For example, for the `DE` namespace and default theme, it is`/public/Yves/assets/DE/default/`. +For example, for the `DE` namespace and default theme, it's`/public/Yves/assets/DE/default/`. All incoming files (images, fonts, etc.) are copied from `global` (for every namespace) and `DE` folders: diff --git a/docs/dg/dev/frontend-development/202410.0/marketplace/angular-services.md b/docs/dg/dev/frontend-development/202410.0/marketplace/angular-services.md index 4f3f6c8acdc..cd8881a5dc9 100644 --- a/docs/dg/dev/frontend-development/202410.0/marketplace/angular-services.md +++ b/docs/dg/dev/frontend-development/202410.0/marketplace/angular-services.md @@ -20,7 +20,7 @@ This document describes what Angular Services are, how to create and use them. ## Introduction The Angular Services are stateless objects which provide useful functionality. These functions can be invoked from any component of Angular, such as Components and Directives. It enables services to organize and share business logic, models, data and functions with other components of an Angular application and thus divide the web application into small, reusable logical units. A service typically encapsulates a particular aspect/function of the system (HTTP, part of business logic). -Using Angular Services methods, the data is maintained throughout the life of an application, that is, it is never refreshed and is always available. +Using Angular Services methods, the data is maintained throughout the life of an application, that is, it's never refreshed and is always available. #### Component communication using Angular services diff --git a/docs/dg/dev/frontend-development/202410.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md b/docs/dg/dev/frontend-development/202410.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md index 1af2feaf23d..ff8232b5a92 100644 --- a/docs/dg/dev/frontend-development/202410.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md +++ b/docs/dg/dev/frontend-development/202410.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md @@ -37,7 +37,7 @@ This document explains the Table Feature Batch Actions component in the Componen Table Feature Batch Actions is a feature of the Table Component that allows triggering batch/multiple actions from rows. As Table Feature Batch Actions is based on the [Table Feature Selectable](/docs/dg/dev/frontend-development/{{page.version}}/marketplace/table-design/table-feature-extension/table-feature-selectable.html), batch actions must be registered and enabled via the table config. Batch actions are functions that can be performed on multiple items within a table. As soon as at least one row is selected in the table, the batch action bar with allowed actions appears at the top of the table. -To escape the `batch action mode`, it is necessary to unselect the table rows. +To escape the `batch action mode`, it's necessary to unselect the table rows. Check out an example usage of the Table Feature Batch Actions in the `@spryker/table` config. diff --git a/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/data-transformers/data-transformers.md b/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/data-transformers/data-transformers.md index 1fdbbfcd893..782bb5430ca 100644 --- a/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/data-transformers/data-transformers.md +++ b/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/data-transformers/data-transformers.md @@ -136,7 +136,7 @@ export class CustomDataTransformerService implements export class RootModule {} ``` -The context in which the Data Transformer operates is determined by the local injector where it is being used. +The context in which the Data Transformer operates is determined by the local injector where it's being used. ## Interfaces diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md index 10aecded4ec..8ea3cef5a23 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md @@ -34,7 +34,7 @@ In this example, the `inject` method is used to resolve a dependency based on a ## Multi-providers -Most dependencies in an application correspond to only one value, like a class. In some cases, it is useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers. +Most dependencies in an application correspond to only one value, like a class. In some cases, it's useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers. There are different types of multi-providers based on location an number of asterisks(`*`) in the name of their tokens. They are described in the following sections. diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection.md index facb315f087..d5a337bbeb8 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection.md @@ -14,7 +14,7 @@ Dependency injection (DI) is a design pattern that provides loosely-coupled, mai In the context of Oryx, DI enables you to customize logic deep inside the framework, which is particularly useful for projects with complex or rapidly-evolving requirements. Without DI, you need to override large portions of the logic or create a lot of boilerplate code. By leveraging DI, you can override logic while still being able to upgrade to new versions of Oryx. -The key advantage of using Oryx's DI implementation is that it is vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features. +The key advantage of using Oryx's DI implementation is that it's vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features. ## Next step diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md index 0db2e871329..e214b37efbe 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md @@ -14,7 +14,7 @@ To compose a frontend application from different backend APIs, Oryx provides a f ## Data models -In modern web applications, it is common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application. +In modern web applications, it's common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application. In the Oryx framework, adapters transform API responses into a client model. Adapters make HTTP requests to load data from APIs and provide normalizers or serializers to transform the data into a more readable format. This is especially important when working with complex data standards like JSON-API, as they can be difficult for a component to work with directly. diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactive-components.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactive-components.md index 9d96b7308ce..713bd391ca5 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactive-components.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactive-components.md @@ -18,7 +18,7 @@ export class ProductPriceComponent extends LitElement { } ``` -To ensure that components are reusable in different contexts, it is recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller. +To ensure that components are reusable in different contexts, it's recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller. `ProductController` resolves the product qualifier (SKU) from the context and returns an observable from `ProductService`. If an SKU is provided statically to the component, `ProductController` also takes `sku` as a component property into account. This can be useful in custom development or for demonstrating the component—for example, in a Storybook. diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactivity.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactivity.md index 1c9e8965ecb..4d96ab0184f 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactivity.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactivity.md @@ -20,7 +20,7 @@ This is achieved by establishing a connection between the user interface and the Implementing reactivity in a web application is a complex challenge, especially in an SPA where data is loaded asynchronously and in real time from a backend API. Various components dynamically request the same data, and updates of the application state must be managed in a highly efficient way. -The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it is shown using a product component. +The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it's shown using a product component. {% include diagrams/oryx/reactivity-high-level.md %} diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/signals.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/signals.md index 2e35806be3b..a6f92dcd9b7 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/signals.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/signals.md @@ -117,7 +117,7 @@ class MyComponent extends LitElement {} This decorator is required to make a component work with signals as expected. With the decorator, the component automatically detects signals and renders changes whenever a signal alters. It does this intelligently, considering only the signals relevant to the last render. -Some Oryx domain components are not using this decorator directly, as it is already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`. +Some Oryx domain components are not using this decorator directly, as it's already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`. ### `@elementEffect` directive diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md index 8ce85c89a88..79696bb5643 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md @@ -119,7 +119,7 @@ appBuilder().withOptions({'your-feature-key': {...}}); ### Define default values for feature options -To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it is used when a user does not provide any option: +To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it's used when a user does not provide any option: ```ts import { AppFeature } from '@spryker-oryx/core'; diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md index 12f074dd38a..557dfa5d512 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md @@ -114,7 +114,7 @@ You can create custom plugins to change the behavior of an Oryx application. The - `apply()`: main life-cycle method. - `destroy()`: Optional cleanup method. -When a plugin is registered to the Oryx application builder, it is _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured. +When a plugin is registered to the Oryx application builder, it's _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured. The following additional plugin life-cycle methods are invoked around the main lifecycle of _all_ plugins: diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-typography.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-typography.md index c794c492ac2..2bab0735ad3 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-typography.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-typography.md @@ -93,7 +93,7 @@ The headings get `margin: 0` to avoid any clashes in the component layout. ### Semantic HTML structure versus UI -The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it is considered a violation of accessibility best practices. +The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it's considered a violation of accessibility best practices. A valid structure, however, might conflict with the UI design. UI designers use the headings in combination with the layout, which means that their options are more advanced compared to the structure only. UI designers tend to ignore the structure and favor layout options to emphasize sections of a page. diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-component-types.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-component-types.md index bda740dc821..0b895bac855 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-component-types.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-component-types.md @@ -42,7 +42,7 @@ Oryx functionality is organized in domains. Domain packages contain functional c Domain components leverage the design system components to ensure a consistent UI/UX. The design system components are integrated with inputs (properties), and all of their events are handled by domain components. -Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it is changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components. +Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it's changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components. Each domain package contains associated domain components. Product components, for example, are part of the `@spryker-oryx/ui` package. The components use a consistent naming convention for class and element names. For example, the Product Title component, is named `ProductTitleComponent` and can be used with the `` element. To avoid clashes with other frameworks, the elements are prefixed with `oryx-`. diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-implementing-components.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-implementing-components.md index 91615773196..15f31cce932 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-implementing-components.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-implementing-components.md @@ -8,7 +8,7 @@ redirect_from: --- -Oryx components are web components built with [Lit](https://lit.dev). Lit is a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit. +Oryx components are web components built with [Lit](https://lit.dev). Lit's a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit. ## Implementing a component @@ -155,7 +155,7 @@ If your application needs to be indexed by crawlers, such as Google Search or Pi When a component is server-side rendered, some of the browser APIs are not available. Most commonly known are the `window` and `document` objects. Take this into account when implementing custom components. -Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it is needed. +Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it's needed. When developing a component, you need to configure the hydration trigger using the `@hydrate` decorator that can take an event or context. The following example shows how to set up the component to be hydrated when the context is changed: diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-managing-component-options.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-managing-component-options.md index d81b74f42de..6a1dd2177c9 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-managing-component-options.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-managing-component-options.md @@ -121,7 +121,7 @@ protected override render(): TemplateResult { ## Using component options -To use component options asynchronously, it is important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals. +To use component options asynchronously, it's important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals. The following code shows how to use the `$options` signal. Because of the component option interface, the usage of the signal is type safe. diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-boilerplate.md b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-boilerplate.md index 022ed2fe44a..83d8d871f18 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-boilerplate.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-boilerplate.md @@ -64,7 +64,7 @@ The following is a breakdown of the different bits of the boilerplate code. ### `package.json` -`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it is a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies. +`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it's a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies. That being said, having unused dependencies in your project does _not_ affect the build time or run time of your project. It is only an overhead during the installation process. diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-technology.md b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-technology.md index 416c00096c3..e5610dd1252 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-technology.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-technology.md @@ -50,7 +50,7 @@ In Oryx, Web Components are used to create reusable UI components that can be us ## Lit -Lit is a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit is used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code. +Lit's a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit's used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code. You can use Lit to customize Oryx, but you can also use another framework to build web components. Advantages of using Lit: - Reusable component mixins and controllers. diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-versioning.md b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-versioning.md index 995ab038bd2..797ed43832c 100644 --- a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-versioning.md +++ b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-versioning.md @@ -65,7 +65,7 @@ Oryx consists of a range of packages, applications, and tools. To avoid inadvert ## Backward compatibility -The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it is removed completely only after a few releases. +The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it's removed completely only after a few releases. Minor releases are fully backward compatible and do not require any developer assistance. diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/atomic-frontend.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/atomic-frontend.md index 3aa5feaea62..323cf4ce9f2 100644 --- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/atomic-frontend.md +++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/atomic-frontend.md @@ -58,7 +58,7 @@ Based on their structure and use, all components are divided into the following * *Atom*. These are the smallest, most basic building blocks of UI design. Typical examples of atoms are labels, input fields, or buttons. Usually, atoms are very abstract in their essence and limited to a single functionality that can be included in many pages. They are not very useful by themselves. Being the smallest building block of atomic design, atoms cannot include other components. * *Molecules*. Molecules typically include two or more atoms or other molecules bonded together to serve a single purpose. These structures are already complex enough to have their own properties; however, they must not be overcomplicated and built for wide reuse. * *Organisms*. Such components are rather specific and already provide sufficient context for the molecules and atoms they are composed of. Usually, organisms do not form a certain page, but they are rather specific as to what they do and what is their function. Typical examples of organisms can include a header, a footer, or a sidebar. Such components are already complex enough to be used directly on a page. -* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it is available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it is recommended to limit the use of widgets as much as possible in your projects. +* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it's available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it's recommended to limit the use of widgets as much as possible in your projects. * *Templates*. Templates can be viewed as combinations of components composed according to a specific graphic layout. They are used to define a visual schema for a set of pages. Typically, pages with a common template have the same structure and share most of the content with the exception of a small portion of page-specific or widget-specific information that changes from page to page. Thus, a template serves as a backbone that defines a set of shared components and the overall layout. Examples of templates are the main site layout or the checkout layout. * *Views*. This is the highest point in the frontend hierarchy. A view is a template filled with specific content for use in a specific case. It represents a specific page or widget. Views are the only components that can be called by the backend directly which means that they also serve as a connection point between the backend and frontend. On the backend side, views are always connected to controllers. @@ -289,7 +289,7 @@ When defining a component template with Twig, you need to use the following defa **Attributes:** * `name` (required). It specifies the component name. This name is also used as the main class name for the component; therefore, the HTML element and modifiers have this name as the base. - * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it is created automatically by prefing `js-` to the component name. + * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it's created automatically by prefing `js-` to the component name. * `tag` (optional). It specifies the HTML tag name for the component. Every component is defined in the DOM as an HTML class with its dedicated tag name. Therefore, a tag name must be specified. You can use either a standard HTML5 tag name (for example, `p` or `td`) or have a custom element tag name in order to attach Javascript behavior. To create a component with custom behavior defined in Javascript, Web Component specification, specify a custom tag name. If tag name is not specified, `div`is used by default. * `data`. It is the variable defining the data contract for the component. This variable is used the data contract for the component. The contract consists of the attributes required for the component to function properly. The attributes provided by this variable can be either required or optional. Required attributes must always be defined whenever a component is used, while optional ones can be left undefined. Nevertheless, by convention, attributes cannot have their value undefined. For this reason, if you define an optional attribute in your contract, you must set a default value for it. The default value is used if an attribute value is not set explicitly or by context. @@ -479,7 +479,7 @@ export default class ComponentName extends Component { } ``` -The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it is derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop: +The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it's derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop: ```ts // Import class SideDrawer @@ -499,7 +499,7 @@ The `index.ts` file is required to load the client-side of the component with We To register the component in the DOM, you need to use the `register` function of the shop application. It accepts two arguments: -* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it is used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component. +* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it's used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component. * `importer`. It must be a call of Webpack's import function to import Typescript code for the component. The call must include a Webpack magic comment that specifies which type of import you want for the component, 'lazy' or 'eager'. For details, see [Dynamic Imports](https://webpack.js.org/guides/code-splitting/#dynamic-imports). diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/customizing-spryker-frontend.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/customizing-spryker-frontend.md index 911ac245cbe..12203951932 100644 --- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/customizing-spryker-frontend.md +++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/customizing-spryker-frontend.md @@ -28,7 +28,7 @@ This guide reviews customizing Spryker UI on each of these levels. ## Twig -The visual layout of each component, whether it is a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend. +The visual layout of each component, whether it's a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend. For more information about Twig basics, see [Twig Homepage](https://twig.symfony.com/). diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md index fc8eccca8b7..cb44cbd1c0a 100644 --- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md +++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md @@ -188,6 +188,6 @@ $('.any-target-selector').countdown('2100/01/01', function (event: any) { {% info_block errorBox %} -Make sure that it is invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated). +Make sure that it's invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated). {% endinfo_block %} diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/extending-components.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/extending-components.md index 1a5cac4ad49..d08fc90800d 100644 --- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/extending-components.md +++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/extending-components.md @@ -22,7 +22,7 @@ Let us review the process of extending a component on the example of **side-draw ![Open side drawer](https://spryker.s3.eu-central-1.amazonaws.com/docs/Tutorials/Introduction/Customize+Frontend/open-side-drawer.png) -The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it is present on a page. Also, the component outlook will be different. +The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it's present on a page. Also, the component outlook will be different. ## 1. Create component folder @@ -66,7 +66,7 @@ Now, let us customize the template of the source component. The original templa Apart from changing the icon, we are going to use different colors. This can be done via styles. -First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it is a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin. +First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it's a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin. Let us create file `new-existing-component-side-drawer.scss`, include the original mixin of the _side-drawer_ component, and pass the class name of the new component we are creating: diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/overriding-components.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/overriding-components.md index b9ac523e243..6b85b5418ab 100644 --- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/overriding-components.md +++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/overriding-components.md @@ -41,7 +41,7 @@ To override the global component, the Twig file name on the project level must b } {% raw %}%}{% endraw %} ``` -Since the new component will be used everywhere instead of the global one, it is also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component. +Since the new component will be used everywhere instead of the global one, it's also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component. As we are not going to change the component template, let us copy the whole of the source twig implementation (`vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/simple-carousel/simple-carousel.twig`) to the project level (`src/Pyz/Yves/ShopUi/Theme/default/components/molecules/simple-carousel.twig`). The Twig file will look as follows: diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/using-components.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/using-components.md index 852c69e44c1..977b802188e 100644 --- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/using-components.md +++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/using-components.md @@ -69,7 +69,7 @@ For more details, see section _Twig_ in [Atomic Frontend](/docs/dg/dev/frontend- ## Include -By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it is added. +By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it's added. The following block demonstrates how to include component `new-component-counter`. ```twig diff --git a/docs/dg/dev/frontend-development/202410.0/yves/frontend-assets-building-and-loading.md b/docs/dg/dev/frontend-development/202410.0/yves/frontend-assets-building-and-loading.md index 966cf259ab7..e07950afa2d 100644 --- a/docs/dg/dev/frontend-development/202410.0/yves/frontend-assets-building-and-loading.md +++ b/docs/dg/dev/frontend-development/202410.0/yves/frontend-assets-building-and-loading.md @@ -22,7 +22,7 @@ To support the assets loading behavior as described above, most pages considered For the landing pages, there is the `page-critical-path` layout defining the asset's loading behavior. It is an extension of the `page-blank` layout with the overwritten `nonCriticalStyles` and `styleLazyLoader` blocks. The `page-critical-path` contains a `style-loader` component before the closing tag of ``. The `style-loader` component is responsible for loading the non-critical CSS only after the whole page is loaded. -The `page-critical-path` layout uses cookies to track whether it is the first session on the site. If it is the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used. +The `page-critical-path` layout uses cookies to track whether it's the first session on the site. If it's the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used. The main purpose of the page-critical-path layout is to use the CSS Lazy Load only for the landing pages. To enable the CSS Lazy Load for your project, see [Frontend CSS Lazy Load integration](/docs/dg/dev/integrate-and-configure/integrate-css-lazy-loading.html). @@ -46,7 +46,7 @@ A *polyfill* is a code that is used to provide modern functionality for older br ## Cache-busting mechanism -The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it is a development environment, the `assets` folder is in a public `assets` folder rather than a container. +The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it's a development environment, the `assets` folder is in a public `assets` folder rather than a container. ## `isCssLazyLoadSupported` Twig variable diff --git a/docs/dg/dev/frontend-development/202410.0/yves/frontend-builder-for-yves.md b/docs/dg/dev/frontend-development/202410.0/yves/frontend-builder-for-yves.md index 6ccda4b48a1..a27c71d7059 100644 --- a/docs/dg/dev/frontend-development/202410.0/yves/frontend-builder-for-yves.md +++ b/docs/dg/dev/frontend-development/202410.0/yves/frontend-builder-for-yves.md @@ -96,7 +96,7 @@ class TwigConfig extends SprykerTwigConfig All public assets are generated into `/public/Yves/` plus the path defined in the config file, which is `assets/%namespace%/%theme%/` by default. -For example, for the `DE` namespace and default theme, it is`/public/Yves/assets/DE/default/`. +For example, for the `DE` namespace and default theme, it's`/public/Yves/assets/DE/default/`. All incoming files (images, fonts, etc.) are copied from `global` (for every namespace) and `DE` folders: diff --git a/docs/dg/dev/glue-api/202311.0/authentication-and-authorization.md b/docs/dg/dev/glue-api/202311.0/authentication-and-authorization.md index a8aa3fcc1e8..e4cb049e89f 100644 --- a/docs/dg/dev/glue-api/202311.0/authentication-and-authorization.md +++ b/docs/dg/dev/glue-api/202311.0/authentication-and-authorization.md @@ -17,7 +17,7 @@ redirect_from: --- -For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API. +For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API. To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header. diff --git a/docs/dg/dev/glue-api/202311.0/configure-the-included-section.md b/docs/dg/dev/glue-api/202311.0/configure-the-included-section.md index b2b727facd9..f43ea49f5ab 100644 --- a/docs/dg/dev/glue-api/202311.0/configure-the-included-section.md +++ b/docs/dg/dev/glue-api/202311.0/configure-the-included-section.md @@ -34,7 +34,7 @@ By default, the option is enabled on the Spryker Core level but disabled on th {% info_block infoBox %} -For the purposes of boosting the API performance and bandwidth usage optimization, it is recommended to request only the information you need. +For the purposes of boosting the API performance and bandwidth usage optimization, it's recommended to request only the information you need. {% endinfo_block %} diff --git a/docs/dg/dev/glue-api/202311.0/decoupled-glue-api.md b/docs/dg/dev/glue-api/202311.0/decoupled-glue-api.md index a7fbeb2a42b..954c6052f22 100644 --- a/docs/dg/dev/glue-api/202311.0/decoupled-glue-api.md +++ b/docs/dg/dev/glue-api/202311.0/decoupled-glue-api.md @@ -76,7 +76,7 @@ Upon receiving an API request, an API context transfer is created where we set u First, we hydrate `GlueRequestTransfer` with data from the `Request` object. This includes request body, query params, headers, and attributes. -Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it isn't found, the application uses the requested and accepted format to prepare request and response data. +Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it'sn't found, the application uses the requested and accepted format to prepare request and response data. With hydrated `GlueRequestTransfer` and selected or not convention, the application executes `RequestFlowExecutor`. diff --git a/docs/dg/dev/glue-api/202311.0/glue-api-tutorials/document-glue-api-resources.md b/docs/dg/dev/glue-api/202311.0/glue-api-tutorials/document-glue-api-resources.md index b20a98714a4..9a5e03efbaf 100644 --- a/docs/dg/dev/glue-api/202311.0/glue-api-tutorials/document-glue-api-resources.md +++ b/docs/dg/dev/glue-api/202311.0/glue-api-tutorials/document-glue-api-resources.md @@ -65,7 +65,7 @@ vendor/bin/console rest-api:generate:documentation --- ``` -When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it is `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`. +When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it's `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`. ## 3. Describe your REST API: Requests and responses @@ -167,7 +167,7 @@ The following table describes the annotation keys: | --- | --- | --- | | `getResourceById` | When set to `true`, indicates a `GET` endpoint that returns a single resource—for example, _`/wishlists/{ID}. *`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. | | `getCollection` | When set to `true`, indicates a `GET` endpoint that returns a collection of resources—for example, _`/wishlists.*`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. | -| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it is generated automatically. | +| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it's generated automatically. | | `parameters` | Sets optional parameters for the request. | Parameters can be passed in HTTP headers, queries, cookies, or as a part of the resource URI. For more information about parameter use and the available fields, in Swagger official documentation, see [Operation Object](https://swagger.io/specification/#parameterObject). | | `responses` | Use this parameter to describe all responses that can be generated by this endpoint and their respective response codes. | The `default` response is included automatically. There is no need to include it here. | | `responseAttributesClassName` | Sets the FQCN of a custom transfer class that represents the response object. | Use this annotation when a response object is different from the corresponding request object. | @@ -236,6 +236,6 @@ vendor/bin/console rest-api:generate:documentation When the command completes, you can see a specification file generated in the directory with the filename you configure in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). -By default, it is `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses. +By default, it's `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses. To get a visual representation of your API or use it in tools like Postman (with the OpenAPI v.3 support) for development purposes, you can upload the file to [Swagger Editor](https://editor.swagger.io/). diff --git a/docs/dg/dev/glue-api/202311.0/glue-spryks.md b/docs/dg/dev/glue-api/202311.0/glue-spryks.md index 1a736e02022..7c002d3300c 100644 --- a/docs/dg/dev/glue-api/202311.0/glue-spryks.md +++ b/docs/dg/dev/glue-api/202311.0/glue-spryks.md @@ -43,8 +43,8 @@ To call a Spryk, you can use the following console commands: | `AddGlueDeleteResource` | Adds a new `DELETE` Resource to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the type of API resources that will be deleted.
  • **clientModule** - specifies the module that provides the functionality to delete the items represented by the given API resources. The module must have the *Client* layer.
  • **clientMethod** - specifies the method in the *clientModule* that will be used to delete the items represented by the given API resources.
| | `AddGluePatchResource` | Adds a new `PATCH` Resource to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the type of API resources that will be modified.
  • **clientModule** - specifies the module that provides the functionality to modify the items represented by the given API resources. The module must have the *Client* layer.
  • **clientMethod** - specifies the method in the *clientModule* that will be used to modify the items represented by the given API resources.
| | `AddGluePostResource` | Adds a new `POST` Resource to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the type of API resources that will be created.
  • **clientModule** - specifies the module that provides the functionality to create the items represented by the given API resources. The module must have the *Client* layer.
  • **clientMethod** - specifies the method in the *clientModule* that will be used to create the items represented by the given API resources.
| -| `AddGlueResource` | Adds a new resource to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the Interface suffix.
| -| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the `Interface` suffix.
| +| `AddGlueResource` | Adds a new resource to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the Interface suffix.
| +| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the `Interface` suffix.
| ## Routing management @@ -131,8 +131,8 @@ For more details, see section **Controller management** in [Glue Infrastructur | SPRYK | DESCRIPTION | | --- | --- | -| `AddGlueProcessorModel` | Adds a new processor model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| -| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| +| `AddGlueProcessorModel` | Adds a new processor model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| +| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| | `AddGlueProcessorModelMethod` | Adds a new method to the given processor model.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model class is located.
  • **className** - specifies the class name of the model.
  • **input** - specifies the name of the *input* (`@param`) value of the method.
  • **output** - specifies the name of the *output* (`@return`) value of the method.
| | `AddGlueProcessorModelInterfaceMethod` | Adds a new method to the given processor model interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the `Processor` directory where the interface class is located.
  • **className** - specifies the class name of the model.
  • **input** - specifies the name of the *input* (`@param`) value of the method.
  • **output** - specifies the name of the *output* (`@return`) value of the method.
| @@ -140,8 +140,8 @@ For more details, see section **Controller management** in [Glue Infrastructur | SPRYK | DESCRIPTION | | --- | --- | -| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
    The default subdirectory is `Mapper`.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| -| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created.
    The default subdirectory is **Mapper**.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the **Interface** suffix.
| +| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
    The default subdirectory is `Mapper`.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| +| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created.
    The default subdirectory is **Mapper**.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the **Interface** suffix.
| | `AddGlueResourceMapperMethod` | Adds a new method to the given resource mapper model.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the resource type that will be mapped with this method.
  • **fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
  • **toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties.
    The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
| | `AddGlueResourceMapperInterfaceMethod` | Adds a new method to the resource mapper model interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the resource type that will be mapped with this method.
  • **fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
  • **toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties.
    The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
| @@ -155,8 +155,8 @@ For more details, see section **Generic Rest Response** in [Glue Infrastructure | SPRYK | DESCRIPTION | | --- | --- | -| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the model.
    By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it is the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| -| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the interface.
    By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it is the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| +| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the model.
    By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it's the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| +| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the interface.
    By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it's the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| ## Adding validation diff --git a/docs/dg/dev/glue-api/202311.0/integrate-a-ciam-provider.md b/docs/dg/dev/glue-api/202311.0/integrate-a-ciam-provider.md index 803177d67a5..d3062f2e6f8 100644 --- a/docs/dg/dev/glue-api/202311.0/integrate-a-ciam-provider.md +++ b/docs/dg/dev/glue-api/202311.0/integrate-a-ciam-provider.md @@ -302,7 +302,7 @@ In the `OauthApi` module, extend the access token validation step with your CIAM ``` Adjust `OauthApiFactory` and `OauthApiDependencyProvider` to include the CIAM provider service. -In the implementation example, it is `Pyz\Service\CiamProvider\CiamProviderServiceInterface`. +In the implementation example, it's `Pyz\Service\CiamProvider\CiamProviderServiceInterface`. The following example extends `AccessTokenValidator` to validate the authorization header using the CIAM provider parser: diff --git a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md index 80d46800d3a..454f93274ef 100644 --- a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md +++ b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md @@ -30,7 +30,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see {% endinfo_block %} -[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API. +[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API. To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header. diff --git a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-security-and-authentication.md b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-security-and-authentication.md index 54a68c3546d..00bc2b24ed7 100644 --- a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-security-and-authentication.md +++ b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-security-and-authentication.md @@ -26,7 +26,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see {% endinfo_block %} -When exposing information via Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. +When exposing information via Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. The authorization mechanism provided by the Glue is flexible and allows you to define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information, but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH and DELETE verbs will require user authentication to use. @@ -141,7 +141,7 @@ All data related to API authentication functionality is stored in the following |TABLE| PURPOSE| | --- | --- | -| spy_oauth_access_token| Stores all issued tokens.
The table is not used for token verification, it is added for audit purposes only. | +| spy_oauth_access_token| Stores all issued tokens.
The table is not used for token verification, it's added for audit purposes only. | | spy_oauth_client|Contains a list of clients that are currently using OAuth, one record for each frontend customer. The `is_confidental` field identifies whether a specific client must provide a password. | | spy_oauth_scope | Stores user scopes.| diff --git a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-infrastructure.md b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-infrastructure.md index 4b5e929aac0..fc2228602ce 100644 --- a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-infrastructure.md +++ b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-infrastructure.md @@ -109,9 +109,9 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency ### Resource modules -A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it is recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably. +A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it's recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably. -Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it is always safer to extend the relevant _Resource module_ than infrastructure. +Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it's always safer to extend the relevant _Resource module_ than infrastructure. #### Module structure @@ -207,7 +207,7 @@ Business errors are returned as the `RestErrorMessageTransfer` objects with the ### Nested resources -Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it is necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context. +Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it's necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context. #### ResourceWithParentPluginInterface diff --git a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-rest-api.md b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-rest-api.md index 132e44eff01..5f182049304 100644 --- a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-rest-api.md +++ b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-rest-api.md @@ -43,7 +43,7 @@ For more details, see REST API reference: ## B2C API React example -To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it is based on our customers' interests. The app is single-page application based on a React JS library. +To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it's based on our customers' interests. The app is single-page application based on a React JS library. It delivers a full customer experience from browsing the catalog to placing an order. The application helps you understand how you can use the predefined APIs to create a B2C user experience. As an example, the full power of Elasticsearch, which is already present in our [B2B](/docs/about/all/b2b-suite.html) and [B2C Demo Shops](/docs/about/all/b2c-suite.html), is leveraged through dedicated endpoints to deliver catalog search functionality with autocompletion, autosuggestion, facets, sorting, and pagination. @@ -57,7 +57,7 @@ For more deatails about installing and running, see [B2C API React example](/doc Glue API helps you to connect your Spryker Commerce OS with new or existing touch points. These touchpoints can be headless like voice commerce devices and chat bots, or they may come with a user interface like a mobile app. Alternative front ends also benefit from the APIs. Here are some examples: * New frontend: Build a new frontend or use a frontend framework like Progressive Web Apps and power it by the Glue API. -* Mobile app: a mobile app, no matter if it is native, hybrid or just a web-view, can support the same functionality as the existing demo shops do. +* Mobile app: a mobile app, no matter if it's native, hybrid or just a web-view, can support the same functionality as the existing demo shops do. * Voice commerce: Leverage the APIs for order history to inform your customers about the status of their delivery. * Chatbot: Use chatbots to identify the customer that are trying to reach out to you and help them answer basic questions about your products. diff --git a/docs/dg/dev/glue-api/202311.0/routing/create-routes.md b/docs/dg/dev/glue-api/202311.0/routing/create-routes.md index 3ce9cfc0a5f..67326d9b978 100644 --- a/docs/dg/dev/glue-api/202311.0/routing/create-routes.md +++ b/docs/dg/dev/glue-api/202311.0/routing/create-routes.md @@ -50,7 +50,7 @@ class ModuleBarController extends AbstractController ``` -Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it is done everywhere in Spryker. +Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it's done everywhere in Spryker. {% info_block infoBox %} diff --git a/docs/dg/dev/glue-api/202311.0/security-and-authentication.md b/docs/dg/dev/glue-api/202311.0/security-and-authentication.md index 60111bb8941..33cdaa5ff7b 100644 --- a/docs/dg/dev/glue-api/202311.0/security-and-authentication.md +++ b/docs/dg/dev/glue-api/202311.0/security-and-authentication.md @@ -11,7 +11,7 @@ redirect_from: --- -When exposing information through Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. +When exposing information through Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. The authorization mechanism provided by the Glue is flexible and lets you define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data, and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH, and DELETE verbs require user authentication to use. diff --git a/docs/dg/dev/glue-api/202311.0/use-default-glue-parameters.md b/docs/dg/dev/glue-api/202311.0/use-default-glue-parameters.md index 3dc5a7863c8..68d13519471 100644 --- a/docs/dg/dev/glue-api/202311.0/use-default-glue-parameters.md +++ b/docs/dg/dev/glue-api/202311.0/use-default-glue-parameters.md @@ -21,7 +21,7 @@ The Glue JSON:API convention provides some parameter parsing out of the box. The ## Pagination -Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit is the number of records to display, and offset is the number of records to skip. Here is an example: +Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit's the number of records to display, and offset is the number of records to skip. Here is an example: ``` ?page[offset]=0&page[limit]=10 # display 10 records starting at 0 (AKA page #1) @@ -58,7 +58,7 @@ $glueResponseTransfer->getPagination()->setNbResults(); ## Sorting -Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it is ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`. +Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it's ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`. To get an order, you can read it from `$glueRequestTransfer->getSortings()`, which returns an array of `SortTransfer`, each containing field to be sorted. Use it to sort data when querying from persistence. @@ -74,4 +74,4 @@ You can reduce the amount of data returned by using sparse fields. Clients can p When processing a request, you can get this by accessing `$glueRequestTransfer->getQueryFields()`. This returns an array of strings. -When building response attributes that are not within the fields, the list is removed, even if it is populated by resource processing. +When building response attributes that are not within the fields, the list is removed, even if it's populated by resource processing. diff --git a/docs/dg/dev/glue-api/202404.0/authentication-and-authorization.md b/docs/dg/dev/glue-api/202404.0/authentication-and-authorization.md index 4ff5081a949..0c3704aa4d9 100644 --- a/docs/dg/dev/glue-api/202404.0/authentication-and-authorization.md +++ b/docs/dg/dev/glue-api/202404.0/authentication-and-authorization.md @@ -17,7 +17,7 @@ redirect_from: --- -For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API. +For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API. To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header. diff --git a/docs/dg/dev/glue-api/202404.0/configure-the-included-section.md b/docs/dg/dev/glue-api/202404.0/configure-the-included-section.md index 51bb714054a..87e2c466196 100644 --- a/docs/dg/dev/glue-api/202404.0/configure-the-included-section.md +++ b/docs/dg/dev/glue-api/202404.0/configure-the-included-section.md @@ -34,7 +34,7 @@ By default, the option is enabled on the Spryker Core level but disabled on th {% info_block infoBox %} -For the purposes of boosting the API performance and bandwidth usage optimization, it is recommended to request only the information you need. +For the purposes of boosting the API performance and bandwidth usage optimization, it's recommended to request only the information you need. {% endinfo_block %} diff --git a/docs/dg/dev/glue-api/202404.0/decoupled-glue-api.md b/docs/dg/dev/glue-api/202404.0/decoupled-glue-api.md index feccb86fefd..33472b7f9fb 100644 --- a/docs/dg/dev/glue-api/202404.0/decoupled-glue-api.md +++ b/docs/dg/dev/glue-api/202404.0/decoupled-glue-api.md @@ -76,7 +76,7 @@ Upon receiving an API request, an API context transfer is created where we set u First, we hydrate `GlueRequestTransfer` with data from the `Request` object. This includes request body, query params, headers, and attributes. -Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it isn't found, the application uses the requested and accepted format to prepare request and response data. +Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it'sn't found, the application uses the requested and accepted format to prepare request and response data. With hydrated `GlueRequestTransfer` and selected or not convention, the application executes `RequestFlowExecutor`. diff --git a/docs/dg/dev/glue-api/202404.0/glue-api-tutorials/document-glue-api-resources.md b/docs/dg/dev/glue-api/202404.0/glue-api-tutorials/document-glue-api-resources.md index 0fc5223eb65..33b153d442a 100644 --- a/docs/dg/dev/glue-api/202404.0/glue-api-tutorials/document-glue-api-resources.md +++ b/docs/dg/dev/glue-api/202404.0/glue-api-tutorials/document-glue-api-resources.md @@ -65,7 +65,7 @@ vendor/bin/console rest-api:generate:documentation --- ``` -When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it is `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`. +When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it's `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`. ## 3. Describe your REST API: Requests and responses @@ -167,7 +167,7 @@ The following table describes the annotation keys: | --- | --- | --- | | `getResourceById` | When set to `true`, indicates a `GET` endpoint that returns a single resource—for example, _`/wishlists/{ID}. *`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. | | `getCollection` | When set to `true`, indicates a `GET` endpoint that returns a collection of resources—for example, _`/wishlists.*`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. | -| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it is generated automatically. | +| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it's generated automatically. | | `parameters` | Sets optional parameters for the request. | Parameters can be passed in HTTP headers, queries, cookies, or as a part of the resource URI. For more information about parameter use and the available fields, in Swagger official documentation, see [Operation Object](https://swagger.io/specification/#parameterObject). | | `responses` | Use this parameter to describe all responses that can be generated by this endpoint and their respective response codes. | The `default` response is included automatically. There is no need to include it here. | | `responseAttributesClassName` | Sets the FQCN of a custom transfer class that represents the response object. | Use this annotation when a response object is different from the corresponding request object. | @@ -236,6 +236,6 @@ vendor/bin/console rest-api:generate:documentation When the command completes, you can see a specification file generated in the directory with the filename you configure in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). -By default, it is `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses. +By default, it's `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses. To get a visual representation of your API or use it in tools like Postman (with the OpenAPI v.3 support) for development purposes, you can upload the file to [Swagger Editor](https://editor.swagger.io/). diff --git a/docs/dg/dev/glue-api/202404.0/glue-spryks.md b/docs/dg/dev/glue-api/202404.0/glue-spryks.md index dcc706b86f0..e96aa225bab 100644 --- a/docs/dg/dev/glue-api/202404.0/glue-spryks.md +++ b/docs/dg/dev/glue-api/202404.0/glue-spryks.md @@ -43,8 +43,8 @@ To call a Spryk, you can use the following console commands: | `AddGlueDeleteResource` | Adds a new `DELETE` Resource to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the type of API resources that will be deleted.
  • **clientModule** - specifies the module that provides the functionality to delete the items represented by the given API resources. The module must have the *Client* layer.
  • **clientMethod** - specifies the method in the *clientModule* that will be used to delete the items represented by the given API resources.
| | `AddGluePatchResource` | Adds a new `PATCH` Resource to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the type of API resources that will be modified.
  • **clientModule** - specifies the module that provides the functionality to modify the items represented by the given API resources. The module must have the *Client* layer.
  • **clientMethod** - specifies the method in the *clientModule* that will be used to modify the items represented by the given API resources.
| | `AddGluePostResource` | Adds a new `POST` Resource to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the type of API resources that will be created.
  • **clientModule** - specifies the module that provides the functionality to create the items represented by the given API resources. The module must have the *Client* layer.
  • **clientMethod** - specifies the method in the *clientModule* that will be used to create the items represented by the given API resources.
| -| `AddGlueResource` | Adds a new resource to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the Interface suffix.
| -| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the `Interface` suffix.
| +| `AddGlueResource` | Adds a new resource to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the Interface suffix.
| +| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the `Interface` suffix.
| ## Routing management @@ -131,8 +131,8 @@ For more details, see section **Controller management** in [Glue Infrastructur | SPRYK | DESCRIPTION | | --- | --- | -| `AddGlueProcessorModel` | Adds a new processor model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| -| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| +| `AddGlueProcessorModel` | Adds a new processor model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| +| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| | `AddGlueProcessorModelMethod` | Adds a new method to the given processor model.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model class is located.
  • **className** - specifies the class name of the model.
  • **input** - specifies the name of the *input* (`@param`) value of the method.
  • **output** - specifies the name of the *output* (`@return`) value of the method.
| | `AddGlueProcessorModelInterfaceMethod` | Adds a new method to the given processor model interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the `Processor` directory where the interface class is located.
  • **className** - specifies the class name of the model.
  • **input** - specifies the name of the *input* (`@param`) value of the method.
  • **output** - specifies the name of the *output* (`@return`) value of the method.
| @@ -140,8 +140,8 @@ For more details, see section **Controller management** in [Glue Infrastructur | SPRYK | DESCRIPTION | | --- | --- | -| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
    The default subdirectory is `Mapper`.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| -| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created.
    The default subdirectory is **Mapper**.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the **Interface** suffix.
| +| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
    The default subdirectory is `Mapper`.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| +| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created.
    The default subdirectory is **Mapper**.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the **Interface** suffix.
| | `AddGlueResourceMapperMethod` | Adds a new method to the given resource mapper model.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the resource type that will be mapped with this method.
  • **fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
  • **toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties.
    The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
| | `AddGlueResourceMapperInterfaceMethod` | Adds a new method to the resource mapper model interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the resource type that will be mapped with this method.
  • **fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
  • **toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties.
    The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
| @@ -155,8 +155,8 @@ For more details, see section **Generic Rest Response** in [Glue Infrastructure | SPRYK | DESCRIPTION | | --- | --- | -| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the model.
    By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it is the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| -| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the interface.
    By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it is the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| +| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the model.
    By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it's the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| +| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the interface.
    By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it's the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| ## Adding validation diff --git a/docs/dg/dev/glue-api/202404.0/integrate-a-ciam-provider.md b/docs/dg/dev/glue-api/202404.0/integrate-a-ciam-provider.md index 611f6d78690..8beaa44e70a 100644 --- a/docs/dg/dev/glue-api/202404.0/integrate-a-ciam-provider.md +++ b/docs/dg/dev/glue-api/202404.0/integrate-a-ciam-provider.md @@ -302,7 +302,7 @@ In the `OauthApi` module, extend the access token validation step with your CIAM ``` Adjust `OauthApiFactory` and `OauthApiDependencyProvider` to include the CIAM provider service. -In the implementation example, it is `Pyz\Service\CiamProvider\CiamProviderServiceInterface`. +In the implementation example, it's `Pyz\Service\CiamProvider\CiamProviderServiceInterface`. The following example extends `AccessTokenValidator` to validate the authorization header using the CIAM provider parser: diff --git a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md index 50d3cc3eed0..8496b52f9da 100644 --- a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md +++ b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md @@ -30,7 +30,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see {% endinfo_block %} -[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API. +[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API. To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header. diff --git a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-security-and-authentication.md b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-security-and-authentication.md index dc879b9ff6a..3021cec08f0 100644 --- a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-security-and-authentication.md +++ b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-security-and-authentication.md @@ -26,7 +26,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see {% endinfo_block %} -When exposing information via Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. +When exposing information via Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. The authorization mechanism provided by the Glue is flexible and allows you to define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information, but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH and DELETE verbs will require user authentication to use. @@ -141,7 +141,7 @@ All data related to API authentication functionality is stored in the following |TABLE| PURPOSE| | --- | --- | -| spy_oauth_access_token| Stores all issued tokens.
The table is not used for token verification, it is added for audit purposes only. | +| spy_oauth_access_token| Stores all issued tokens.
The table is not used for token verification, it's added for audit purposes only. | | spy_oauth_client|Contains a list of clients that are currently using OAuth, one record for each frontend customer. The `is_confidental` field identifies whether a specific client must provide a password. | | spy_oauth_scope | Stores user scopes.| diff --git a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-infrastructure.md b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-infrastructure.md index 34a5cf694ee..56ca972fa59 100644 --- a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-infrastructure.md +++ b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-infrastructure.md @@ -109,9 +109,9 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency ### Resource modules -A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it is recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably. +A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it's recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably. -Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it is always safer to extend the relevant _Resource module_ than infrastructure. +Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it's always safer to extend the relevant _Resource module_ than infrastructure. #### Module structure @@ -207,7 +207,7 @@ Business errors are returned as the `RestErrorMessageTransfer` objects with the ### Nested resources -Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it is necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context. +Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it's necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context. #### ResourceWithParentPluginInterface diff --git a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-rest-api.md b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-rest-api.md index 5ef4b1001a1..0f45c9aae33 100644 --- a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-rest-api.md +++ b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-rest-api.md @@ -43,7 +43,7 @@ For more details, see REST API reference: ## B2C API React example -To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it is based on our customers' interests. The app is single-page application based on a React JS library. +To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it's based on our customers' interests. The app is single-page application based on a React JS library. It delivers a full customer experience from browsing the catalog to placing an order. The application helps you understand how you can use the predefined APIs to create a B2C user experience. As an example, the full power of Elasticsearch, which is already present in our [B2B](/docs/about/all/b2b-suite.html) and [B2C Demo Shops](/docs/about/all/b2c-suite.html), is leveraged through dedicated endpoints to deliver catalog search functionality with autocompletion, autosuggestion, facets, sorting, and pagination. @@ -57,7 +57,7 @@ For more deatails about installing and running, see [B2C API React example](/doc Glue API helps you to connect your Spryker Commerce OS with new or existing touch points. These touchpoints can be headless like voice commerce devices and chat bots, or they may come with a user interface like a mobile app. Alternative front ends also benefit from the APIs. Here are some examples: * New frontend: Build a new frontend or use a frontend framework like Progressive Web Apps and power it by the Glue API. -* Mobile app: a mobile app, no matter if it is native, hybrid or just a web-view, can support the same functionality as the existing demo shops do. +* Mobile app: a mobile app, no matter if it's native, hybrid or just a web-view, can support the same functionality as the existing demo shops do. * Voice commerce: Leverage the APIs for order history to inform your customers about the status of their delivery. * Chatbot: Use chatbots to identify the customer that are trying to reach out to you and help them answer basic questions about your products. diff --git a/docs/dg/dev/glue-api/202404.0/routing/create-routes.md b/docs/dg/dev/glue-api/202404.0/routing/create-routes.md index 5d58084c0af..f3548a395ea 100644 --- a/docs/dg/dev/glue-api/202404.0/routing/create-routes.md +++ b/docs/dg/dev/glue-api/202404.0/routing/create-routes.md @@ -50,7 +50,7 @@ class ModuleBarController extends AbstractController ``` -Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it is done everywhere in Spryker. +Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it's done everywhere in Spryker. {% info_block infoBox %} diff --git a/docs/dg/dev/glue-api/202404.0/security-and-authentication.md b/docs/dg/dev/glue-api/202404.0/security-and-authentication.md index 06de5af5c95..8ba29bedfb0 100644 --- a/docs/dg/dev/glue-api/202404.0/security-and-authentication.md +++ b/docs/dg/dev/glue-api/202404.0/security-and-authentication.md @@ -11,7 +11,7 @@ redirect_from: --- -When exposing information through Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. +When exposing information through Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. The authorization mechanism provided by the Glue is flexible and lets you define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data, and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH, and DELETE verbs require user authentication to use. diff --git a/docs/dg/dev/glue-api/202404.0/use-default-glue-parameters.md b/docs/dg/dev/glue-api/202404.0/use-default-glue-parameters.md index cbfe35f9bd4..6b71f5d0fd6 100644 --- a/docs/dg/dev/glue-api/202404.0/use-default-glue-parameters.md +++ b/docs/dg/dev/glue-api/202404.0/use-default-glue-parameters.md @@ -21,7 +21,7 @@ The Glue JSON:API convention provides some parameter parsing out of the box. The ## Pagination -Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit is the number of records to display, and offset is the number of records to skip. Here is an example: +Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit's the number of records to display, and offset is the number of records to skip. Here is an example: ``` ?page[offset]=0&page[limit]=10 # display 10 records starting at 0 (AKA page #1) @@ -58,7 +58,7 @@ $glueResponseTransfer->getPagination()->setNbResults(); ## Sorting -Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it is ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`. +Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it's ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`. To get an order, you can read it from `$glueRequestTransfer->getSortings()`, which returns an array of `SortTransfer`, each containing field to be sorted. Use it to sort data when querying from persistence. @@ -74,4 +74,4 @@ You can reduce the amount of data returned by using sparse fields. Clients can p When processing a request, you can get this by accessing `$glueRequestTransfer->getQueryFields()`. This returns an array of strings. -When building response attributes that are not within the fields, the list is removed, even if it is populated by resource processing. +When building response attributes that are not within the fields, the list is removed, even if it's populated by resource processing. diff --git a/docs/dg/dev/glue-api/202410.0/authentication-and-authorization.md b/docs/dg/dev/glue-api/202410.0/authentication-and-authorization.md index 4ff5081a949..0c3704aa4d9 100644 --- a/docs/dg/dev/glue-api/202410.0/authentication-and-authorization.md +++ b/docs/dg/dev/glue-api/202410.0/authentication-and-authorization.md @@ -17,7 +17,7 @@ redirect_from: --- -For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API. +For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API. To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header. diff --git a/docs/dg/dev/glue-api/202410.0/configure-the-included-section.md b/docs/dg/dev/glue-api/202410.0/configure-the-included-section.md index 51bb714054a..87e2c466196 100644 --- a/docs/dg/dev/glue-api/202410.0/configure-the-included-section.md +++ b/docs/dg/dev/glue-api/202410.0/configure-the-included-section.md @@ -34,7 +34,7 @@ By default, the option is enabled on the Spryker Core level but disabled on th {% info_block infoBox %} -For the purposes of boosting the API performance and bandwidth usage optimization, it is recommended to request only the information you need. +For the purposes of boosting the API performance and bandwidth usage optimization, it's recommended to request only the information you need. {% endinfo_block %} diff --git a/docs/dg/dev/glue-api/202410.0/decoupled-glue-api.md b/docs/dg/dev/glue-api/202410.0/decoupled-glue-api.md index feccb86fefd..33472b7f9fb 100644 --- a/docs/dg/dev/glue-api/202410.0/decoupled-glue-api.md +++ b/docs/dg/dev/glue-api/202410.0/decoupled-glue-api.md @@ -76,7 +76,7 @@ Upon receiving an API request, an API context transfer is created where we set u First, we hydrate `GlueRequestTransfer` with data from the `Request` object. This includes request body, query params, headers, and attributes. -Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it isn't found, the application uses the requested and accepted format to prepare request and response data. +Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it'sn't found, the application uses the requested and accepted format to prepare request and response data. With hydrated `GlueRequestTransfer` and selected or not convention, the application executes `RequestFlowExecutor`. diff --git a/docs/dg/dev/glue-api/202410.0/glue-api-tutorials/document-glue-api-resources.md b/docs/dg/dev/glue-api/202410.0/glue-api-tutorials/document-glue-api-resources.md index 0fc5223eb65..33b153d442a 100644 --- a/docs/dg/dev/glue-api/202410.0/glue-api-tutorials/document-glue-api-resources.md +++ b/docs/dg/dev/glue-api/202410.0/glue-api-tutorials/document-glue-api-resources.md @@ -65,7 +65,7 @@ vendor/bin/console rest-api:generate:documentation --- ``` -When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it is `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`. +When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it's `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`. ## 3. Describe your REST API: Requests and responses @@ -167,7 +167,7 @@ The following table describes the annotation keys: | --- | --- | --- | | `getResourceById` | When set to `true`, indicates a `GET` endpoint that returns a single resource—for example, _`/wishlists/{ID}. *`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. | | `getCollection` | When set to `true`, indicates a `GET` endpoint that returns a collection of resources—for example, _`/wishlists.*`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. | -| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it is generated automatically. | +| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it's generated automatically. | | `parameters` | Sets optional parameters for the request. | Parameters can be passed in HTTP headers, queries, cookies, or as a part of the resource URI. For more information about parameter use and the available fields, in Swagger official documentation, see [Operation Object](https://swagger.io/specification/#parameterObject). | | `responses` | Use this parameter to describe all responses that can be generated by this endpoint and their respective response codes. | The `default` response is included automatically. There is no need to include it here. | | `responseAttributesClassName` | Sets the FQCN of a custom transfer class that represents the response object. | Use this annotation when a response object is different from the corresponding request object. | @@ -236,6 +236,6 @@ vendor/bin/console rest-api:generate:documentation When the command completes, you can see a specification file generated in the directory with the filename you configure in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). -By default, it is `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses. +By default, it's `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses. To get a visual representation of your API or use it in tools like Postman (with the OpenAPI v.3 support) for development purposes, you can upload the file to [Swagger Editor](https://editor.swagger.io/). diff --git a/docs/dg/dev/glue-api/202410.0/glue-spryks.md b/docs/dg/dev/glue-api/202410.0/glue-spryks.md index dcc706b86f0..e96aa225bab 100644 --- a/docs/dg/dev/glue-api/202410.0/glue-spryks.md +++ b/docs/dg/dev/glue-api/202410.0/glue-spryks.md @@ -43,8 +43,8 @@ To call a Spryk, you can use the following console commands: | `AddGlueDeleteResource` | Adds a new `DELETE` Resource to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the type of API resources that will be deleted.
  • **clientModule** - specifies the module that provides the functionality to delete the items represented by the given API resources. The module must have the *Client* layer.
  • **clientMethod** - specifies the method in the *clientModule* that will be used to delete the items represented by the given API resources.
| | `AddGluePatchResource` | Adds a new `PATCH` Resource to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the type of API resources that will be modified.
  • **clientModule** - specifies the module that provides the functionality to modify the items represented by the given API resources. The module must have the *Client* layer.
  • **clientMethod** - specifies the method in the *clientModule* that will be used to modify the items represented by the given API resources.
| | `AddGluePostResource` | Adds a new `POST` Resource to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the type of API resources that will be created.
  • **clientModule** - specifies the module that provides the functionality to create the items represented by the given API resources. The module must have the *Client* layer.
  • **clientMethod** - specifies the method in the *clientModule* that will be used to create the items represented by the given API resources.
| -| `AddGlueResource` | Adds a new resource to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the Interface suffix.
| -| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the `Interface` suffix.
| +| `AddGlueResource` | Adds a new resource to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the Interface suffix.
| +| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the name of the module.
  • **applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.

**Spryk-Specific Arguments:**

  • **className** - specifies the PHP class name for the resource.
  • **interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the `Interface` suffix.
| ## Routing management @@ -131,8 +131,8 @@ For more details, see section **Controller management** in [Glue Infrastructur | SPRYK | DESCRIPTION | | --- | --- | -| `AddGlueProcessorModel` | Adds a new processor model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| -| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| +| `AddGlueProcessorModel` | Adds a new processor model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| +| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| | `AddGlueProcessorModelMethod` | Adds a new method to the given processor model.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model class is located.
  • **className** - specifies the class name of the model.
  • **input** - specifies the name of the *input* (`@param`) value of the method.
  • **output** - specifies the name of the *output* (`@return`) value of the method.
| | `AddGlueProcessorModelInterfaceMethod` | Adds a new method to the given processor model interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the `Processor` directory where the interface class is located.
  • **className** - specifies the class name of the model.
  • **input** - specifies the name of the *input* (`@param`) value of the method.
  • **output** - specifies the name of the *output* (`@return`) value of the method.
| @@ -140,8 +140,8 @@ For more details, see section **Controller management** in [Glue Infrastructur | SPRYK | DESCRIPTION | | --- | --- | -| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
    The default subdirectory is `Mapper`.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| -| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created.
    The default subdirectory is **Mapper**.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the **Interface** suffix.
| +| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
    The default subdirectory is `Mapper`.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| +| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created.
    The default subdirectory is **Mapper**.
  • **className** - specifies the class name for the model.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the **Interface** suffix.
| | `AddGlueResourceMapperMethod` | Adds a new method to the given resource mapper model.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the resource type that will be mapped with this method.
  • **fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
  • **toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties.
    The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
| | `AddGlueResourceMapperInterfaceMethod` | Adds a new method to the resource mapper model interface.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization:** name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **resourceType** - specifies the resource type that will be mapped with this method.
  • **fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
  • **toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties.
    The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
| @@ -155,8 +155,8 @@ For more details, see section **Generic Rest Response** in [Glue Infrastructure | SPRYK | DESCRIPTION | | --- | --- | -| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the model.
    By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it is the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| -| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the interface.
    By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it is the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it is the same as the class name plus the `Interface` suffix.
| +| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the model.
    By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it's the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| +| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module.
**Arguments**

**General Arguments:**

  • **mode** - *project* or *core*.
    The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
  • **organization** - specifies the name of the organization for which to perform the operation.
    The default is **Pyz**.
  • **module** - specifies the module name.

**Spryk-Specific Arguments:**

  • **subDirectory** - specifies the name of the subdirectory where to create the interface.
    By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
  • **resourceType** - specifies the resource type.
  • **className** - specifies the class name for the model.
    By default, it's the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
  • **interfaceName** - specifies the interface name for the model.
    By default, it's the same as the class name plus the `Interface` suffix.
| ## Adding validation diff --git a/docs/dg/dev/glue-api/202410.0/integrate-a-ciam-provider.md b/docs/dg/dev/glue-api/202410.0/integrate-a-ciam-provider.md index 611f6d78690..8beaa44e70a 100644 --- a/docs/dg/dev/glue-api/202410.0/integrate-a-ciam-provider.md +++ b/docs/dg/dev/glue-api/202410.0/integrate-a-ciam-provider.md @@ -302,7 +302,7 @@ In the `OauthApi` module, extend the access token validation step with your CIAM ``` Adjust `OauthApiFactory` and `OauthApiDependencyProvider` to include the CIAM provider service. -In the implementation example, it is `Pyz\Service\CiamProvider\CiamProviderServiceInterface`. +In the implementation example, it's `Pyz\Service\CiamProvider\CiamProviderServiceInterface`. The following example extends `AccessTokenValidator` to validate the authorization header using the CIAM provider parser: diff --git a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md index 50d3cc3eed0..8496b52f9da 100644 --- a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md +++ b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md @@ -30,7 +30,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see {% endinfo_block %} -[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API. +[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API. To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header. diff --git a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-security-and-authentication.md b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-security-and-authentication.md index dc879b9ff6a..3021cec08f0 100644 --- a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-security-and-authentication.md +++ b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-security-and-authentication.md @@ -26,7 +26,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see {% endinfo_block %} -When exposing information via Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. +When exposing information via Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. The authorization mechanism provided by the Glue is flexible and allows you to define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information, but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH and DELETE verbs will require user authentication to use. @@ -141,7 +141,7 @@ All data related to API authentication functionality is stored in the following |TABLE| PURPOSE| | --- | --- | -| spy_oauth_access_token| Stores all issued tokens.
The table is not used for token verification, it is added for audit purposes only. | +| spy_oauth_access_token| Stores all issued tokens.
The table is not used for token verification, it's added for audit purposes only. | | spy_oauth_client|Contains a list of clients that are currently using OAuth, one record for each frontend customer. The `is_confidental` field identifies whether a specific client must provide a password. | | spy_oauth_scope | Stores user scopes.| diff --git a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-infrastructure.md b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-infrastructure.md index 34a5cf694ee..56ca972fa59 100644 --- a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-infrastructure.md +++ b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-infrastructure.md @@ -109,9 +109,9 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency ### Resource modules -A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it is recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably. +A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it's recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably. -Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it is always safer to extend the relevant _Resource module_ than infrastructure. +Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it's always safer to extend the relevant _Resource module_ than infrastructure. #### Module structure @@ -207,7 +207,7 @@ Business errors are returned as the `RestErrorMessageTransfer` objects with the ### Nested resources -Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it is necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context. +Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it's necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context. #### ResourceWithParentPluginInterface diff --git a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-rest-api.md b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-rest-api.md index 5ef4b1001a1..0f45c9aae33 100644 --- a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-rest-api.md +++ b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-rest-api.md @@ -43,7 +43,7 @@ For more details, see REST API reference: ## B2C API React example -To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it is based on our customers' interests. The app is single-page application based on a React JS library. +To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it's based on our customers' interests. The app is single-page application based on a React JS library. It delivers a full customer experience from browsing the catalog to placing an order. The application helps you understand how you can use the predefined APIs to create a B2C user experience. As an example, the full power of Elasticsearch, which is already present in our [B2B](/docs/about/all/b2b-suite.html) and [B2C Demo Shops](/docs/about/all/b2c-suite.html), is leveraged through dedicated endpoints to deliver catalog search functionality with autocompletion, autosuggestion, facets, sorting, and pagination. @@ -57,7 +57,7 @@ For more deatails about installing and running, see [B2C API React example](/doc Glue API helps you to connect your Spryker Commerce OS with new or existing touch points. These touchpoints can be headless like voice commerce devices and chat bots, or they may come with a user interface like a mobile app. Alternative front ends also benefit from the APIs. Here are some examples: * New frontend: Build a new frontend or use a frontend framework like Progressive Web Apps and power it by the Glue API. -* Mobile app: a mobile app, no matter if it is native, hybrid or just a web-view, can support the same functionality as the existing demo shops do. +* Mobile app: a mobile app, no matter if it's native, hybrid or just a web-view, can support the same functionality as the existing demo shops do. * Voice commerce: Leverage the APIs for order history to inform your customers about the status of their delivery. * Chatbot: Use chatbots to identify the customer that are trying to reach out to you and help them answer basic questions about your products. diff --git a/docs/dg/dev/glue-api/202410.0/routing/create-routes.md b/docs/dg/dev/glue-api/202410.0/routing/create-routes.md index 5d58084c0af..f3548a395ea 100644 --- a/docs/dg/dev/glue-api/202410.0/routing/create-routes.md +++ b/docs/dg/dev/glue-api/202410.0/routing/create-routes.md @@ -50,7 +50,7 @@ class ModuleBarController extends AbstractController ``` -Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it is done everywhere in Spryker. +Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it's done everywhere in Spryker. {% info_block infoBox %} diff --git a/docs/dg/dev/glue-api/202410.0/security-and-authentication.md b/docs/dg/dev/glue-api/202410.0/security-and-authentication.md index 06de5af5c95..8ba29bedfb0 100644 --- a/docs/dg/dev/glue-api/202410.0/security-and-authentication.md +++ b/docs/dg/dev/glue-api/202410.0/security-and-authentication.md @@ -11,7 +11,7 @@ redirect_from: --- -When exposing information through Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. +When exposing information through Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources. The authorization mechanism provided by the Glue is flexible and lets you define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data, and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH, and DELETE verbs require user authentication to use. diff --git a/docs/dg/dev/glue-api/202410.0/use-default-glue-parameters.md b/docs/dg/dev/glue-api/202410.0/use-default-glue-parameters.md index cbfe35f9bd4..6b71f5d0fd6 100644 --- a/docs/dg/dev/glue-api/202410.0/use-default-glue-parameters.md +++ b/docs/dg/dev/glue-api/202410.0/use-default-glue-parameters.md @@ -21,7 +21,7 @@ The Glue JSON:API convention provides some parameter parsing out of the box. The ## Pagination -Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit is the number of records to display, and offset is the number of records to skip. Here is an example: +Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit's the number of records to display, and offset is the number of records to skip. Here is an example: ``` ?page[offset]=0&page[limit]=10 # display 10 records starting at 0 (AKA page #1) @@ -58,7 +58,7 @@ $glueResponseTransfer->getPagination()->setNbResults(); ## Sorting -Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it is ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`. +Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it's ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`. To get an order, you can read it from `$glueRequestTransfer->getSortings()`, which returns an array of `SortTransfer`, each containing field to be sorted. Use it to sort data when querying from persistence. @@ -74,4 +74,4 @@ You can reduce the amount of data returned by using sparse fields. Clients can p When processing a request, you can get this by accessing `$glueRequestTransfer->getQueryFields()`. This returns an array of strings. -When building response attributes that are not within the fields, the list is removed, even if it is populated by resource processing. +When building response attributes that are not within the fields, the list is removed, even if it's populated by resource processing. diff --git a/docs/dg/dev/guidelines/coding-guidelines/code-style-guide.md b/docs/dg/dev/guidelines/coding-guidelines/code-style-guide.md index 6d499b005ef..e1023fb5d91 100644 --- a/docs/dg/dev/guidelines/coding-guidelines/code-style-guide.md +++ b/docs/dg/dev/guidelines/coding-guidelines/code-style-guide.md @@ -198,7 +198,7 @@ Storing the dates in a common time zone ensures consistency, as the time zone co ### Deprecations -When you deprecate a method, class, or alike, it is recommended to add a short sentence on what to use instead, so all people know what to do without having to investigate deeper. +When you deprecate a method, class, or alike, it's recommended to add a short sentence on what to use instead, so all people know what to do without having to investigate deeper. |DEPRECATION | MESSAGE | |---|---| diff --git a/docs/dg/dev/guidelines/keeping-a-project-upgradable/extension-scenarios/plugins-registration.md b/docs/dg/dev/guidelines/keeping-a-project-upgradable/extension-scenarios/plugins-registration.md index 1c63125793d..87ad1783f6a 100644 --- a/docs/dg/dev/guidelines/keeping-a-project-upgradable/extension-scenarios/plugins-registration.md +++ b/docs/dg/dev/guidelines/keeping-a-project-upgradable/extension-scenarios/plugins-registration.md @@ -92,7 +92,7 @@ Manifests fully support multiple plugins registration in an indexed array. Manif Restrictions on the order of the plugins can be done with special annotation keys `before` and `after`. -If the plugin doesn’t contain any of these keys, it is added to the end of the plugin stack. +If the plugin doesn’t contain any of these keys, it's added to the end of the plugin stack. If the plugin contains the `after` key and defined plugins in the `after` parameter don’t exist on the project side, the plugin is added to the end of the plugin stack. @@ -460,7 +460,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider ## Special situations -* If the target dependency provider class doesn’t exist in the project, it is created and all required methods are created automatically as well. +* If the target dependency provider class doesn’t exist in the project, it's created and all required methods are created automatically as well. * If the target dependency provider class exists in the project without the target method, but such method exists in the parent class, the method is created and the changes are applied. diff --git a/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/minimum-allowed-shop-version.md b/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/minimum-allowed-shop-version.md index f14308e852f..5725cdfb670 100644 --- a/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/minimum-allowed-shop-version.md +++ b/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/minimum-allowed-shop-version.md @@ -11,9 +11,9 @@ The *Minimum allowed shop version* check makes sure that the project uses one of ## Problem description -To enable smooth upgradability of the project using the [Spryker Code Upgrader](/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.html), it is essential for the project to adhere to the minimum required Spryker product release. +To enable smooth upgradability of the project using the [Spryker Code Upgrader](/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.html), it's essential for the project to adhere to the minimum required Spryker product release. -In case the project does not utilize the feature packages, it is necessary to ensure that the corresponding Spryker module versions are used. +In case the project does not utilize the feature packages, it's necessary to ensure that the corresponding Spryker module versions are used. ## Example of an evaluator error message diff --git a/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/spryker-dev-packages-checker.md b/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/spryker-dev-packages-checker.md index 6a5c08e1e1e..d1c040dc69f 100644 --- a/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/spryker-dev-packages-checker.md +++ b/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/spryker-dev-packages-checker.md @@ -11,7 +11,7 @@ Spryker dev packages checker checks the project Spryker dependencies for the _de ## Problem description -Projects contain the Spryker packages dependencies in the `require` section of the `composer.json` file. The integration of new versions of Spryker modules by the Spryker Code Upgrader may fail if some of these packages have references to specific branches that use `dev-*` constraint versions. To prevent this, it is essential to ensure that all Spryker packages have valid version constraints. +Projects contain the Spryker packages dependencies in the `require` section of the `composer.json` file. The integration of new versions of Spryker modules by the Spryker Code Upgrader may fail if some of these packages have references to specific branches that use `dev-*` constraint versions. To prevent this, it's essential to ensure that all Spryker packages have valid version constraints. ## Example of code that causes the evaluator error diff --git a/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.md b/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.md index 548243218e1..e2e11e9b289 100644 --- a/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.md +++ b/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.md @@ -66,7 +66,7 @@ Below, you will find an analysis of the Spryker architecture and solutions for t ### Database queries in plugins -Spryker widely uses plugins to reduce module dependencies and to increase flexibility to make features work together smoothly. However, this can lead to some performance issues if there are database queries in each plugin. That's why it is essential to aggregate all queries to decrease the number of database operations. +Spryker widely uses plugins to reduce module dependencies and to increase flexibility to make features work together smoothly. However, this can lead to some performance issues if there are database queries in each plugin. That's why it's essential to aggregate all queries to decrease the number of database operations. Let's consider an example. Suppose there are 10 plugins for the cart feature to calculate items price, discount, tax, etc. Each plugin has a query to find a product by SKU per order item, which means the code will execute 10 same queries per each item in the cart. @@ -215,7 +215,7 @@ As the Spryker boilerplate comes with most of the features enabled, make sure yo ### Zed calls -Zed calls are necessary when it comes to executing a database-related operation like Cart and Checkout requests. As an RPC mechanism handles these calls, it is necessary to reduce the number of calls to maximum one call to Zed. You can achieve this by: +Zed calls are necessary when it comes to executing a database-related operation like Cart and Checkout requests. As an RPC mechanism handles these calls, it's necessary to reduce the number of calls to maximum one call to Zed. You can achieve this by: - Exporting necessary data, only product-related ones, from Zed to Redis at the pre-calculation phase with the help of Publish and Synchronization. - Merging duplicate Zed requests to only one customer request (AddToCart + Validations + …). @@ -228,7 +228,7 @@ Avoid making ZED calls within QueryExpanderPlugin (from Storage or Search). ### OMS optimization -OMS processes are the template of the order fulfillment in Spryker. The first state of OMS processes, called the NEW state, plays an important role in the checkout process. Therefore, it is necessary to make sure you don't use unnecessary features when you don't need them, for example, Reservation or Timeout transitions. +OMS processes are the template of the order fulfillment in Spryker. The first state of OMS processes, called the NEW state, plays an important role in the checkout process. Therefore, it's necessary to make sure you don't use unnecessary features when you don't need them, for example, Reservation or Timeout transitions. One can avoid using the unnecessary transitions by: diff --git a/docs/dg/dev/guidelines/performance-guidelines/general-performance-guidelines.md b/docs/dg/dev/guidelines/performance-guidelines/general-performance-guidelines.md index d12fb444fbb..eb8d6252bd0 100644 --- a/docs/dg/dev/guidelines/performance-guidelines/general-performance-guidelines.md +++ b/docs/dg/dev/guidelines/performance-guidelines/general-performance-guidelines.md @@ -174,7 +174,7 @@ Making calculations on the PHP side can help here a lot, as well as using `{% ra ## Activate Zed navigation cache -The navigation of Zed is defined in XML files that need to be parsed and merged. As it does not happen quite often, it is recommended to keep the cache activated at all times (even during development) and to run `vendor/bin/console navigation:build-cache` only when something has changed. +The navigation of Zed is defined in XML files that need to be parsed and merged. As it does not happen quite often, it's recommended to keep the cache activated at all times (even during development) and to run `vendor/bin/console navigation:build-cache` only when something has changed. Zed navigation cache is activated by default: diff --git a/docs/dg/dev/guidelines/project-development-guidelines.md b/docs/dg/dev/guidelines/project-development-guidelines.md index d5fcebaa37e..3abdfdd397e 100644 --- a/docs/dg/dev/guidelines/project-development-guidelines.md +++ b/docs/dg/dev/guidelines/project-development-guidelines.md @@ -62,7 +62,7 @@ Instead of using, extending, and overriding [Private API](/docs/dg/dev/architect Extending Private API is still possible, but Spryker development team can change them without a notice in the minor change, since Spryker BC break policy is only considering a Public API. We recommend to not extend Private API classes, but implement new one based on the same interface. In this case changes in core classes will not affect your code. -If you believe that you found a bug in Spryker module, or you want to submit a fix, new functionality by yourself, you can create a pull request to the corresponding module repository. It will be reviewed by the Spryker team and, if it is accepted, it will be merged into the core via our release process. Be advised that such PRs will be checked as a Core contribution and should be prepared accordingly. +If you believe that you found a bug in Spryker module, or you want to submit a fix, new functionality by yourself, you can create a pull request to the corresponding module repository. It will be reviewed by the Spryker team and, if it's accepted, it will be merged into the core via our release process. Be advised that such PRs will be checked as a Core contribution and should be prepared accordingly. ## Development and tests Starting from the first day of development, write tests for all the customizations you implement. We provide infrastructure for unit, functional, and acceptance tests. diff --git a/docs/dg/dev/guidelines/testing-guidelines/building-tests-for-test-driven-devleopment.md b/docs/dg/dev/guidelines/testing-guidelines/building-tests-for-test-driven-devleopment.md index 06d93b38d9c..dbb0d86339b 100644 --- a/docs/dg/dev/guidelines/testing-guidelines/building-tests-for-test-driven-devleopment.md +++ b/docs/dg/dev/guidelines/testing-guidelines/building-tests-for-test-driven-devleopment.md @@ -9,7 +9,7 @@ redirect_from: - /docs/scos/dev/tutorials-and-howtos/introduction-tutorials/tutorial-testing-and-tdd-spryker-commerce-os.html --- -This document helps you understand the main concepts of testing with Spryker and see how simple it is to build tests. You will use the *test-driven development (TDD)* approach. +This document helps you understand the main concepts of testing with Spryker and see how simple it's to build tests. You will use the *test-driven development (TDD)* approach. Spryker's testing structure and data handling make it very easy to develop using TDD. You will build a simple module that reverses a string and test it. diff --git a/docs/dg/dev/guidelines/testing-guidelines/executing-tests/test-console-commands.md b/docs/dg/dev/guidelines/testing-guidelines/executing-tests/test-console-commands.md index cc91e1fac61..a3f9f2d3938 100644 --- a/docs/dg/dev/guidelines/testing-guidelines/executing-tests/test-console-commands.md +++ b/docs/dg/dev/guidelines/testing-guidelines/executing-tests/test-console-commands.md @@ -51,7 +51,7 @@ suites: For more information about the `codeception.yml` file, see [Test framework](/docs/dg/dev/guidelines/testing-guidelines/test-framework.html). -2. Create the test directory `tests/PyzTests/Zed/FooModule/Communication/Plugin/Console/`, if it is not available yet. +2. Create the test directory `tests/PyzTests/Zed/FooModule/Communication/Plugin/Console/`, if it's not available yet. 3. Add the test class: ```php diff --git a/docs/dg/dev/guidelines/testing-guidelines/executing-tests/testing-the-publish-and-synchronization-process.md b/docs/dg/dev/guidelines/testing-guidelines/executing-tests/testing-the-publish-and-synchronization-process.md index 1451cc842b1..fa0506f2deb 100644 --- a/docs/dg/dev/guidelines/testing-guidelines/executing-tests/testing-the-publish-and-synchronization-process.md +++ b/docs/dg/dev/guidelines/testing-guidelines/executing-tests/testing-the-publish-and-synchronization-process.md @@ -34,7 +34,7 @@ related: link: docs/scos/dev/guidelines/testing-guidelines/testing-console-commands.html --- -Publish & Synchronize (P&S) is an asynchronous process of changing data available to customers by pushing the data into storage, for example, Redis, and making it searchable, for example, with Elasticsearch. Because of its asynchronous nature, it is not easy to test the full process while developing. +Publish & Synchronize (P&S) is an asynchronous process of changing data available to customers by pushing the data into storage, for example, Redis, and making it searchable, for example, with Elasticsearch. Because of its asynchronous nature, it's not easy to test the full process while developing. In short, in P&S, you create or update an entity in the database. The process is like this: diff --git a/docs/dg/dev/guidelines/testing-guidelines/running-tests-with-robot-framework.md b/docs/dg/dev/guidelines/testing-guidelines/running-tests-with-robot-framework.md index d7559c6c4c9..ae1ba1b2145 100644 --- a/docs/dg/dev/guidelines/testing-guidelines/running-tests-with-robot-framework.md +++ b/docs/dg/dev/guidelines/testing-guidelines/running-tests-with-robot-framework.md @@ -134,7 +134,7 @@ To re-execute a subset of tests, for example, after fixing a bug in the system o * Tags: `--include` and `--exclude` * Previous status: `--rerunfailed` or `--rerunfailedsuites` -Combining re-execution results with the original results using the default combining outputs approach doesn't work well. The main issue is that you get separate test suites, and possibly already fixed failures are also shown. In this situation, it is better to use the `--merge (-R)` option to tell Rebot to merge the results instead. In practice, this means that tests from the latter test runs replace the tests in the original. +Combining re-execution results with the original results using the default combining outputs approach doesn't work well. The main issue is that you get separate test suites, and possibly already fixed failures are also shown. In this situation, it's better to use the `--merge (-R)` option to tell Rebot to merge the results instead. In practice, this means that tests from the latter test runs replace the tests in the original. The following is the recommended way of re-executing failed tested: diff --git a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/best-practices-for-effective-testing.md b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/best-practices-for-effective-testing.md index 0daa6813713..b00040dd734 100644 --- a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/best-practices-for-effective-testing.md +++ b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/best-practices-for-effective-testing.md @@ -92,7 +92,7 @@ If the test failed, you will see the passed message on the console, which should ## Use as less mocks as possible -Testing single units of your application is a good approach, however, it has some drawbacks as described in the [Test API](#test-api) section. The more you mock, the less you really test. Besides, it is very common to forget to update mocks, which leads to even more issues in your code. +Testing single units of your application is a good approach, however, it has some drawbacks as described in the [Test API](#test-api) section. The more you mock, the less you really test. Besides, it's very common to forget to update mocks, which leads to even more issues in your code. Of course, you can mock all the dependencies of a model under test, but, most likely, that just adds unneeded overhead to your test. In many cases, let's say at least in the happy case, your code should work with the given dependencies. Testing exceptional cases very often requires mocking to be able to test the un-happy cases. In this case, you should also try to use as little mocks as possible to get the most coverage out of a few lines of test code. diff --git a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/test-types-best-practices.md b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/test-types-best-practices.md index f38dc6de01e..539408ef9d4 100644 --- a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/test-types-best-practices.md +++ b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/test-types-best-practices.md @@ -1,6 +1,6 @@ --- title: Test types best practices -description: Learn when and how it is best to use different test types in your Spryker project. +description: Learn when and how it's best to use different test types in your Spryker project. last_updated: Jun 16, 2021 template: concept-topic-template redirect_from: diff --git a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/testing-concepts.md b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/testing-concepts.md index cc9d2049522..adf917fde6e 100644 --- a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/testing-concepts.md +++ b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/testing-concepts.md @@ -1,6 +1,6 @@ --- title: Testing concepts -description: Testing your project is one of the best ways to ensure that your software functions as it is supposed to. The role of testing is to find bugs during the early stages of development to minimize risks. +description: Testing your project is one of the best ways to ensure that your software functions as it's supposed to. The role of testing is to find bugs during the early stages of development to minimize risks. last_updated: Jun 16, 2021 template: concept-topic-template originalLink: https://documentation.spryker.com/2021080/docs/testing-concepts @@ -34,7 +34,7 @@ related: link: docs/scos/dev/guidelines/testing-guidelines/testing-console-commands.html --- -Testing your project is one of the best ways to ensure that your software functions as it is supposed to. The role of testing is to find bugs during the early stages of development to minimize risks. QA is the process of assuring quality, not just verifying you will not get an error on some page. +Testing your project is one of the best ways to ensure that your software functions as it's supposed to. The role of testing is to find bugs during the early stages of development to minimize risks. QA is the process of assuring quality, not just verifying you will not get an error on some page. However, testing will not make a system completely bug-free, it can and will reduce the quantity of system faults, help you avoid having major and critical errors and minimize those which can just distract users from using the system. @@ -46,7 +46,7 @@ With or without a QA engineer, we have compiled a few tips, guidelines and recom ## The four main reasons errors occur -Errors can appear during all stages of software development: while introducing a feature, during specification, development and testing phases. These are elements of human error - features are introduced without taking into consideration how they will work for the end user, specifications don't include integration with an existing or upcoming feature, validation rules and behavior descriptions are not fully thought through and many more other intricacies that are overlooked. In the development stage, bugs are a natural occurrence and during testing it is not uncommon to discover that fixing a bug actually reveals or introduces new ones. +Errors can appear during all stages of software development: while introducing a feature, during specification, development and testing phases. These are elements of human error - features are introduced without taking into consideration how they will work for the end user, specifications don't include integration with an existing or upcoming feature, validation rules and behavior descriptions are not fully thought through and many more other intricacies that are overlooked. In the development stage, bugs are a natural occurrence and during testing it's not uncommon to discover that fixing a bug actually reveals or introduces new ones. Generally, errors happen from the following reasons: @@ -70,7 +70,7 @@ We have compiled a short checklist to use while creating the specification and d ## What is “high-quality software”? -Quality doesn't mean "bug free". Quality means, meeting the stated requirements, functions correctly where it is supposed to, there are no critical, blocking or major issues, and that bugs of other severity are brought to the possible minimum or don’t distract/prevent the user from using the system. +Quality doesn't mean "bug free". Quality means, meeting the stated requirements, functions correctly where it's supposed to, there are no critical, blocking or major issues, and that bugs of other severity are brought to the possible minimum or don’t distract/prevent the user from using the system. This brings us to two questions: @@ -93,7 +93,7 @@ Is the capability of a system to prevent malicious or accidental actions outside ### Usability -Usability defines how well the application meets user requirements. We are looking for an application that is intuitive and provides a good overall user experience. Even if you do not have a QA team you can still run usability testing. "Still" because as mentioned above, developers tend to think positively of their code. Usually a developer only wants to check that the scenarios written in the requirements are passed. But it is important to look at your software from the outside. To imagine you are not the creator but the user. Try to identify what irritates you when using the software. It is very common for us to get frustrated by bad usability and want to fix it ourselves, but we can only report bugs to the creators and wait for the fix. Here you have the opportunity to fix everything yourself in the way you see it the best! +Usability defines how well the application meets user requirements. We are looking for an application that is intuitive and provides a good overall user experience. Even if you do not have a QA team you can still run usability testing. "Still" because as mentioned above, developers tend to think positively of their code. Usually a developer only wants to check that the scenarios written in the requirements are passed. But it's important to look at your software from the outside. To imagine you are not the creator but the user. Try to identify what irritates you when using the software. It is very common for us to get frustrated by bad usability and want to fix it ourselves, but we can only report bugs to the creators and wait for the fix. Here you have the opportunity to fix everything yourself in the way you see it the best! Naturally, there are many more quality attributes and there are lots of articles and resources online that you can use to further research and tailor your own list, like (Chapter 16: Quality Attributes)[https://msdn.microsoft.com/en-us/library/ee658094.aspx]. However, for us, our top priority is to focus on performance, security and usability. @@ -111,7 +111,7 @@ Here are the steps you should follow: * Prioritize test scenarios. Sometimes you will not have enough time to run a full regression test scope for all existing features. In this case, knowing which are the highest priority scenarios helps you to concentrate on them to pass. * Using TDD for implementation can be a good practice. First, write the acceptance tests and then implement until tests are all passed. * Also make sure to manually test the feature at least once. -* Testing each module as soon as it is ready. It is best not to wait until the project is more or less done. Instead, adopt the approach that if a feature is ready - test it. Use manual tests and follow your test scenarios to make the process fast and effective. +* Testing each module as soon as it's ready. It is best not to wait until the project is more or less done. Instead, adopt the approach that if a feature is ready - test it. Use manual tests and follow your test scenarios to make the process fast and effective. * By our estimate, testing a module such as the Product Category module with some positive and some negative cases takes 30 - 40 minutes for an experienced tester. An inexperienced person would probably take an hour. Use these estimates to help calculate the time you need for testing in your plans. Planning projects with development time and test time together, helps to create a more realistic timeline. It will also help you to be able to predict your launch date a bit better as a well-tested project is likely to have less surprises towards the end. The following diagram illustrates what a test process looks like without a QA team. @@ -151,7 +151,7 @@ Real example: Link tickets and documents with feature changes to the original features. Make sure that it’s easy to find initial functionality and how it’s connected to the new changes. Be sure that support documentation is also updated and does not stay in initial state without new changes. -Link bugs found during testing to the tested feature with a relation like "discovered by" - bugs sometimes reveal uncovered requirements steps and it is easier to track such black points if they are all linked together. +Link bugs found during testing to the tested feature with a relation like "discovered by" - bugs sometimes reveal uncovered requirements steps and it's easier to track such black points if they are all linked together. Link tests to use cases and other requirement tickets with relation like "covers" or "verifies", this will help you understand in the future how well your requirement tickets are covered and see whether there are any not covered by any tests. @@ -191,7 +191,7 @@ Test environments should as much as possible, correspond with the final target o ### Where to test -When you are working on a single module or functionality, it is easy to forget that the end result is a collection of many working pieces. Do not limit testing to just either Yves or Zed, check them both together. For example: if you create a new shipment method, it is not enough to see the success message in Zed. Take a moment to go to Yves to see that the new element is also there, functional and not throwing exceptions when you try to select/open it. +When you are working on a single module or functionality, it's easy to forget that the end result is a collection of many working pieces. Do not limit testing to just either Yves or Zed, check them both together. For example: if you create a new shipment method, it's not enough to see the success message in Zed. Take a moment to go to Yves to see that the new element is also there, functional and not throwing exceptions when you try to select/open it. ### Test and test again diff --git a/docs/dg/dev/integrate-and-configure/implementing-graceful-shutdown.md b/docs/dg/dev/integrate-and-configure/implementing-graceful-shutdown.md index da79f7134d6..589f0bb3d03 100644 --- a/docs/dg/dev/integrate-and-configure/implementing-graceful-shutdown.md +++ b/docs/dg/dev/integrate-and-configure/implementing-graceful-shutdown.md @@ -9,7 +9,7 @@ redirect_from: - /docs/scos/dev/tutorials-and-howtos/howtos/howto-handle-graceful-shutdown.html --- -When a running process is stopped by, for example, signals like `SIGTERM` and `SIGINT`, the process is stopped right away, no matter if it is completed or not. Sometimes, such behavior is not acceptable—for example, in the case of half imported data set. +When a running process is stopped by, for example, signals like `SIGTERM` and `SIGINT`, the process is stopped right away, no matter if it's completed or not. Sometimes, such behavior is not acceptable—for example, in the case of half imported data set. To make sure that a process is shut down gracefully, use the `GracefulRunner` module and pass `\Generator` to its `GracefulRunnerFacadeInterface::run()` method. `GracefulRunnerFacadeInterface::run()` uses the [signal handler](https://github.com/Seldaek/signal-handler) to register a new handler [with pcntl_signal](https://www.php.net/manual/en/function.pcntl-signal.php), and wraps the passed `\Generator`. Until a signal is sent, the `\Generator::next()` method is executed to make sure that one step of your process is fully completed before the script shuts down. diff --git a/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.md b/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.md index 1117f1f0e7c..64e6dc4ddf7 100644 --- a/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.md +++ b/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.md @@ -128,7 +128,7 @@ class DataImportBusinessFactory extends SprykerDataImportBusinessFactory } ``` -3. In `Pyz\Zed\DataImport\Business\Model\Glossary\GlossaryWriterStep`, update the writer steps by adjusting the execute method to flush `MemoryAllocatedElasticBatch` when it is full. +3. In `Pyz\Zed\DataImport\Business\Model\Glossary\GlossaryWriterStep`, update the writer steps by adjusting the execute method to flush `MemoryAllocatedElasticBatch` when it's full. ```php diff --git a/docs/dg/dev/integrate-and-configure/switch-to-a-case-sensitive-file-system-on-mac-os.md b/docs/dg/dev/integrate-and-configure/switch-to-a-case-sensitive-file-system-on-mac-os.md index f7d998b3a3b..dc05ac64506 100644 --- a/docs/dg/dev/integrate-and-configure/switch-to-a-case-sensitive-file-system-on-mac-os.md +++ b/docs/dg/dev/integrate-and-configure/switch-to-a-case-sensitive-file-system-on-mac-os.md @@ -37,7 +37,7 @@ After the disk has been created, you can see it being mounted in Finder already. ## Copy existing projects -You can copy all existing projects to the newly created box. If it is not mounted, double-click the disk image file in Finder. After copying all your projects, you can replace your current project directory with the mount-point for the disk image so that you don't have to adjust any paths you already set up. For details, see the following section. +You can copy all existing projects to the newly created box. If it's not mounted, double-click the disk image file in Finder. After copying all your projects, you can replace your current project directory with the mount-point for the disk image so that you don't have to adjust any paths you already set up. For details, see the following section. ## mount the disk image at boot automatically diff --git a/docs/dg/dev/internationalization-and-multi-store/add-new-store-in-multi-db-setup.md b/docs/dg/dev/internationalization-and-multi-store/add-new-store-in-multi-db-setup.md index 05b2e45ae0d..05cec466872 100644 --- a/docs/dg/dev/internationalization-and-multi-store/add-new-store-in-multi-db-setup.md +++ b/docs/dg/dev/internationalization-and-multi-store/add-new-store-in-multi-db-setup.md @@ -17,7 +17,7 @@ This guide is applicable in scenarios where store configurations and setups are ## Initial planning and best practices ### Clear Roadmap -It is good to have overall plan, detailing all stores that will be added in the future. This can impact not only database structure and configurations, but overall decisions on how to approach the rollout, making sure it is cost-efficient over time, on all ends. +It is good to have overall plan, detailing all stores that will be added in the future. This can impact not only database structure and configurations, but overall decisions on how to approach the rollout, making sure it's cost-efficient over time, on all ends. ### Backup strategy Always have a backup plan ready in case of issues during the deployment. This includes not only database backups but also considerations on all points you will find below, including the business side. diff --git a/docs/dg/dev/internationalization-and-multi-store/adding-stores-in-a-multi-database-setup.md b/docs/dg/dev/internationalization-and-multi-store/adding-stores-in-a-multi-database-setup.md index 800cbd108e7..b150fdd568b 100644 --- a/docs/dg/dev/internationalization-and-multi-store/adding-stores-in-a-multi-database-setup.md +++ b/docs/dg/dev/internationalization-and-multi-store/adding-stores-in-a-multi-database-setup.md @@ -1,11 +1,10 @@ --- -title: "Adding stores in a multi-database setup" +title: "Adding stores in a multi-datatabse setup" description: Adding and deploying a new store in multi-db store setup requires additional steps and preparation. This guideline contains all the best practices you need to know. last_updated: Dec 02, 2024 template: howto-guide-template -originalLink: -originalArticleId: redirect_from: + - /docs/dg/dev/internationalization-and-multi-store/add-new-store-in-multi-db-setup.html --- Setting up a new store in an existing multi-database environment requires a carefully crafted plan to ensure that the data and operations of existing stores remain unaffected. This document describes how to launch a new store within a region that already hosts other stores, guaranteeing a seamless and safe deployment. @@ -20,82 +19,92 @@ This section describes the planning stage of launching a store. ### Clear roadmap -It's good to have an overall plan, detailing all the stores you want to add in future. This can affect database structure, configuration, and overall decisions on how to approach the rollout, making sure it is cost-efficient over time, on all ends. +Create a long-term plan, detailing all the stores you want to add in future. This can affect database (DB) structure, configuration, and the choice of rollout approach, making sure it's cost-efficient over time. ### Backup strategy -A backup plan needs to be ready in case of issues during deployment. Apart from database backups, this includes considerations on all the points in the following sections, including the business side. +A backup plan needs to be ready in case of issues during deployment. Apart from DB backups, this includes considerations on all the points in the following sections, including the business side. ### Environment preparation -To prepare your production and non-production environments for a store rollout, make sure there's no additional functionality to be released on top or parallel development. Teams and stakeholders need to be prepared and aware of the procedure. + +To prepare production and non-production environments for a store rollout, make sure there's no additional functionality to be released on top or parallel development. Teams and stakeholders need to be prepared and aware of the procedure. ### Repeatability -If you're planning to release more stores in future, prepare process to be easily repeatable. This includes creating various detailed documentation, release procedure, and tickets, such as epics, stories, tasks, in your project management software. This can be a detailed script or checklist tailored to your project, covering all relevant steps, configurations, and integrations. +If you're planning to release more stores in future, make the process easily repeatable. This includes creating detailed documentation, release procedure, and tickets, such as epics, stories, or tasks, in your project management software. This can be a detailed script or checklist tailored to your project, covering all relevant steps, configurations, and integrations. + +## Store rollout considerations -## Detailed considerations for the migration +This section describes parts of the application you need to consider when preparing a rollout plan. ### Integrations and third-party systems -* Review and adjust all third-party integrations to ensure they work with the new store setup. This mainly concerns data and it’s isolation across multiple virtual DBs. Make sure that people working with both sides of the system, such as backend, frontend, merchant portal and APIs, have access to all the needed data. -* Integrations, such as single sign-on, payment gateways, or inventory systems, may require updates. Make sure tech teams responsible for those systems are available and ready to do needed changes on time. +* Review and adjust all third-party integrations to ensure they work with the new store setup. This mainly concerns data and it’s isolation across virtual DBs. Teams working with both sides of the system, such as backend, frontend, merchant portal and APIs, should have access to all the needed data. +* Integrations, such as single sign-on, payment gateways, or inventory systems, may require updates. Teams responsible for those systems should be available and ready to do needed changes on time. ### Data import -* Handle the data import process carefully, breaking it down into specific tasks such as configuring databases and adjusting the data import setup to work with the new store. -* Make sure existing DBs, for example–a DB from another country, are correctly renamed or adjusted to fit the new multi-DB structure. +* Handle the data import process carefully, breaking it down into specific tasks such as configuring DBs and adjusting the data import setup to work with the new store. +* Make sure existing DBs, for example–a DB from another country, are correctly renamed or adjusted to fit the multi-DB structure. * Anticipate and plan for potential updates that may arise after end-to-end testing of the project data migration. ### Code buckets -* If code buckets are used, investigate and adjust their configurations as necessary. Thoroughly document the steps for adjusting the configurations, making sure that code bucket keep working properly after a new store is added. + +If code buckets are used, investigate and adjust their configurations, making sure code buckets keeps working properly after the stored is introduced. Thoroughly document the steps for adjusting the code buckets configuration. ### Cloud environment and monitoring -* Consider and adjust monitoring tools and APM, such as NewRelic and CloudWatch, to accommodate the new store. Check that all alerts and metrics are correctly configured to monitor the health and performance of the new store. -* Check if you need to adjust AWS services, for example–introduce buckets for the new store in S3. +* Consider and adjust application performance monitoring tools, such as NewRelic and CloudWatch, to accommodate the new store. Check that all alerts and metrics are correctly configured to monitor the health and performance of the new store. +* Consider adjusting AWS services, for example–introduce S3 buckets for the new store. ### Frontend considerations Reconsider the prior topics relative to your frontend. For example–frontend separation might be a significant task, requiring layout changes between different stores and API changes. + + + + + ## Releasing stores This section provides detailed guidelines for releasing stores. -For general instructions for defining new databases, connecting them with new stores, and adding configuration, follow [Integrate multi-database logic](/docs/dg/dev/integrate-and-configure/integrate-multi-database-logic.html). +For general instructions for defining new DBs, connecting them with new stores, and adding configuration, follow [Integrate multi-DB logic](/docs/dg/dev/integrate-and-configure/integrate-multi-DB-logic.html). ### Local setup +This section describes how to add the configuration and deployment recipes for a new store. -#### New store configuration +#### Add the configuration for the new store -* Using [Add and remove databases of stores](/docs/ca/dev/multi-store-setups/add-and-remove-databases-of-stores.html#remove-the-configuration-of-the-database), define the following new entities in your deploy file: +* Using [Add and remove DBs of stores](/docs/ca/dev/multi-store-setups/add-and-remove-DBs-of-stores.html), define the following new entities in your deploy file: | ENTITY | SECTION | -| Database | `regions..services.databases` | +| Database | `regions..services.DBs` | | Store | `regions..stores`| | Domains | `groups..applications` | -* Using [Integrate multi-database logic](/docs/dg/dev/integrate-and-configure/integrate-multi-database-logic.html), add the configuration needed for the new store to `stores.php`. +* In `stores.php`, add the configuration for the new store. For instructions, see [Integrate multi-DB logic](/docs/dg/dev/integrate-and-configure/integrate-multi-DB-logic.html). * Prepare data import configurations and data files for the new store. * Adjust the local environment setup as needed, including configurations and environment variables. Examples: * Frontend router configuration * Code bucket configuration * Create new Back Office users -* To make sure these steps are repeatable in future, document them. +* To make these steps repeatable in future, document them. #### Running initial setup locally -Bootstrap your updated configuration and run the project: +Bootstrap the updated configuration and run the project: ```bash docker/sdk boot deploy.dev.yml docker/sdk up ``` -Make sure the new store’s database has been correctly initialized and filled up with the demo data. +Make sure the new store’s DB has been correctly initialized and filled up with demo data. #### Setting up additional deployment recipes -When adding and deleting stores, for testing purposes, we recommend creating additional deployment install recipes in `config/install`. The following are examples of such recipes, which we tested in action. The examples recipes are based on the default folder structure with the EU folder as a base, but you can introduce your own structure. +When adding and deleting stores, for testing purposes, we recommend creating additional deployment install recipes in `config/install`. The following are examples of such recipes, which we tested in action. The examples are based on the default folder structure with the EU folder as a base, but you can introduce your own structure. A minimal recipe for adding a store: @@ -160,22 +169,23 @@ More information on this is provided in the following sections. ### Staging setup +This section describes how to roll out a new store in a staging environment. -#### Environment configuration - -* Add the configuration for the new store to the staging environment’s configuration. - - -For the database to be initialized, you will need to run a destructive deployment for the new store. +#### Staging environment configuration -To make sure existing stores are not affected, you need to specify only new store code(s) in your deployment yml file (image.environment section), in `SPRYKER_HOOK_DESTRUCTIVE_INSTALL`. +Add the configuration for the new store to the staging environment’s configuration. -Example, for new PL and AT stores to be introduced: `SPRYKER_HOOK_DESTRUCTIVE_INSTALL: "vendor/bin/install PL,AT -r EU/destructive --no-ansi -vvv"` +For initialize the DB, run a destructive deployment for the new store. To not affect existing stores, in the `image.environment` section of the deployment file, define only the new store in `SPRYKER_HOOK_DESTRUCTIVE_INSTALL`. In the following example, new PL and AT stores are introduced: +```yml +... +SPRYKER_HOOK_DESTRUCTIVE_INSTALL: "vendor/bin/install PL,AT -r EU/destructive --no-ansi -vvv" +... +``` -You can also use your custom recipe following the examples above (see “Setting up additional deployment recipes “) +You can also use a custom recipe as described in [Setting up additional deployment recipes](#setting-up-additional-deployment-recipes). -#### Support Requests -* Open a support request to apply the new configuration to the environment. Attach deploy file and explain shortly expected changes, i.e. new DB should be created. In case you have the necessary configuration in a specific branch of your repository, provide a reference to it in the ticket, making sure support team has access to your code base. +#### Support requests +* Open a support request to apply the new configuration to the environment. Attach the deploy file and shortly explain expected changes, that is the stores that need to be introduced. If the necessary configuration is in a specific repository branch, reference it in the ticket and make sure the support team has access to your code base. * Run the destructive deployment, assuring the right store(s) is specified. #### Deployment Execution diff --git a/docs/dg/dev/internationalization-and-multi-store/handling-internationalization.md b/docs/dg/dev/internationalization-and-multi-store/handling-internationalization.md index 6096f99c5a9..f7f7eec111c 100644 --- a/docs/dg/dev/internationalization-and-multi-store/handling-internationalization.md +++ b/docs/dg/dev/internationalization-and-multi-store/handling-internationalization.md @@ -8,7 +8,7 @@ redirect_from: - /docs/scos/dev/tutorials-and-howtos/advanced-tutorials/tutorial-internationalization.html --- -In international business, it is important to fine-tune a shop's behavior according to the country. Functionality that needs to be configured: +In international business, it's important to fine-tune a shop's behavior according to the country. Functionality that needs to be configured: * Design and layout * Currency and price @@ -25,7 +25,7 @@ At the same time, the product import from a PIM system cart calculation and the ## Store concept -To cope with these challenges, Spryker’s architecture differentiates a project and a store level. That means coding and behavior can be defined on each level. Logic that is identical will be on the project level. Examples are the product structure or customer structure. At the same time, it is possible to define a store level, this will typically be used for each country the company operates in. This allows maintaining coding that is only relevant for the given store. The store will define design and layout, used currency, and price. We recommend you have a different store at least on the currency level. +To cope with these challenges, Spryker’s architecture differentiates a project and a store level. That means coding and behavior can be defined on each level. Logic that is identical will be on the project level. Examples are the product structure or customer structure. At the same time, it's possible to define a store level, this will typically be used for each country the company operates in. This allows maintaining coding that is only relevant for the given store. The store will define design and layout, used currency, and price. We recommend you have a different store at least on the currency level. ## Internationalization vs localization diff --git a/docs/dg/dev/miscellaneous-guides/simulating-deployments-locally.md b/docs/dg/dev/miscellaneous-guides/simulating-deployments-locally.md index 0ae3b8e4362..74a1d4b25bc 100644 --- a/docs/dg/dev/miscellaneous-guides/simulating-deployments-locally.md +++ b/docs/dg/dev/miscellaneous-guides/simulating-deployments-locally.md @@ -8,7 +8,7 @@ redirect_from: --- -Are you about to roll out an important feature to your staging or production environment and want to ensure that everything will work out right? Or you are encountering behavior in your application when it is deployed that does not seem right, and you are wondering how to best debug it? This document provides tips that can help you avoid surprises and help you prepare your project optimally for deployment and build a local development setup with which you can debug more effectively. +Are you about to roll out an important feature to your staging or production environment and want to ensure that everything will work out right? Or you are encountering behavior in your application when it's deployed that does not seem right, and you are wondering how to best debug it? This document provides tips that can help you avoid surprises and help you prepare your project optimally for deployment and build a local development setup with which you can debug more effectively. To simulate your application behavior and how it looks when deployed to the staging or production environment, bootstrap the `deploy.yml` files used by those environments. The following sections show what needs to be done. diff --git a/docs/dg/dev/sdks/sdk/customization-strategies-and-upgradability.md b/docs/dg/dev/sdks/sdk/customization-strategies-and-upgradability.md index ced14dca969..dc7f511ea30 100644 --- a/docs/dg/dev/sdks/sdk/customization-strategies-and-upgradability.md +++ b/docs/dg/dev/sdks/sdk/customization-strategies-and-upgradability.md @@ -35,7 +35,7 @@ Module configuration is one of the Public APIs. This means that Spryker makes s ### Plug and Play customization -Plug and Play is Spryker’s out-of-the-box development strategy that allows customers to extend a project with various built-in plugins. In case there’s no plugin, it is recommended to create a feature request or create a custom plugin and wire it up in the DependencyProvider, or via configuration. +Plug and Play is Spryker’s out-of-the-box development strategy that allows customers to extend a project with various built-in plugins. In case there’s no plugin, it's recommended to create a feature request or create a custom plugin and wire it up in the DependencyProvider, or via configuration. Check out our [Plugins](/docs/dg/dev/backend-development/plugins/plugins.html) article to get more information. @@ -135,7 +135,7 @@ Let’s see how this affects our upgrade process. #### Patch releases -Patch releases, such as for example 1.2.1 to 1.2.2, will not affect the `DEFAULT_CATEGORY_READ_CHUNK` value or usage so it is safe to automatically update to patches even if the project has modified the constant value to suit its needs. +Patch releases, such as for example 1.2.1 to 1.2.2, will not affect the `DEFAULT_CATEGORY_READ_CHUNK` value or usage so it's safe to automatically update to patches even if the project has modified the constant value to suit its needs. #### Minor release diff --git a/docs/dg/dev/sdks/sdk/development-tools/phpstan.md b/docs/dg/dev/sdks/sdk/development-tools/phpstan.md index 298e54821e1..d65475e777f 100644 --- a/docs/dg/dev/sdks/sdk/development-tools/phpstan.md +++ b/docs/dg/dev/sdks/sdk/development-tools/phpstan.md @@ -63,7 +63,7 @@ Note that running this command with the level 2 key (**-l 2**) and having no err **Main configuration file inheritance** -To avoid duplicated code while specifying a different configuration in the _parameters_ section of the `phpstat.neon` file, it is possible to extend this file and determine only the changes needed for a particular configuration of a module. +To avoid duplicated code while specifying a different configuration in the _parameters_ section of the `phpstat.neon` file, it's possible to extend this file and determine only the changes needed for a particular configuration of a module. ### ./[ROOT]/phpstan.neon diff --git a/docs/dg/dev/sdks/sdk/extending-spryker-sdk.md b/docs/dg/dev/sdks/sdk/extending-spryker-sdk.md index 2544481dd81..5cc32e67f23 100644 --- a/docs/dg/dev/sdks/sdk/extending-spryker-sdk.md +++ b/docs/dg/dev/sdks/sdk/extending-spryker-sdk.md @@ -294,7 +294,7 @@ class YourValueResolver implements ValueResolverInterface } ``` -You can define a value resolver as a Symfony service, for example to be able to inject services into it. If the value resolver is not defined as a service, it is instantiated by its FQCN. +You can define a value resolver as a Symfony service, for example to be able to inject services into it. If the value resolver is not defined as a service, it's instantiated by its FQCN. Example of defining a value resolver as a Symfony service: diff --git a/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-reference.md b/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-reference.md index 5657678d30f..e4561fe1c3c 100644 --- a/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-reference.md +++ b/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-reference.md @@ -345,7 +345,7 @@ image: Defines PHP settings. {% info_block warningBox "Memory Limits" %} -Please note that the maximum recommended PHP memory limit is 2048M. Going above this limit is rarely necessary and can lead to stability and performance issues in your environment. Test any configuration change carefully in a non-production setting. +Please note that the maximum recommended PHP memory limit's 2048M. Going above this limit's rarely necessary and can lead to stability and performance issues in your environment. Test any configuration change carefully in a non-production setting. {% endinfo_block %} @@ -852,7 +852,7 @@ Defines the composer settings to be used during deployment. ## Services You can configure and use external tools that are shipped with Spryker in Docker as services. -If a service has a dedicated configuration, it is configured and run when the current environment is set up and executed. +If a service has a dedicated configuration, it's configured and run when the current environment is set up and executed. The following services are supported: diff --git a/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file.md b/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file.md index 0300d1e951f..a9c6316bdbf 100644 --- a/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file.md +++ b/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file.md @@ -174,7 +174,7 @@ Deploy files are merged in the following order: ## Parameter inheritance -When merging deploy files, the deploy file builder skips each duplicate parameter that was present in the previous parsed deploy files. For example, in `deploy.dev.yml`, memory limit is defined as follows: +When merging deploy files, the deploy file builder skips each duplicate parameter that was present in the previous parsed deploy files. For example, in `deploy.dev.yml`, memory limit's defined as follows: ```yaml image: @@ -184,7 +184,7 @@ image: memory_limit: 2048M ``` -And, in `./spryker/generator/deploy-file-generator/templates/services.deploy.template.yml`, the memory limit is defined as follows: +And, in `./spryker/generator/deploy-file-generator/templates/services.deploy.template.yml`, the memory limit's defined as follows: ```yaml image: diff --git a/docs/dg/dev/set-up-spryker-locally/manage-dependencies-with-composer.md b/docs/dg/dev/set-up-spryker-locally/manage-dependencies-with-composer.md index cff22f24a14..318b0b61eb7 100644 --- a/docs/dg/dev/set-up-spryker-locally/manage-dependencies-with-composer.md +++ b/docs/dg/dev/set-up-spryker-locally/manage-dependencies-with-composer.md @@ -44,7 +44,7 @@ SCCOS consists of a number of independent components. Each of them has a dedicat You can check the current `composer.json` file in the corresponding [repository of the Cart module](https://github.com/spryker/cart). -In the project level `composer.json` file you can specify the components that you want to use along with their versions like it is done in the [Spryker Commerce OS](https://github.com/spryker-shop/suite ): +In the project level `composer.json` file you can specify the components that you want to use along with their versions like it's done in the [Spryker Commerce OS](https://github.com/spryker-shop/suite ): ```php ... @@ -133,7 +133,7 @@ For each module that you want to add: 1. Name or rename the new module by using the old module’s name and prefixing it with `replace_`. For example, create a dummy file called `replace_refund` to replace the refund module. This will help to keep track of any replaces you do in the project. 2. In the newly created dummy module directory, create an empty `composer.json` file and add the following Composer Configuration Information. 3. Add the newly created module to your project’s `composer.json` file by going into your project’s `composer.json` and adding the new location. - 4. Check if the core module is in your project’s `composer.json` file and if it is, remove it. + 4. Check if the core module is in your project’s `composer.json` file and if it's, remove it. * Execute composer update with the replace module name: diff --git a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/redis-session-lock.md b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/redis-session-lock.md index 01144dc6b1a..5db78d64fc5 100644 --- a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/redis-session-lock.md +++ b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/redis-session-lock.md @@ -141,7 +141,7 @@ $config[SessionConstants::YVES_SESSION_SAVE_HANDLER] = CONDITION ? SessionRedisConfig::SESSION_HANDLER_REDIS_LOCKING; ``` -In this example, `CONDITION` can be any operation with a boolean result, but it is impostant to keep it quickly executed, not to make a bottleneck from configuration declartion. +In this example, `CONDITION` can be any operation with a boolean result, but it's impostant to keep it quickly executed, not to make a bottleneck from configuration declartion. Here's one of the possible examples of a condition: - `str_contains($_SERVER['HTTP_USER_AGENT'] ?? '', 'Googlebot')` or - `str_contains($_SERVER['REQUEST_URI'] ?? '', '/some-url')` or diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/container.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/container.md index 5de07359adf..4adcad51b60 100644 --- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/container.md +++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/container.md @@ -18,7 +18,7 @@ A *container* is a class which holds one or more object collections or definitio The container is used to add services and allow other application plugins access them. Services are integrations like Twig or Symfony components like Security or Form. To be able to configure or change the services easily, they are added to the applications as a part of [application plugins](/docs/dg/dev/upgrade-and-migrate/silex-replacement/application.html). -It's important that almost everything that is accessible through the container should only be instantiated when it is requested. It's not as important for static values like `isDebugMode` as it is important for expensive instantiations. +It's important that almost everything that is accessible through the container should only be instantiated when it's requested. It's not as important for static values like `isDebugMode` as it's important for expensive instantiations. ## Where is the container used? @@ -166,7 +166,7 @@ if ($container->has('your service identifier')) { } ``` -With the code, you can alter your service without loading it. Your service will only be loaded when it is requested from the container using `container::get()`. +With the code, you can alter your service without loading it. Your service will only be loaded when it's requested from the container using `container::get()`. ## Global services @@ -228,4 +228,4 @@ class ModuleCommunicationFactory extends AbstractCommunicationFactory `FrozenServiceException` - The service `your service identifier` is marked as frozen and can't be extended at this point. **then** -If you try to extend a service which was already requested from the container, you will see this exception. A debugger will help you to find a solution. Check which code causes this error by setting a breakpoint in the container where this exception is thrown. Most likely, you will spot the issue right away. If not, set an additional conditional breakpoint in the first line of the `container::get()` method: `$id === 'your service identifier'`. It instructs the debugger to stop when the service identifier which brings the exception is retrieved from the container. Now check the code which wants to retrieve the service and change it in a way that it is called only after `container::extend()` was executed. +If you try to extend a service which was already requested from the container, you will see this exception. A debugger will help you to find a solution. Check which code causes this error by setting a breakpoint in the container where this exception is thrown. Most likely, you will spot the issue right away. If not, set an additional conditional breakpoint in the first line of the `container::get()` method: `$id === 'your service identifier'`. It instructs the debugger to stop when the service identifier which brings the exception is retrieved from the container. Now check the code which wants to retrieve the service and change it in a way that it's called only after `container::extend()` was executed. diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-yves.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-yves.md index d6e7bf7838b..cdc2deecb7f 100644 --- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-yves.md +++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-yves.md @@ -42,7 +42,7 @@ Routers are added to the `\Pyz\Yves\Router\RouterDependencyProvider::getRouterPl The Router can be configured with the following `\Spryker\Yves\Router\RouterEnvironmentConfigConstantsYves` options: -* `\Spryker\Shared\Router\RouterConstants::YVES_IS_CACHE_ENABLED` - use this option to enable/disable the cache. By default, it is enabled. +* `\Spryker\Shared\Router\RouterConstants::YVES_IS_CACHE_ENABLED` - use this option to enable/disable the cache. By default, it's enabled. * `\Spryker\Shared\Router\RouterConstants::YVES_CACHE_PATH` - use this option if you want to change the path to the generated cache files. * `\Spryker\Shared\Router\RouterConstants::YVES_IS_SSL_ENABLED` - use this option to enable/disable the Router's SSL capabilities. * `\Spryker\Shared\Router\RouterConstants::YVES_SSL_EXCLUDED_ROUTE_NAMES` - use this option to disable SSL for the specific route names when SSL is enabled. diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-zed.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-zed.md index 7dc12cbadf0..7f50aa7e014 100644 --- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-zed.md +++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-zed.md @@ -34,7 +34,7 @@ Additionally, you need to add the following plugins to the `\Pyz\Zed\EventDispat The Router can be configured with the following `RouterEnvironmentConfigConstantsZed` options: -* `\Spryker\Zed\Router\RouterConstants::ZED_IS_CACHE_ENABLED` - use this option to enable/disable the cache. By default, it is enabled. +* `\Spryker\Zed\Router\RouterConstants::ZED_IS_CACHE_ENABLED` - use this option to enable/disable the cache. By default, it's enabled. * `\Spryker\Zed\Router\RouterConstants::ZED_CACHE_PATH` - use this if you want to change the path to the generated cache files. * `\Spryker\Zed\Router\RouterConstants::ZED_IS_SSL_ENABLED` - use this to enable/disable Router's SSL capabilities. * `\Spryker\Zed\Router\RouterConstants::ZED_SSL_EXCLUDED_ROUTE_NAMES` - use this to disable SSL for the specific route names when SSL is enabled. diff --git a/docs/dg/dev/zed-api/tutorial-using-zed-api.md b/docs/dg/dev/zed-api/tutorial-using-zed-api.md index c0b6cb81189..4e675bfe639 100644 --- a/docs/dg/dev/zed-api/tutorial-using-zed-api.md +++ b/docs/dg/dev/zed-api/tutorial-using-zed-api.md @@ -94,9 +94,9 @@ After this step log into Zed and try opening `http://ZED_HOST/api/v1/doc` and `h ## 2. Create a business model to examine facade classes using reflection -First, it is needed to create an empty model class `ApiEntry` in the business layer, it can be placed in `Business/Model/ApiEntry.php`. +First, it's needed to create an empty model class `ApiEntry` in the business layer, it can be placed in `Business/Model/ApiEntry.php`. -This class must be created in a factory of the module. Additionally, the factory must provide additional dependencies from facades of other modules. To simplify the solution, facades can be created dynamically based on GET parameters of the request, while in real life it is advised to always specify these dependencies implicitly. +This class must be created in a factory of the module. Additionally, the factory must provide additional dependencies from facades of other modules. To simplify the solution, facades can be created dynamically based on GET parameters of the request, while in real life it's advised to always specify these dependencies implicitly. Considering all of above, the factory implementation can look like this: diff --git a/docs/pbc/all/carrier-management/202311.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md b/docs/pbc/all/carrier-management/202311.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md index 6d0fd2fb338..b47498d43db 100644 --- a/docs/pbc/all/carrier-management/202311.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md +++ b/docs/pbc/all/carrier-management/202311.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md @@ -44,7 +44,7 @@ data:import:shipment-price ## Additional information -The field *value* must be an *integer* as it is the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550. +The field *value* must be an *integer* as it's the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550. Fields `shipment_method_key`, `store` and `currency` are mandatory, and must be valid (imported already from existing database values, or created manually using the precedent CSV files: `shipment_method.csv` and `currency.csv` and `stores.php` configuration project file). Empty value fields are imported as zeros. diff --git a/docs/pbc/all/carrier-management/202404.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md b/docs/pbc/all/carrier-management/202404.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md index 6d0fd2fb338..b47498d43db 100644 --- a/docs/pbc/all/carrier-management/202404.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md +++ b/docs/pbc/all/carrier-management/202404.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md @@ -44,7 +44,7 @@ data:import:shipment-price ## Additional information -The field *value* must be an *integer* as it is the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550. +The field *value* must be an *integer* as it's the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550. Fields `shipment_method_key`, `store` and `currency` are mandatory, and must be valid (imported already from existing database values, or created manually using the precedent CSV files: `shipment_method.csv` and `currency.csv` and `stores.php` configuration project file). Empty value fields are imported as zeros. diff --git a/docs/pbc/all/carrier-management/202410.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md b/docs/pbc/all/carrier-management/202410.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md index b0453d46a60..0ac25738de9 100644 --- a/docs/pbc/all/carrier-management/202410.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md +++ b/docs/pbc/all/carrier-management/202410.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md @@ -45,7 +45,7 @@ data:import:shipment-price ## Additional information -The field *value* must be an *integer* as it is the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550. +The field *value* must be an *integer* as it's the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550. Fields `shipment_method_key`, `store` and `currency` are mandatory, and must be valid (imported already from existing database values, or created manually using the precedent CSV files: `shipment_method.csv` and `currency.csv` and `stores.php` configuration project file). Empty value fields are imported as zeros. diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/calculation-data-structure.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/calculation-data-structure.md index 5d0e1ca3cd1..21552f869da 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/calculation-data-structure.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/calculation-data-structure.md @@ -62,7 +62,7 @@ The entire data object is stored in the session, and it consists of the followin |sumGrossPrice (int)|The sum of item's gross price, calculated with `PriceCalculatorPlugin`.| |unitNetPrice (int) | A single item net price, set with `CartItemPricePlugin` (cart expander). | | sumNetPrice (int) | The sum of items net price, calculated with `PriceCalculatorPlugin`. | -| unitPrice (int) | A single item price without assuming whether it is new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). | +| unitPrice (int) | A single item price without assuming whether it's new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). | | sumPrice (int) | The sum of item's price calculated with `PriceCalculatorPlugin`. | | taxRate (float) | The current tax rate set by `ProductItemTaxRateCalculatorPlugin`. | | refundableAmount (int) | The item's available refundable amount (order only). It's set by `RefundableAmountCalculatorPlugin`. | diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md index 7021b48f2ac..b389e6be211 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md @@ -1,6 +1,6 @@ --- title: Checkout process review and implementation -description: This document provides an overview of the checkout process and how it is implemented in Spryker. +description: This document provides an overview of the checkout process and how it's implemented in Spryker. last_updated: Jun 16, 2021 template: howto-guide-template originalLink: https://documentation.spryker.com/2021080/docs/checkout-process-review-and-implementation @@ -80,7 +80,7 @@ Symfony forms provide a mechanism to store data into objects without needing man ### Checkout form submission -On form submission, the same processing starts with the difference that if form submit is detected, then the validation is called: +On form submission, the same processing starts with the difference that if form submit's detected, then the validation is called: * If the form is invalid, then the view is rendered with validation errors. * If form data is valid, then `execute()` is called on the step that executes the step-related logic. diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-steps.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-steps.md index 99f7e0e4ab8..7facabe4ebb 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-steps.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-steps.md @@ -45,7 +45,7 @@ The checkout process consists of the following steps: Read on to learn more on each step. ## Entry step -The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it is not rendered. +The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it's not rendered. ## Customer step The customer step provides three forms: @@ -56,7 +56,7 @@ The customer step provides three forms: This step is responsible for filling `CustomerTransfer` with corresponding data. The authentication logic is left to the customer module, this step only delegates calls to and from the customer module and mapping data with forms. ## Address step -The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it is saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled. +The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it's saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled. ## Shipment step Get shipment method information and store it in the quote. This step requires additional configuration because different shipment providers and different ways forms must be handled for each. diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/approval-process-feature-overview.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/approval-process-feature-overview.md index e3fe1e3e26b..e50c2add949 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/approval-process-feature-overview.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/approval-process-feature-overview.md @@ -20,7 +20,7 @@ Permissions related to the approval process are configured based on the restrict Approvers can only approve orders of employees *within their own business unit*. -If an employee with a *Buy up to grand total* limit is in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit is the direct parent of the employee's business unit. +If an employee with a *Buy up to grand total* limit's in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit's the direct parent of the employee's business unit. {% endinfo_block %} @@ -138,7 +138,7 @@ The company has the following company users: | Manager | Approver | Has the *Approve up to grand total* permission set to €600. | | Head of the department | Approver | Has the *Approve up to grand total* permission set to €1000. | -Quote C needs approval that has to be provided by the head of the department because the manager's approval limit is lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout. +Quote C needs approval that has to be provided by the head of the department because the manager's approval limit's lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout. #### Case 4: Approval Process is not initiated diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md index 572f3147f74..06043caa999 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md @@ -25,4 +25,4 @@ For the **Add to cart** icon to be active for the product on the **Catalog** pag A product belonging to a [product group](/docs/pbc/all/product-information-management/{{site.version}}/base-shop/feature-overviews/product-feature-overview/product-feature-overview.html) can also be added to the cart from the **Category** page. However, like with regular products, a product from the product group must have no more than one variant and be available. -If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it is added without any options. +If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it's added without any options. diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md index 05007878a4a..4e34fd82ab1 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md @@ -95,7 +95,7 @@ All the thresholds have a store relation. If you have a multi-store and multi-cu ## Merchant order thresholds -A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it is defined. +A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it's defined. If global and merchant order thresholds are defined, both are applied to the customers' orders belonging to the merchant relation. diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/comments-feature-overview.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/comments-feature-overview.md index 85d096f0afe..9d6a376b3a2 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/comments-feature-overview.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/comments-feature-overview.md @@ -23,7 +23,7 @@ Thus, the Comments feature lets your B2B customers effectively communicate and d ## Comments widget -Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it is the **Shopping Cart** page. +Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it's the **Shopping Cart** page. The comment contains the following information: diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-global-thresholds.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-global-thresholds.md index 36cf02caa74..f0b01fb703f 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-global-thresholds.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-global-thresholds.md @@ -69,7 +69,7 @@ In the **Message** field, enter *{% raw %}{{{% endraw %}threshold{% raw %}}}{% e | ATTRIBUTE |DESCRIPTION| | --- | --- | -| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. | +| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. | | ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.| |MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._

Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. | | ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. | diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md index a978691f21c..105ff504470 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md @@ -73,7 +73,7 @@ The page refreshes with a success message displayed. | ATTRIBUTE |DESCRIPTION| | --- | --- | -| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. | +| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. | | ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.| |MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._

Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. | | ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. | diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md index d937d4742a6..794a48b9248 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md @@ -16,7 +16,7 @@ This endpoint allows finalizing the checkout process by placing an order. After sending a request, the cart is deleted, and you cannot make any further changes in the checkout data. This means the endpoint is best used for checkouts that can be performed in one pass or for finalizing a checkout after [submitting checkout data](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.html). -The endpoint also provides information on whether it is necessary to redirect the user to a third-party page to complete the payment. +The endpoint also provides information on whether it's necessary to redirect the user to a third-party page to complete the payment. ## Installation diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md index e2bcb887ab5..4417d89ac72 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md @@ -1173,8 +1173,8 @@ In case of a successful update, the endpoint responds with information that can | addresses | iso2Code | String | Specifies an ISO 2 Country Code to use. | | addresses | company | String | Specifies the customer's company. | | addresses | phone | String | Specifies the customer's phone number. | -| addresses | isDefaultShipping | String | Defines if it is the default shipping address of the customer. | -| addresses | isDefaultBilling | String | Defines if it is the default billing address of the customer. | +| addresses | isDefaultShipping | String | Defines if it's the default shipping address of the customer. | +| addresses | isDefaultBilling | String | Defines if it's the default billing address of the customer. | | shipments | Items | Array | A list of items in the shipment. | | shipments | requestedDeliveryDate | Date | Desired delivery date. | | shipments | shippingAddress | Object | The address to which this shipment will be delivered. | diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md index e48232f20aa..2bd5d9843aa 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md @@ -3002,7 +3002,7 @@ To delete a cart, send the request: {% info_block infoBox "Deleting carts" %} -You cannot delete a cart if it is the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically. +You cannot delete a cart if it's the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically. {% endinfo_block %} diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md index bc1e48de308..25b4b6a4538 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md @@ -2691,7 +2691,7 @@ To change the number of items in a cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***cart_uuid*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. | -| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. | +| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. | ### Request @@ -3176,7 +3176,7 @@ To remove an item from a registered user's cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***{% raw %}{{{% endraw %}cart_uuid{% raw %}}}{% endraw %}*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. | -| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. | +| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md index b843729cd90..a14136fb6f2 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md @@ -2879,7 +2879,7 @@ To change item quantity, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request @@ -3250,7 +3250,7 @@ To remove an item from a guest cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md index 81db053841c..c77c806b2ad 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md @@ -1006,7 +1006,7 @@ For the attributes of other included resources, see: Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account. -To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: +To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: **src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php** diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md index 4cbc9a411ad..645ee521a4b 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md @@ -85,7 +85,7 @@ class ItemTaxAmountCalculatorPlugin extends AbstractPlugin implements Calculatio } ``` -6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it is not present. +6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it's not present. ```php

General Terms



(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information



We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information



Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -4270,7 +4270,7 @@ To retrieve a registered user's cart, send the request: "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, diff --git a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md index a8ef70a03c3..d355d594a99 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md @@ -1470,7 +1470,7 @@ It is the responsibility of the API Client to track whether the selected items a "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms



(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information



We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information



Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -1547,7 +1547,7 @@ It is the responsibility of the API Client to track whether the selected items a | groupKey | String | Unique item identifier. The value is generated based on product properties. | | abstractSku | String | Unique identifier of the abstract product owning this concrete product. | | amount | Integer | Amount of the products in the cart. | -| unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | +| unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | | sumPrice | Integer | Sum of all items prices calculated. | | taxRate | Integer | Current tax rate in percent. | | unitNetPrice | Integer | Single item net price. | @@ -1614,7 +1614,7 @@ To change the number of items in a cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. | -| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. | +| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. | ### Request @@ -1784,7 +1784,7 @@ To remove an item from a registered user's cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. | -| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it is equal to the item’s SKU. | +| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it's equal to the item’s SKU. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md index 35e673ffb17..67fd6bea1c0 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md @@ -1593,7 +1593,7 @@ It is the responsibility of the API Client to track whether the selected items a "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -1760,7 +1760,7 @@ To change item quantity, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request @@ -1823,7 +1823,7 @@ To remove an item from a guest cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md index f20f35baa25..45181eada92 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md @@ -1811,7 +1811,7 @@ When retrieving the cart with `guestCartId`, the response includes a single obje "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -1948,7 +1948,7 @@ For the attributes of other included resources, see: Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account. -To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: +To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: **src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php** diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/calculation-data-structure.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/calculation-data-structure.md index 5d0e1ca3cd1..21552f869da 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/calculation-data-structure.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/calculation-data-structure.md @@ -62,7 +62,7 @@ The entire data object is stored in the session, and it consists of the followin |sumGrossPrice (int)|The sum of item's gross price, calculated with `PriceCalculatorPlugin`.| |unitNetPrice (int) | A single item net price, set with `CartItemPricePlugin` (cart expander). | | sumNetPrice (int) | The sum of items net price, calculated with `PriceCalculatorPlugin`. | -| unitPrice (int) | A single item price without assuming whether it is new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). | +| unitPrice (int) | A single item price without assuming whether it's new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). | | sumPrice (int) | The sum of item's price calculated with `PriceCalculatorPlugin`. | | taxRate (float) | The current tax rate set by `ProductItemTaxRateCalculatorPlugin`. | | refundableAmount (int) | The item's available refundable amount (order only). It's set by `RefundableAmountCalculatorPlugin`. | diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md index 7021b48f2ac..b389e6be211 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md @@ -1,6 +1,6 @@ --- title: Checkout process review and implementation -description: This document provides an overview of the checkout process and how it is implemented in Spryker. +description: This document provides an overview of the checkout process and how it's implemented in Spryker. last_updated: Jun 16, 2021 template: howto-guide-template originalLink: https://documentation.spryker.com/2021080/docs/checkout-process-review-and-implementation @@ -80,7 +80,7 @@ Symfony forms provide a mechanism to store data into objects without needing man ### Checkout form submission -On form submission, the same processing starts with the difference that if form submit is detected, then the validation is called: +On form submission, the same processing starts with the difference that if form submit's detected, then the validation is called: * If the form is invalid, then the view is rendered with validation errors. * If form data is valid, then `execute()` is called on the step that executes the step-related logic. diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-steps.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-steps.md index 99f7e0e4ab8..7facabe4ebb 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-steps.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-steps.md @@ -45,7 +45,7 @@ The checkout process consists of the following steps: Read on to learn more on each step. ## Entry step -The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it is not rendered. +The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it's not rendered. ## Customer step The customer step provides three forms: @@ -56,7 +56,7 @@ The customer step provides three forms: This step is responsible for filling `CustomerTransfer` with corresponding data. The authentication logic is left to the customer module, this step only delegates calls to and from the customer module and mapping data with forms. ## Address step -The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it is saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled. +The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it's saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled. ## Shipment step Get shipment method information and store it in the quote. This step requires additional configuration because different shipment providers and different ways forms must be handled for each. diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/approval-process-feature-overview.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/approval-process-feature-overview.md index 134526ad96f..f472888796a 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/approval-process-feature-overview.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/approval-process-feature-overview.md @@ -20,7 +20,7 @@ Permissions related to the approval process are configured based on the restrict Approvers can only approve orders of employees *within their own business unit*. -If an employee with a *Buy up to grand total* limit is in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit is the direct parent of the employee's business unit. +If an employee with a *Buy up to grand total* limit's in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit's the direct parent of the employee's business unit. {% endinfo_block %} @@ -138,7 +138,7 @@ The company has the following company users: | Manager | Approver | Has the *Approve up to grand total* permission set to €600. | | Head of the department | Approver | Has the *Approve up to grand total* permission set to €1000. | -Quote C needs approval that has to be provided by the head of the department because the manager's approval limit is lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout. +Quote C needs approval that has to be provided by the head of the department because the manager's approval limit's lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout. #### Case 4: Approval Process is not initiated diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md index 572f3147f74..06043caa999 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md @@ -25,4 +25,4 @@ For the **Add to cart** icon to be active for the product on the **Catalog** pag A product belonging to a [product group](/docs/pbc/all/product-information-management/{{site.version}}/base-shop/feature-overviews/product-feature-overview/product-feature-overview.html) can also be added to the cart from the **Category** page. However, like with regular products, a product from the product group must have no more than one variant and be available. -If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it is added without any options. +If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it's added without any options. diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md index 05007878a4a..4e34fd82ab1 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md @@ -95,7 +95,7 @@ All the thresholds have a store relation. If you have a multi-store and multi-cu ## Merchant order thresholds -A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it is defined. +A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it's defined. If global and merchant order thresholds are defined, both are applied to the customers' orders belonging to the merchant relation. diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/comments-feature-overview.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/comments-feature-overview.md index 85d096f0afe..9d6a376b3a2 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/comments-feature-overview.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/comments-feature-overview.md @@ -23,7 +23,7 @@ Thus, the Comments feature lets your B2B customers effectively communicate and d ## Comments widget -Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it is the **Shopping Cart** page. +Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it's the **Shopping Cart** page. The comment contains the following information: diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-global-thresholds.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-global-thresholds.md index 36cf02caa74..f0b01fb703f 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-global-thresholds.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-global-thresholds.md @@ -69,7 +69,7 @@ In the **Message** field, enter *{% raw %}{{{% endraw %}threshold{% raw %}}}{% e | ATTRIBUTE |DESCRIPTION| | --- | --- | -| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. | +| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. | | ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.| |MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._

Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. | | ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. | diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md index a978691f21c..105ff504470 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md @@ -73,7 +73,7 @@ The page refreshes with a success message displayed. | ATTRIBUTE |DESCRIPTION| | --- | --- | -| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. | +| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. | | ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.| |MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._

Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. | | ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. | diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md index d937d4742a6..794a48b9248 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md @@ -16,7 +16,7 @@ This endpoint allows finalizing the checkout process by placing an order. After sending a request, the cart is deleted, and you cannot make any further changes in the checkout data. This means the endpoint is best used for checkouts that can be performed in one pass or for finalizing a checkout after [submitting checkout data](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.html). -The endpoint also provides information on whether it is necessary to redirect the user to a third-party page to complete the payment. +The endpoint also provides information on whether it's necessary to redirect the user to a third-party page to complete the payment. ## Installation diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md index b8861ef6993..b03fa816fd9 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md @@ -3006,7 +3006,7 @@ To delete a cart, send the request: {% info_block infoBox "Deleting carts" %} -You cannot delete a cart if it is the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically. +You cannot delete a cart if it's the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically. {% endinfo_block %} diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md index 50f138993a1..5d2a6ed4c0c 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md @@ -2704,7 +2704,7 @@ To change the number of items in a cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***cart_uuid*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. | -| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. | +| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. | ### Request @@ -3189,7 +3189,7 @@ To remove an item from a registered user's cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***{% raw %}{{{% endraw %}cart_uuid{% raw %}}}{% endraw %}*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. | -| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. | +| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md index 5ff5eddd985..135ecbfad06 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md @@ -2890,7 +2890,7 @@ To change item quantity, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request @@ -3274,7 +3274,7 @@ To remove an item from a guest cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md index 1a0b73dc91c..c5f0160b9aa 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md @@ -1006,7 +1006,7 @@ When retrieving the cart with `guestCartId`, the response includes a single obje Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account. -To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: +To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: **src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php** diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md index 4cbc9a411ad..645ee521a4b 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md @@ -85,7 +85,7 @@ class ItemTaxAmountCalculatorPlugin extends AbstractPlugin implements Calculatio } ``` -6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it is not present. +6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it's not present. ```php

General Terms



(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information



We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information



Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -4272,7 +4272,7 @@ To retrieve a registered user's cart, send the request: "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, diff --git a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md index a8ef70a03c3..d355d594a99 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md @@ -1470,7 +1470,7 @@ It is the responsibility of the API Client to track whether the selected items a "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms



(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information



We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information



Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -1547,7 +1547,7 @@ It is the responsibility of the API Client to track whether the selected items a | groupKey | String | Unique item identifier. The value is generated based on product properties. | | abstractSku | String | Unique identifier of the abstract product owning this concrete product. | | amount | Integer | Amount of the products in the cart. | -| unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | +| unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | | sumPrice | Integer | Sum of all items prices calculated. | | taxRate | Integer | Current tax rate in percent. | | unitNetPrice | Integer | Single item net price. | @@ -1614,7 +1614,7 @@ To change the number of items in a cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. | -| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. | +| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. | ### Request @@ -1784,7 +1784,7 @@ To remove an item from a registered user's cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. | -| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it is equal to the item’s SKU. | +| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it's equal to the item’s SKU. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md index 35e673ffb17..67fd6bea1c0 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md @@ -1593,7 +1593,7 @@ It is the responsibility of the API Client to track whether the selected items a "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -1760,7 +1760,7 @@ To change item quantity, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request @@ -1823,7 +1823,7 @@ To remove an item from a guest cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md index 31fbed8ec03..d0ca2ac1e9b 100644 --- a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md +++ b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md @@ -1811,7 +1811,7 @@ When retrieving the cart with `guestCartId`, the response includes a single obje "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -1950,7 +1950,7 @@ For the attributes of other included resources, see: Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account. -To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: +To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: **src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php** diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/calculation-data-structure.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/calculation-data-structure.md index 550dd95f015..b6659f5c394 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/calculation-data-structure.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/calculation-data-structure.md @@ -62,7 +62,7 @@ The entire data object is stored in the session, and it consists of the followin |sumGrossPrice (int)|The sum of item's gross price, calculated with `PriceCalculatorPlugin`.| |unitNetPrice (int) | A single item net price, set with `CartItemPricePlugin` (cart expander). | | sumNetPrice (int) | The sum of items net price, calculated with `PriceCalculatorPlugin`. | -| unitPrice (int) | A single item price without assuming whether it is new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). | +| unitPrice (int) | A single item price without assuming whether it's new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). | | sumPrice (int) | The sum of item's price calculated with `PriceCalculatorPlugin`. | | taxRate (float) | The current tax rate set by `ProductItemTaxRateCalculatorPlugin`. | | refundableAmount (int) | The item's available refundable amount (order only). It's set by `RefundableAmountCalculatorPlugin`. | diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md index 7021b48f2ac..b389e6be211 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md @@ -1,6 +1,6 @@ --- title: Checkout process review and implementation -description: This document provides an overview of the checkout process and how it is implemented in Spryker. +description: This document provides an overview of the checkout process and how it's implemented in Spryker. last_updated: Jun 16, 2021 template: howto-guide-template originalLink: https://documentation.spryker.com/2021080/docs/checkout-process-review-and-implementation @@ -80,7 +80,7 @@ Symfony forms provide a mechanism to store data into objects without needing man ### Checkout form submission -On form submission, the same processing starts with the difference that if form submit is detected, then the validation is called: +On form submission, the same processing starts with the difference that if form submit's detected, then the validation is called: * If the form is invalid, then the view is rendered with validation errors. * If form data is valid, then `execute()` is called on the step that executes the step-related logic. diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-steps.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-steps.md index 99f7e0e4ab8..7facabe4ebb 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-steps.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-steps.md @@ -45,7 +45,7 @@ The checkout process consists of the following steps: Read on to learn more on each step. ## Entry step -The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it is not rendered. +The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it's not rendered. ## Customer step The customer step provides three forms: @@ -56,7 +56,7 @@ The customer step provides three forms: This step is responsible for filling `CustomerTransfer` with corresponding data. The authentication logic is left to the customer module, this step only delegates calls to and from the customer module and mapping data with forms. ## Address step -The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it is saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled. +The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it's saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled. ## Shipment step Get shipment method information and store it in the quote. This step requires additional configuration because different shipment providers and different ways forms must be handled for each. diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/approval-process-feature-overview.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/approval-process-feature-overview.md index 1994885b70a..a83ae24daae 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/approval-process-feature-overview.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/approval-process-feature-overview.md @@ -20,7 +20,7 @@ Permissions related to the approval process are configured based on the restrict Approvers can only approve orders of employees *within their own business unit*. -If an employee with a *Buy up to grand total* limit is in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit is the direct parent of the employee's business unit. +If an employee with a *Buy up to grand total* limit's in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit's the direct parent of the employee's business unit. {% endinfo_block %} @@ -138,7 +138,7 @@ The company has the following company users: | Manager | Approver | Has the *Approve up to grand total* permission set to €600. | | Head of the department | Approver | Has the *Approve up to grand total* permission set to €1000. | -Quote C needs approval that has to be provided by the head of the department because the manager's approval limit is lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout. +Quote C needs approval that has to be provided by the head of the department because the manager's approval limit's lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout. #### Case 4: Approval Process is not initiated diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md index 572f3147f74..06043caa999 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md @@ -25,4 +25,4 @@ For the **Add to cart** icon to be active for the product on the **Catalog** pag A product belonging to a [product group](/docs/pbc/all/product-information-management/{{site.version}}/base-shop/feature-overviews/product-feature-overview/product-feature-overview.html) can also be added to the cart from the **Category** page. However, like with regular products, a product from the product group must have no more than one variant and be available. -If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it is added without any options. +If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it's added without any options. diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md index c3fb8cc03a3..ee2038caf77 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md @@ -95,7 +95,7 @@ All the thresholds have a store relation. If you have a multi-store and multi-cu ## Merchant order thresholds -A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it is defined. +A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it's defined. If global and merchant order thresholds are defined, both are applied to the customers' orders belonging to the merchant relation. diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/comments-feature-overview.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/comments-feature-overview.md index 85d096f0afe..9d6a376b3a2 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/comments-feature-overview.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/comments-feature-overview.md @@ -23,7 +23,7 @@ Thus, the Comments feature lets your B2B customers effectively communicate and d ## Comments widget -Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it is the **Shopping Cart** page. +Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it's the **Shopping Cart** page. The comment contains the following information: diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-global-thresholds.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-global-thresholds.md index 281314a1c53..8914120ef31 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-global-thresholds.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-global-thresholds.md @@ -69,7 +69,7 @@ In the **Message** field, enter *{% raw %}{{{% endraw %}threshold{% raw %}}}{% e | ATTRIBUTE |DESCRIPTION| | --- | --- | -| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. | +| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. | | ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.| |MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._

Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. | | ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. | diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md index a978691f21c..105ff504470 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md @@ -73,7 +73,7 @@ The page refreshes with a success message displayed. | ATTRIBUTE |DESCRIPTION| | --- | --- | -| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. | +| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. | | ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.| |MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._

Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. | | ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. | diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md index 58a87c35a0d..1e2c77e8469 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md @@ -16,7 +16,7 @@ This endpoint allows finalizing the checkout process by placing an order. After sending a request, the cart is deleted, and you cannot make any further changes in the checkout data. This means the endpoint is best used for checkouts that can be performed in one pass or for finalizing a checkout after [submitting checkout data](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.html). -The endpoint also provides information on whether it is necessary to redirect the user to a third-party page to complete the payment. +The endpoint also provides information on whether it's necessary to redirect the user to a third-party page to complete the payment. ## Installation diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md index b8861ef6993..b03fa816fd9 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md @@ -3006,7 +3006,7 @@ To delete a cart, send the request: {% info_block infoBox "Deleting carts" %} -You cannot delete a cart if it is the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically. +You cannot delete a cart if it's the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically. {% endinfo_block %} diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md index 50f138993a1..5d2a6ed4c0c 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md @@ -2704,7 +2704,7 @@ To change the number of items in a cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***cart_uuid*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. | -| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. | +| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. | ### Request @@ -3189,7 +3189,7 @@ To remove an item from a registered user's cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***{% raw %}{{{% endraw %}cart_uuid{% raw %}}}{% endraw %}*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. | -| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. | +| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md index 5ff5eddd985..135ecbfad06 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md @@ -2890,7 +2890,7 @@ To change item quantity, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request @@ -3274,7 +3274,7 @@ To remove an item from a guest cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md index 1a0b73dc91c..c5f0160b9aa 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md @@ -1006,7 +1006,7 @@ When retrieving the cart with `guestCartId`, the response includes a single obje Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account. -To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: +To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: **src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php** diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md index 4cbc9a411ad..645ee521a4b 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md @@ -85,7 +85,7 @@ class ItemTaxAmountCalculatorPlugin extends AbstractPlugin implements Calculatio } ``` -6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it is not present. +6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it's not present. ```php

General Terms



(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information



We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information



Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -4272,7 +4272,7 @@ To retrieve a registered user's cart, send the request: "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, diff --git a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md index dbf16d9a299..eb4536ee50c 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md @@ -1470,7 +1470,7 @@ It is the responsibility of the API Client to track whether the selected items a "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms



(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information



We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information



Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -1547,7 +1547,7 @@ It is the responsibility of the API Client to track whether the selected items a | groupKey | String | Unique item identifier. The value is generated based on product properties. | | abstractSku | String | Unique identifier of the abstract product owning this concrete product. | | amount | Integer | Amount of the products in the cart. | -| unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | +| unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. | | sumPrice | Integer | Sum of all items prices calculated. | | taxRate | Integer | Current tax rate in percent. | | unitNetPrice | Integer | Single item net price. | @@ -1614,7 +1614,7 @@ To change the number of items in a cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. | -| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. | +| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. | ### Request @@ -1784,7 +1784,7 @@ To remove an item from a registered user's cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. | -| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it is equal to the item’s SKU. | +| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it's equal to the item’s SKU. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md index 35e673ffb17..67fd6bea1c0 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md @@ -1593,7 +1593,7 @@ It is the responsibility of the API Client to track whether the selected items a "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -1760,7 +1760,7 @@ To change item quantity, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request @@ -1823,7 +1823,7 @@ To remove an item from a guest cart, send the request: | PATH PARAMETER | DESCRIPTION | | --- | --- | | {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). | -| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | +| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. | ### Request diff --git a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md index 31fbed8ec03..d0ca2ac1e9b 100644 --- a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md +++ b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md @@ -1811,7 +1811,7 @@ When retrieving the cart with `guestCartId`, the response includes a single obje "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -1950,7 +1950,7 @@ For the attributes of other included resources, see: Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account. -To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: +To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart: **src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php** diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/cms-blocks-overview.md b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/cms-blocks-overview.md index 300c1a08732..0aacc97e81b 100644 --- a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/cms-blocks-overview.md +++ b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/cms-blocks-overview.md @@ -25,7 +25,7 @@ The CMS feature is shipped with several block templates by default. A developer ## CMS block validity period -When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it is added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period. +When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it's added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period. ## CMS block store relation diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md index eac371535d2..ad35b414590 100644 --- a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md +++ b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md @@ -38,7 +38,7 @@ A Developer can create more CMS Block email templates. ### Naming of email CMS blocks -Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it is assigned to. +Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it's assigned to. #### Template assignment @@ -116,7 +116,7 @@ To learn how a Back Office User creates translations, see [Managing Glossary](/d ### Variables in Email Templates -Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it is sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition. +Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it's sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition. A developer can provide a full list of variables and create new ones. diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/templates-and-slots-overview.md b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/templates-and-slots-overview.md index 11b88dbd67e..196f7650eb6 100644 --- a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/templates-and-slots-overview.md +++ b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/templates-and-slots-overview.md @@ -165,7 +165,7 @@ The template list contains the following information: | description | Template description. It is shown in the Back Office. | "The layout of Slots in the Home Page, always below Store Header including Navigation, and above Store Footer." | Note the following: -* If a template has only inactive slots, it is still considered a template with slots. Therefore, it is shown in the **Slots** section. +* If a template has only inactive slots, it's still considered a template with slots. Therefore, it's shown in the **Slots** section. * If a template is on an imported template list but does not have a slot, it's not considered a template with slots. Therefore, it's not displayed in the **Slots** section. ### Slot list @@ -179,7 +179,7 @@ The slot list contains the following information: | content provider | Defines the source of content of this slot. | SprykerCmsSlotBlock | | name | Alphabetical identifier of the slot. It is shown in the Back Office. | "Header Top" | | description | Description of the slot. It is shown in the Back Office. | "A content area in the Header section, that is below the logo and search section and above main navigation" | -| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it is not rendered in the Storefront by the slot widget. | 1 | +| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it's not rendered in the Storefront by the slot widget. | 1 | ## Content providers A content provider is a source from which Slot Widget fetches content to embed into slots and, subsequently, render it in the Storefront. With templates and slots, you can use slots to embed the content created in your Spryker project or CMS editors of technology partners (for example, [CoreMedia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/coremedia.html), [E-spirit](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/e-spirit.html), [Styla](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/styla.html), [Magnolia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/magnolia.html)). @@ -196,7 +196,7 @@ The following schema shows how content is managed with the help of templates wit ![image](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/CMS/Templates+%26+Slots/Templates+%26+Slots+Feature+Overview/templates-and-slots.png) ## Visibility conditions -When the content manager assigns a CMS block to a slot, it is displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it. +When the content manager assigns a CMS block to a slot, it's displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it. Page identifiers used to define visibility conditions depend on the page type to which a template with slots is applied. You can check identifiers for each page type in the following table. @@ -255,7 +255,7 @@ Properties are used by slot widgets to identify for which entity content is bein You can add other properties to meet your project or external content provider requirements. #### Property Types -Properties can be either `required` or `autofilled`. If a property is of the required type, it is entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows: +Properties can be either `required` or `autofilled`. If a property is of the required type, it's entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows: ```twig {% raw %}{%{% endraw %} cms_slot "cms-slot-key" autofilled ['locale', 'store'] required ['requiredProperty'] with { diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md b/docs/pbc/all/content-management-system/202311.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md index ec0f8912501..d8b28975b35 100644 --- a/docs/pbc/all/content-management-system/202311.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md +++ b/docs/pbc/all/content-management-system/202311.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md @@ -30,7 +30,7 @@ This document describes the `cms_slot.csv` file to configure [CMS Slot](/docs/pb | content_provider | ✓ | String |Must be a valid type of content provider. | Defines the source of content of this slot. | | name | ✓ | String | | Alphabetical identifier of the slot. It will be shown in the Back Office. | | description | ✓ | String | | Description of the slot. It will be shown in the Back Office. | -| is_active | | Boolean |
  • Inactive = 0
  • Active = 1
  • If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive.
If the slot is inactive, it is not rendered in the Storefront by the slot widget. | +| is_active | | Boolean |
  • Inactive = 0
  • Active = 1
  • If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive.
If the slot is inactive, it's not rendered in the Storefront by the slot widget. | diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md index d535f364159..8521a332119 100644 --- a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md +++ b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md @@ -58,7 +58,7 @@ You don’t need to activate the email CMS block, as the deactivated status of t * Add a [glossary key](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html) to the email block. When the email is sent, the key is replaced with the translation you defined for the locale selected by the customer. To learn how to add translations, see [Managing glossary](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html). -* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it is replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones. +* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it's replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones. ## Reference information: Create an email CMS block diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md index 3fe4820b048..12dad949cc9 100644 --- a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md +++ b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md @@ -19,14 +19,14 @@ related: link: docs/pbc/all/content-management-system/page.version/base-shop/product-sets-feature-overview.html --- -This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it is on a page. +This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it's on a page. To reorder product sets by editing their weight, do the following: 1. Go to **Merchandising > Product Sets**. 2. On the **Product Sets** page, click **Reorder Product Sets**. This opens the **Reorder Product Sets** page. The product sets are displayed in the ascending order of their current weight. -3. Change the **WEIGHT** of each product set, so that it is in the needed position relatively to the other product sets. +3. Change the **WEIGHT** of each product set, so that it's in the needed position relatively to the other product sets. 4. Click **Submit**. This opens the **Product Sets** page with a success message displayed. The updated **WEIGHT** is displayed in the list and the product sets are ordered according to it. diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md index eac6f5b82ad..44a21d725e1 100644 --- a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md +++ b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md @@ -50,7 +50,7 @@ Request sample: `GET http://glue.mysprykershop.com/navigations/SOCIAL_LINKS` {% info_block infoBox "Performance" %} -If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it is absolutely necessary. +If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it's absolutely necessary. {% endinfo_block %} diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md b/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md index 6af1f2836cc..ff8272c3e5b 100644 --- a/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md +++ b/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md @@ -14,7 +14,7 @@ related: link: docs/pbc/all/content-management-system/page.version/base-shop/cms-feature-overview/cms-feature-overview.html --- -By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it is transferred to TEXT (65535 bytes), and for PostgreSQL, it is transferred to TEXT (unlimited length). +By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it's transferred to TEXT (65535 bytes), and for PostgreSQL, it's transferred to TEXT (unlimited length). If your project requires more, you can redefine the field's size in the `spy_cms_version` table. diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md b/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md index 24bd13e61b0..2569ef10dfb 100644 --- a/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md +++ b/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md @@ -246,7 +246,7 @@ class PersonalizedProductQueryPlugin implements QueryInterface {% info_block infoBox %} -The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it is used with the random score from Elasticsearch. You can change these values according to your needs. +The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it's used with the random score from Elasticsearch. You can change these values according to your needs. {% endinfo_block %} diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/cms-blocks-overview.md b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/cms-blocks-overview.md index 300c1a08732..0aacc97e81b 100644 --- a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/cms-blocks-overview.md +++ b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/cms-blocks-overview.md @@ -25,7 +25,7 @@ The CMS feature is shipped with several block templates by default. A developer ## CMS block validity period -When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it is added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period. +When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it's added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period. ## CMS block store relation diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md index 244daf4c4fe..8bae34a724d 100644 --- a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md +++ b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md @@ -38,7 +38,7 @@ A Developer can create more CMS Block email templates. ### Naming of email CMS blocks -Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it is assigned to. +Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it's assigned to. #### Template assignment @@ -122,7 +122,7 @@ To learn how a Back Office User creates translations, see [Managing Glossary](/d ### Variables in Email Templates -Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it is sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition. +Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it's sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition. A developer can provide a full list of variables and create new ones. diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/templates-and-slots-overview.md b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/templates-and-slots-overview.md index 11b88dbd67e..196f7650eb6 100644 --- a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/templates-and-slots-overview.md +++ b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/templates-and-slots-overview.md @@ -165,7 +165,7 @@ The template list contains the following information: | description | Template description. It is shown in the Back Office. | "The layout of Slots in the Home Page, always below Store Header including Navigation, and above Store Footer." | Note the following: -* If a template has only inactive slots, it is still considered a template with slots. Therefore, it is shown in the **Slots** section. +* If a template has only inactive slots, it's still considered a template with slots. Therefore, it's shown in the **Slots** section. * If a template is on an imported template list but does not have a slot, it's not considered a template with slots. Therefore, it's not displayed in the **Slots** section. ### Slot list @@ -179,7 +179,7 @@ The slot list contains the following information: | content provider | Defines the source of content of this slot. | SprykerCmsSlotBlock | | name | Alphabetical identifier of the slot. It is shown in the Back Office. | "Header Top" | | description | Description of the slot. It is shown in the Back Office. | "A content area in the Header section, that is below the logo and search section and above main navigation" | -| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it is not rendered in the Storefront by the slot widget. | 1 | +| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it's not rendered in the Storefront by the slot widget. | 1 | ## Content providers A content provider is a source from which Slot Widget fetches content to embed into slots and, subsequently, render it in the Storefront. With templates and slots, you can use slots to embed the content created in your Spryker project or CMS editors of technology partners (for example, [CoreMedia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/coremedia.html), [E-spirit](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/e-spirit.html), [Styla](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/styla.html), [Magnolia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/magnolia.html)). @@ -196,7 +196,7 @@ The following schema shows how content is managed with the help of templates wit ![image](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/CMS/Templates+%26+Slots/Templates+%26+Slots+Feature+Overview/templates-and-slots.png) ## Visibility conditions -When the content manager assigns a CMS block to a slot, it is displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it. +When the content manager assigns a CMS block to a slot, it's displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it. Page identifiers used to define visibility conditions depend on the page type to which a template with slots is applied. You can check identifiers for each page type in the following table. @@ -255,7 +255,7 @@ Properties are used by slot widgets to identify for which entity content is bein You can add other properties to meet your project or external content provider requirements. #### Property Types -Properties can be either `required` or `autofilled`. If a property is of the required type, it is entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows: +Properties can be either `required` or `autofilled`. If a property is of the required type, it's entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows: ```twig {% raw %}{%{% endraw %} cms_slot "cms-slot-key" autofilled ['locale', 'store'] required ['requiredProperty'] with { diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md b/docs/pbc/all/content-management-system/202404.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md index ec0f8912501..d8b28975b35 100644 --- a/docs/pbc/all/content-management-system/202404.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md +++ b/docs/pbc/all/content-management-system/202404.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md @@ -30,7 +30,7 @@ This document describes the `cms_slot.csv` file to configure [CMS Slot](/docs/pb | content_provider | ✓ | String |Must be a valid type of content provider. | Defines the source of content of this slot. | | name | ✓ | String | | Alphabetical identifier of the slot. It will be shown in the Back Office. | | description | ✓ | String | | Description of the slot. It will be shown in the Back Office. | -| is_active | | Boolean |
  • Inactive = 0
  • Active = 1
  • If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive.
If the slot is inactive, it is not rendered in the Storefront by the slot widget. | +| is_active | | Boolean |
  • Inactive = 0
  • Active = 1
  • If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive.
If the slot is inactive, it's not rendered in the Storefront by the slot widget. | diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md index d535f364159..8521a332119 100644 --- a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md +++ b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md @@ -58,7 +58,7 @@ You don’t need to activate the email CMS block, as the deactivated status of t * Add a [glossary key](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html) to the email block. When the email is sent, the key is replaced with the translation you defined for the locale selected by the customer. To learn how to add translations, see [Managing glossary](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html). -* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it is replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones. +* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it's replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones. ## Reference information: Create an email CMS block diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md index 3fe4820b048..12dad949cc9 100644 --- a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md +++ b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md @@ -19,14 +19,14 @@ related: link: docs/pbc/all/content-management-system/page.version/base-shop/product-sets-feature-overview.html --- -This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it is on a page. +This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it's on a page. To reorder product sets by editing their weight, do the following: 1. Go to **Merchandising > Product Sets**. 2. On the **Product Sets** page, click **Reorder Product Sets**. This opens the **Reorder Product Sets** page. The product sets are displayed in the ascending order of their current weight. -3. Change the **WEIGHT** of each product set, so that it is in the needed position relatively to the other product sets. +3. Change the **WEIGHT** of each product set, so that it's in the needed position relatively to the other product sets. 4. Click **Submit**. This opens the **Product Sets** page with a success message displayed. The updated **WEIGHT** is displayed in the list and the product sets are ordered according to it. diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md index e6aa66f80f6..b93662504d9 100644 --- a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md +++ b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md @@ -50,7 +50,7 @@ Request sample: `GET http://glue.mysprykershop.com/navigations/SOCIAL_LINKS` {% info_block infoBox "Performance" %} -If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it is absolutely necessary. +If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it's absolutely necessary. {% endinfo_block %} diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md b/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md index 6af1f2836cc..ff8272c3e5b 100644 --- a/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md +++ b/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md @@ -14,7 +14,7 @@ related: link: docs/pbc/all/content-management-system/page.version/base-shop/cms-feature-overview/cms-feature-overview.html --- -By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it is transferred to TEXT (65535 bytes), and for PostgreSQL, it is transferred to TEXT (unlimited length). +By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it's transferred to TEXT (65535 bytes), and for PostgreSQL, it's transferred to TEXT (unlimited length). If your project requires more, you can redefine the field's size in the `spy_cms_version` table. diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md b/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md index 24bd13e61b0..2569ef10dfb 100644 --- a/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md +++ b/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md @@ -246,7 +246,7 @@ class PersonalizedProductQueryPlugin implements QueryInterface {% info_block infoBox %} -The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it is used with the random score from Elasticsearch. You can change these values according to your needs. +The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it's used with the random score from Elasticsearch. You can change these values according to your needs. {% endinfo_block %} diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/cms-blocks-overview.md b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/cms-blocks-overview.md index 300c1a08732..0aacc97e81b 100644 --- a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/cms-blocks-overview.md +++ b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/cms-blocks-overview.md @@ -25,7 +25,7 @@ The CMS feature is shipped with several block templates by default. A developer ## CMS block validity period -When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it is added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period. +When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it's added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period. ## CMS block store relation diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md index 62c1f2d6d19..96559aef308 100644 --- a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md +++ b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md @@ -39,7 +39,7 @@ A Developer can create more CMS Block email templates. ### Naming of email CMS blocks -Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it is assigned to. +Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it's assigned to. #### Template assignment @@ -123,7 +123,7 @@ To learn how a Back Office User creates translations, see [Managing Glossary](/d ### Variables in Email Templates -Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it is sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition. +Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it's sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition. A developer can provide a full list of variables and create new ones. diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/templates-and-slots-overview.md b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/templates-and-slots-overview.md index 11b88dbd67e..196f7650eb6 100644 --- a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/templates-and-slots-overview.md +++ b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/templates-and-slots-overview.md @@ -165,7 +165,7 @@ The template list contains the following information: | description | Template description. It is shown in the Back Office. | "The layout of Slots in the Home Page, always below Store Header including Navigation, and above Store Footer." | Note the following: -* If a template has only inactive slots, it is still considered a template with slots. Therefore, it is shown in the **Slots** section. +* If a template has only inactive slots, it's still considered a template with slots. Therefore, it's shown in the **Slots** section. * If a template is on an imported template list but does not have a slot, it's not considered a template with slots. Therefore, it's not displayed in the **Slots** section. ### Slot list @@ -179,7 +179,7 @@ The slot list contains the following information: | content provider | Defines the source of content of this slot. | SprykerCmsSlotBlock | | name | Alphabetical identifier of the slot. It is shown in the Back Office. | "Header Top" | | description | Description of the slot. It is shown in the Back Office. | "A content area in the Header section, that is below the logo and search section and above main navigation" | -| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it is not rendered in the Storefront by the slot widget. | 1 | +| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it's not rendered in the Storefront by the slot widget. | 1 | ## Content providers A content provider is a source from which Slot Widget fetches content to embed into slots and, subsequently, render it in the Storefront. With templates and slots, you can use slots to embed the content created in your Spryker project or CMS editors of technology partners (for example, [CoreMedia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/coremedia.html), [E-spirit](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/e-spirit.html), [Styla](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/styla.html), [Magnolia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/magnolia.html)). @@ -196,7 +196,7 @@ The following schema shows how content is managed with the help of templates wit ![image](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/CMS/Templates+%26+Slots/Templates+%26+Slots+Feature+Overview/templates-and-slots.png) ## Visibility conditions -When the content manager assigns a CMS block to a slot, it is displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it. +When the content manager assigns a CMS block to a slot, it's displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it. Page identifiers used to define visibility conditions depend on the page type to which a template with slots is applied. You can check identifiers for each page type in the following table. @@ -255,7 +255,7 @@ Properties are used by slot widgets to identify for which entity content is bein You can add other properties to meet your project or external content provider requirements. #### Property Types -Properties can be either `required` or `autofilled`. If a property is of the required type, it is entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows: +Properties can be either `required` or `autofilled`. If a property is of the required type, it's entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows: ```twig {% raw %}{%{% endraw %} cms_slot "cms-slot-key" autofilled ['locale', 'store'] required ['requiredProperty'] with { diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md b/docs/pbc/all/content-management-system/202410.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md index b94e0de4b52..478e8d47ace 100644 --- a/docs/pbc/all/content-management-system/202410.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md +++ b/docs/pbc/all/content-management-system/202410.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md @@ -31,7 +31,7 @@ This document describes the `cms_slot.csv` file to configure [CMS Slot](/docs/pb | content_provider | ✓ | String |Must be a valid type of content provider. | Defines the source of content of this slot. | | name | ✓ | String | | Alphabetical identifier of the slot. It will be shown in the Back Office. | | description | ✓ | String | | Description of the slot. It will be shown in the Back Office. | -| is_active | | Boolean |
  • Inactive = 0
  • Active = 1
  • If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive.
If the slot is inactive, it is not rendered in the Storefront by the slot widget. | +| is_active | | Boolean |
  • Inactive = 0
  • Active = 1
  • If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive.
If the slot is inactive, it's not rendered in the Storefront by the slot widget. | diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md index f3359f89ae7..d2d47276151 100644 --- a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md +++ b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md @@ -58,7 +58,7 @@ You don’t need to activate the email CMS block, as the deactivated status of t * Add a [glossary key](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html) to the email block. When the email is sent, the key is replaced with the translation you defined for the locale selected by the customer. To learn how to add translations, see [Managing glossary](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html). -* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it is replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones. +* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it's replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones. ## Reference information: Create an email CMS block diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md index e6ced71c3cb..4fc4721f6a2 100644 --- a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md +++ b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md @@ -19,14 +19,14 @@ related: link: docs/pbc/all/content-management-system/page.version/base-shop/product-sets-feature-overview.html --- -This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it is on a page. +This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it's on a page. To reorder product sets by editing their weight, do the following: 1. Go to **Merchandising > Product Sets**. 2. On the **Product Sets** page, click **Reorder Product Sets**. This opens the **Reorder Product Sets** page. The product sets are displayed in the ascending order of their current weight. -3. Change the **WEIGHT** of each product set, so that it is in the needed position relatively to the other product sets. +3. Change the **WEIGHT** of each product set, so that it's in the needed position relatively to the other product sets. 4. Click **Submit**. This opens the **Product Sets** page with a success message displayed. The updated **WEIGHT** is displayed in the list and the product sets are ordered according to it. diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md index e6aa66f80f6..b93662504d9 100644 --- a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md +++ b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md @@ -50,7 +50,7 @@ Request sample: `GET http://glue.mysprykershop.com/navigations/SOCIAL_LINKS` {% info_block infoBox "Performance" %} -If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it is absolutely necessary. +If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it's absolutely necessary. {% endinfo_block %} diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md b/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md index a6b7f495dc1..9b43dc0f600 100644 --- a/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md +++ b/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md @@ -14,7 +14,7 @@ related: link: docs/pbc/all/content-management-system/page.version/base-shop/cms-feature-overview/cms-feature-overview.html --- -By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it is transferred to TEXT (65535 bytes), and for PostgreSQL, it is transferred to TEXT (unlimited length). +By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it's transferred to TEXT (65535 bytes), and for PostgreSQL, it's transferred to TEXT (unlimited length). If your project requires more, you can redefine the field's size in the `spy_cms_version` table. diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md b/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md index 24bd13e61b0..2569ef10dfb 100644 --- a/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md +++ b/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md @@ -246,7 +246,7 @@ class PersonalizedProductQueryPlugin implements QueryInterface {% info_block infoBox %} -The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it is used with the random score from Elasticsearch. You can change these values according to your needs. +The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it's used with the random score from Elasticsearch. You can change these values according to your needs. {% endinfo_block %} diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/business-units-overview.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/business-units-overview.md index 305de572427..b09fbd07239 100644 --- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/business-units-overview.md +++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/business-units-overview.md @@ -37,7 +37,7 @@ To create a business unit, its name and email address must be specified. {% info_block infoBox %} -The user can also select a parent business unit of the newly created unit. If it is not specified, the new business unit is created with the "0" level in the hierarchy—for example, as a parent. +The user can also select a parent business unit of the newly created unit. If it's not specified, the new business unit's created with the "0" level in the hierarchy—for example, as a parent. {% endinfo_block %} diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-accounts-overview.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-accounts-overview.md index 113abcc59af..9898481268b 100644 --- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-accounts-overview.md +++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-accounts-overview.md @@ -38,11 +38,11 @@ A company consists of several *business units*, which you can consider physical ## Company address -The level below the business unit is the *company address*. The company address is a physical representation of a company. +The level below the business unit's the *company address*. The company address is a physical representation of a company. One company address can be assigned to several business units. For example, if IT and Sales departments are located in the same office, they can share one company address. -However, a department may be distributed between several locations and have several addresses. For example, if it is a building company, and each unit is a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units. +However, a department may be distributed between several locations and have several addresses. For example, if it's a building company, and each unit's a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units. ## Company user diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md index 8f9c5a6d6bd..de9221e3cd6 100644 --- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md +++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md @@ -12,7 +12,7 @@ redirect_from: - /docs/scos/user/features/202204.0/company-account-feature-overview/company-user-roles-and-permissions-overview.html --- -Usually, employees within a company have different roles (for example, purchasing, administration, supervision). These roles are related to company users and are referred to as **Company Roles**. A role can be default (the **is_default** option), which means that it is used for all new users automatically. +Usually, employees within a company have different roles (for example, purchasing, administration, supervision). These roles are related to company users and are referred to as **Company Roles**. A role can be default (the **is_default** option), which means that it's used for all new users automatically. Upon initial creation of the first company user, the default role is Admin. After the Admin user has been created, they create the structure of the company and can define the default role to be used further on. diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/customer-account-management-feature-overview/password-management-overview.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/customer-account-management-feature-overview/password-management-overview.md index 9b2f311132a..e2d48a4a351 100644 --- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/customer-account-management-feature-overview/password-management-overview.md +++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/customer-account-management-feature-overview/password-management-overview.md @@ -23,7 +23,7 @@ You can create customer accounts by [importing](/docs/dg/dev/data-import/{{page. With the help of [Glue API](/docs/dg/dev/glue-api/{{page.version}}/old-glue-infrastructure/glue-rest-api.html), you can change and reset customer account passwords. This can be useful when you want to use a single authentication in all the apps connected to your shop. To learn how a developer can do it, see [Change a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#change-a-customers-password) and [Reset a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#reset-a-customers-password). -On the Storefront, it is mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email. +On the Storefront, it's mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email. ## Related Business User documents diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md index 5da4c156476..4997e3e2614 100644 --- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md +++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md @@ -36,7 +36,7 @@ This document describes how to create company units. 5. Optional: Enter an **IBAN**. 6. Optional: Enter a **BIC**. 7. Click **Save**. - This opens the **Company Units** page. The created company business unit is displayed in the list. + This opens the **Company Units** page. The created company business unit's displayed in the list. ## Reference information: Create a company unit diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/manage-companies.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/manage-companies.md index 9776b74f82f..859aeaea4c0 100644 --- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/manage-companies.md +++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/manage-companies.md @@ -34,7 +34,7 @@ To start managing companies, go to **Customers  {% info_block warningBox "Company headquarters" %} -Once a company is created, one business unit for it is created automatically. This business unit is the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html). +Once a company is created, one business unit for it's created automatically. This business unit's the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html). {% endinfo_block %} diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md index 9c084b6eda7..baf481510e2 100644 --- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md +++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md @@ -241,7 +241,7 @@ To retrieve a business unit, send the request: | 001 | Access token is invalid. | | 002 | Access token is missing. | | 1903 | Current company account is not set. Select the current company user with `/company-user-access-tokens` to access the resource collection. | -| 1901 | Specified business unit is not found or the user does not have access to it. | +| 1901 | Specified business unit's not found or the user does not have access to it. | To view generic errors that originate from the Glue Application, see [Reference information: GlueApplication errors](/docs/dg/dev/glue-api/{{page.version}}/old-glue-infrastructure/reference-information-glueapplication-errors.html). diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md index 1600c84577c..f6effd7cef8 100644 --- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md +++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md @@ -36,7 +36,7 @@ The Customer API allows creating customers and manage their account data. This i In your development, these resources can help you: -* Retrieve relevant customer information. for any page where it is needed. +* Retrieve relevant customer information. for any page where it's needed. * Retrieve customer subscriptions to availability notifications. * Enable customer registration. * Allow customer login and authentication. diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/business-units-overview.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/business-units-overview.md index aaf82d752c7..870cb8ca458 100644 --- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/business-units-overview.md +++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/business-units-overview.md @@ -37,7 +37,7 @@ To create a business unit, its name and email address must be specified. {% info_block infoBox %} -The user can also select a parent business unit of the newly created unit. If it is not specified, the new business unit is created with the "0" level in the hierarchy—for example, as a parent. +The user can also select a parent business unit of the newly created unit. If it's not specified, the new business unit's created with the "0" level in the hierarchy—for example, as a parent. {% endinfo_block %} diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-accounts-overview.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-accounts-overview.md index 29f5cd200bd..abc8d2a17ad 100644 --- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-accounts-overview.md +++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-accounts-overview.md @@ -38,11 +38,11 @@ A company consists of several *business units*, which you can consider physical ## Company address -The level below the business unit is the *company address*. The company address is a physical representation of a company. +The level below the business unit's the *company address*. The company address is a physical representation of a company. One company address can be assigned to several business units. For example, if IT and Sales departments are located in the same office, they can share one company address. -However, a department may be distributed between several locations and have several addresses. For example, if it is a building company, and each unit is a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units. +However, a department may be distributed between several locations and have several addresses. For example, if it's a building company, and each unit's a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units. ## Company user diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md index b463d896919..2e95137c1ce 100644 --- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md +++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md @@ -12,7 +12,7 @@ redirect_from: - /docs/scos/user/features/202204.0/company-account-feature-overview/company-user-roles-and-permissions-overview.html --- -Usually, employees within a company have different roles (for example, purchasing, administration, supervision). These roles are related to company users and are referred to as **Company Roles**. A role can be default (the **is_default** option), which means that it is used for all new users automatically. +Usually, employees within a company have different roles (for example, purchasing, administration, supervision). These roles are related to company users and are referred to as **Company Roles**. A role can be default (the **is_default** option), which means that it's used for all new users automatically. Upon initial creation of the first company user, the default role is Admin. After the Admin user has been created, they create the structure of the company and can define the default role to be used further on. diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/customer-account-management-feature-overview/password-management-overview.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/customer-account-management-feature-overview/password-management-overview.md index 9b2f311132a..e2d48a4a351 100644 --- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/customer-account-management-feature-overview/password-management-overview.md +++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/customer-account-management-feature-overview/password-management-overview.md @@ -23,7 +23,7 @@ You can create customer accounts by [importing](/docs/dg/dev/data-import/{{page. With the help of [Glue API](/docs/dg/dev/glue-api/{{page.version}}/old-glue-infrastructure/glue-rest-api.html), you can change and reset customer account passwords. This can be useful when you want to use a single authentication in all the apps connected to your shop. To learn how a developer can do it, see [Change a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#change-a-customers-password) and [Reset a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#reset-a-customers-password). -On the Storefront, it is mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email. +On the Storefront, it's mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email. ## Related Business User documents diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md index 17f69d0e090..33349e7cc1d 100644 --- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md +++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md @@ -37,7 +37,7 @@ This document describes how to create company units in the Back Office. 6. Optional: Enter a **BIC**. 7. Optional: Enter a **PHONE**. 8. Click **Save**. - This opens the **Company Units** page. The created company business unit is displayed in the list. + This opens the **Company Units** page. The created company business unit's displayed in the list. ## Reference information: Create a company unit diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/manage-companies.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/manage-companies.md index 9776b74f82f..859aeaea4c0 100644 --- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/manage-companies.md +++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/manage-companies.md @@ -34,7 +34,7 @@ To start managing companies, go to **Customers  {% info_block warningBox "Company headquarters" %} -Once a company is created, one business unit for it is created automatically. This business unit is the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html). +Once a company is created, one business unit for it's created automatically. This business unit's the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html). {% endinfo_block %} diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md index e662c116d2f..9b22ebf44e2 100644 --- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md +++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md @@ -224,7 +224,7 @@ To retrieve a business unit, send the request: | 001 | Access token is invalid. | | 002 | Access token is missing. | | 1903 | Current company account is not set. Select the current company user with `/company-user-access-tokens` to access the resource collection. | -| 1901 | Specified business unit is not found or the user does not have access to it. | +| 1901 | Specified business unit's not found or the user does not have access to it. | To view generic errors that originate from the Glue Application, see [Reference information: GlueApplication errors](/docs/dg/dev/glue-api/{{page.version}}/old-glue-infrastructure/reference-information-glueapplication-errors.html). diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md index 708c9268f12..288ed5ea248 100644 --- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md +++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md @@ -36,7 +36,7 @@ The Customer API allows creating customers and manage their account data. This i In your development, these resources can help you: -* Retrieve relevant customer information. for any page where it is needed. +* Retrieve relevant customer information. for any page where it's needed. * Retrieve customer subscriptions to availability notifications. * Enable customer registration. * Allow customer login and authentication. diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/business-units-overview.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/business-units-overview.md index aaf82d752c7..870cb8ca458 100644 --- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/business-units-overview.md +++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/business-units-overview.md @@ -37,7 +37,7 @@ To create a business unit, its name and email address must be specified. {% info_block infoBox %} -The user can also select a parent business unit of the newly created unit. If it is not specified, the new business unit is created with the "0" level in the hierarchy—for example, as a parent. +The user can also select a parent business unit of the newly created unit. If it's not specified, the new business unit's created with the "0" level in the hierarchy—for example, as a parent. {% endinfo_block %} diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/company-accounts-overview.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/company-accounts-overview.md index 29f5cd200bd..abc8d2a17ad 100644 --- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/company-accounts-overview.md +++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/company-accounts-overview.md @@ -38,11 +38,11 @@ A company consists of several *business units*, which you can consider physical ## Company address -The level below the business unit is the *company address*. The company address is a physical representation of a company. +The level below the business unit's the *company address*. The company address is a physical representation of a company. One company address can be assigned to several business units. For example, if IT and Sales departments are located in the same office, they can share one company address. -However, a department may be distributed between several locations and have several addresses. For example, if it is a building company, and each unit is a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units. +However, a department may be distributed between several locations and have several addresses. For example, if it's a building company, and each unit's a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units. ## Company user diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/customer-account-management-feature-overview/password-management-overview.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/customer-account-management-feature-overview/password-management-overview.md index df305b567c9..befa467e38e 100644 --- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/customer-account-management-feature-overview/password-management-overview.md +++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/customer-account-management-feature-overview/password-management-overview.md @@ -23,7 +23,7 @@ You can create customer accounts by [importing](/docs/dg/dev/data-import/{{page. With the help of [Glue API](/docs/dg/dev/glue-api/{{page.version}}/old-glue-infrastructure/glue-rest-api.html), you can change and reset customer account passwords. This can be useful when you want to use a single authentication in all the apps connected to your shop. To learn how a developer can do it, see [Change a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#change-a-customers-password) and [Reset a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#reset-a-customers-password). -On the Storefront, it is mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email. +On the Storefront, it's mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email. ## Related Business User documents diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md index 4badac3e840..e6ec2860f4b 100644 --- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md +++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/company-units/create-company-units.md @@ -37,7 +37,7 @@ This document describes how to create company units in the Back Office. 6. Optional: Enter a **BIC**. 7. Optional: Enter a **PHONE**. 8. Click **Save**. - This opens the **Company Units** page. The created company business unit is displayed in the list. + This opens the **Company Units** page. The created company business unit's displayed in the list. ## Reference information: Create a company unit diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/manage-companies.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/manage-companies.md index 9776b74f82f..859aeaea4c0 100644 --- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/manage-companies.md +++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/manage-companies.md @@ -34,7 +34,7 @@ To start managing companies, go to **Customers  {% info_block warningBox "Company headquarters" %} -Once a company is created, one business unit for it is created automatically. This business unit is the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html). +Once a company is created, one business unit for it's created automatically. This business unit's the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html). {% endinfo_block %} diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md index b05b4fd4515..d7c33661bb6 100644 --- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md +++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md @@ -224,7 +224,7 @@ To retrieve a business unit, send the request: | 001 | Access token is invalid. | | 002 | Access token is missing. | | 1903 | Current company account is not set. Select the current company user with `/company-user-access-tokens` to access the resource collection. | -| 1901 | Specified business unit is not found or the user does not have access to it. | +| 1901 | Specified business unit's not found or the user does not have access to it. | To view generic errors that originate from the Glue Application, see [Reference information: GlueApplication errors](/docs/dg/dev/glue-api/{{page.version}}/old-glue-infrastructure/reference-information-glueapplication-errors.html). diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md index 9edbc7626ef..a6365a52080 100644 --- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md +++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md @@ -36,7 +36,7 @@ The Customer API allows creating customers and manage their account data. This i In your development, these resources can help you: -* Retrieve relevant customer information. for any page where it is needed. +* Retrieve relevant customer information. for any page where it's needed. * Retrieve customer subscriptions to availability notifications. * Enable customer registration. * Allow customer login and authentication. diff --git a/docs/pbc/all/data-exchange/202311.0/sending-requests-with-data-exchange-api.md b/docs/pbc/all/data-exchange/202311.0/sending-requests-with-data-exchange-api.md index d7b9452140b..94195c4670b 100644 --- a/docs/pbc/all/data-exchange/202311.0/sending-requests-with-data-exchange-api.md +++ b/docs/pbc/all/data-exchange/202311.0/sending-requests-with-data-exchange-api.md @@ -310,7 +310,7 @@ For example, configure `isCreatable: false` for `iso3_code` and send the same re ``` -Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it is impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned: +Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it's impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned: ```json [ @@ -427,7 +427,7 @@ If `id_country` is not found, the following is returned: {% info_block infoBox %} -Similarly to the `POST` request, it is important to consider database-specific configurations when sending a `PATCH` request. +Similarly to the `POST` request, it's important to consider database-specific configurations when sending a `PATCH` request. {% endinfo_block %} diff --git a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md index 0930f349839..1af0d69fb97 100644 --- a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md +++ b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md @@ -33,7 +33,7 @@ The Akeneo PIM Integration App works with B2C and B2B business models of Spryker Akeneo lets you create products with up to 3 levels of enrichment, while Spryker lets you select multiple super attributes to enrich product information and create product variants. -For example, if you want to create a T-shirt with varying sizes and colors, here is how it is created in Akeneo: +For example, if you want to create a T-shirt with varying sizes and colors, here is how it's created in Akeneo: *Root* Product Model = T-shirt *Level 1* Product Models (created by varying colour) = Yellow T-shirt, red T-shirt *Level 2* Product Variants (with variant: size) = Yellow T-shirt small, yellow T-shirt large, red T-shirt small, red T-shirt Large diff --git a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md index da07215e364..b6a62fab174 100644 --- a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md +++ b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md @@ -152,7 +152,7 @@ To configure this transformer, do the following: To configure this transformer, do the following: -1. In *Stock value*, specify the value of the stock that the product will have after it is imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront. +1. In *Stock value*, specify the value of the stock that the product will have after it's imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront. 2. Optional: Specify the warehouse where this stock should be kept. For details about the warehouses in the Spryker Back Office, see [Create warehouses](/docs/pbc/all/warehouse-management-system/{{page.version}}/base-shop/manage-in-the-back-office/create-warehouses.html). ![memo-base-product-set-stock](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/data-exchange/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/3-configure-data-mapping-between-akeneo-and-spryker/memo-base-product-set-stock.png) diff --git a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md index 918bc916e61..b4d5357842f 100644 --- a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md +++ b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md @@ -84,7 +84,7 @@ To create the scheduler, do the following: 5. In *Expression*, enter the time you want the scheduler to run. Use [Crontab guru](https://crontab.guru/) to set the time in the right format. 6. Create one more scheduler with the same parameters, but for step 3, select the *Run outgoing configuration* job. -Since the number of tasks that can be processed is limited, it is recommended to create a scheduler that would remove completed tasks after the specified intervals. +Since the number of tasks that can be processed is limited, it's recommended to create a scheduler that would remove completed tasks after the specified intervals. To create such a scheduler, do the following: diff --git a/docs/pbc/all/data-exchange/202404.0/sending-requests-with-data-exchange-api.md b/docs/pbc/all/data-exchange/202404.0/sending-requests-with-data-exchange-api.md index 075d31050ea..20e0967ffb4 100644 --- a/docs/pbc/all/data-exchange/202404.0/sending-requests-with-data-exchange-api.md +++ b/docs/pbc/all/data-exchange/202404.0/sending-requests-with-data-exchange-api.md @@ -310,7 +310,7 @@ For example, configure `isCreatable: false` for `iso3_code` and send the same re ``` -Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it is impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned: +Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it's impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned: ```json [ @@ -427,7 +427,7 @@ If `id_country` is not found, the following is returned: {% info_block infoBox %} -Similarly to the `POST` request, it is important to consider database-specific configurations when sending a `PATCH` request. +Similarly to the `POST` request, it's important to consider database-specific configurations when sending a `PATCH` request. {% endinfo_block %} diff --git a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md index 0930f349839..1af0d69fb97 100644 --- a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md +++ b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md @@ -33,7 +33,7 @@ The Akeneo PIM Integration App works with B2C and B2B business models of Spryker Akeneo lets you create products with up to 3 levels of enrichment, while Spryker lets you select multiple super attributes to enrich product information and create product variants. -For example, if you want to create a T-shirt with varying sizes and colors, here is how it is created in Akeneo: +For example, if you want to create a T-shirt with varying sizes and colors, here is how it's created in Akeneo: *Root* Product Model = T-shirt *Level 1* Product Models (created by varying colour) = Yellow T-shirt, red T-shirt *Level 2* Product Variants (with variant: size) = Yellow T-shirt small, yellow T-shirt large, red T-shirt small, red T-shirt Large diff --git a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md index 89f217a9b2d..db820a52f77 100644 --- a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md +++ b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md @@ -152,7 +152,7 @@ To configure this transformer, do the following: To configure this transformer, do the following: -1. In *Stock value*, specify the value of the stock that the product will have after it is imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront. +1. In *Stock value*, specify the value of the stock that the product will have after it's imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront. 2. Optional: Specify the warehouse where this stock should be kept. For details about the warehouses in the Spryker Back Office, see [Create warehouses](/docs/pbc/all/warehouse-management-system/{{page.version}}/base-shop/manage-in-the-back-office/create-warehouses.html). ![memo-base-product-set-stock](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/data-exchange/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/3-configure-data-mapping-between-akeneo-and-spryker/memo-base-product-set-stock.png) diff --git a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md index 918bc916e61..b4d5357842f 100644 --- a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md +++ b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md @@ -84,7 +84,7 @@ To create the scheduler, do the following: 5. In *Expression*, enter the time you want the scheduler to run. Use [Crontab guru](https://crontab.guru/) to set the time in the right format. 6. Create one more scheduler with the same parameters, but for step 3, select the *Run outgoing configuration* job. -Since the number of tasks that can be processed is limited, it is recommended to create a scheduler that would remove completed tasks after the specified intervals. +Since the number of tasks that can be processed is limited, it's recommended to create a scheduler that would remove completed tasks after the specified intervals. To create such a scheduler, do the following: diff --git a/docs/pbc/all/data-exchange/202410.0/sending-requests-with-data-exchange-api.md b/docs/pbc/all/data-exchange/202410.0/sending-requests-with-data-exchange-api.md index fcda9cd7009..0371e523811 100644 --- a/docs/pbc/all/data-exchange/202410.0/sending-requests-with-data-exchange-api.md +++ b/docs/pbc/all/data-exchange/202410.0/sending-requests-with-data-exchange-api.md @@ -310,7 +310,7 @@ For example, configure `isCreatable: false` for `iso3_code` and send the same re ``` -Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it is impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned: +Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it's impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned: ```json [ @@ -427,7 +427,7 @@ If `id_country` is not found, the following is returned: {% info_block infoBox %} -Similarly to the `POST` request, it is important to consider database-specific configurations when sending a `PATCH` request. +Similarly to the `POST` request, it's important to consider database-specific configurations when sending a `PATCH` request. {% endinfo_block %} diff --git a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md index 1d0ef2d11b1..deb60f56699 100644 --- a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md +++ b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md @@ -33,7 +33,7 @@ The Akeneo PIM Integration App works with B2C and B2B business models of Spryker Akeneo lets you create products with up to 3 levels of enrichment, while Spryker lets you select multiple super attributes to enrich product information and create product variants. -For example, if you want to create a T-shirt with varying sizes and colors, here is how it is created in Akeneo: +For example, if you want to create a T-shirt with varying sizes and colors, here is how it's created in Akeneo: *Root* Product Model = T-shirt *Level 1* Product Models (created by varying colour) = Yellow T-shirt, red T-shirt *Level 2* Product Variants (with variant: size) = Yellow T-shirt small, yellow T-shirt large, red T-shirt small, red T-shirt Large diff --git a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md index 945bdf80080..b1c67111e19 100644 --- a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md +++ b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md @@ -152,7 +152,7 @@ To configure this transformer, do the following: To configure this transformer, do the following: -1. In *Stock value*, specify the value of the stock that the product will have after it is imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront. +1. In *Stock value*, specify the value of the stock that the product will have after it's imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront. 2. Optional: Specify the warehouse where this stock should be kept. For details about the warehouses in the Spryker Back Office, see [Create warehouses](/docs/pbc/all/warehouse-management-system/{{page.version}}/base-shop/manage-in-the-back-office/create-warehouses.html). ![memo-base-product-set-stock](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/data-exchange/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/3-configure-data-mapping-between-akeneo-and-spryker/memo-base-product-set-stock.png) diff --git a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md index 918bc916e61..b4d5357842f 100644 --- a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md +++ b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md @@ -84,7 +84,7 @@ To create the scheduler, do the following: 5. In *Expression*, enter the time you want the scheduler to run. Use [Crontab guru](https://crontab.guru/) to set the time in the right format. 6. Create one more scheduler with the same parameters, but for step 3, select the *Run outgoing configuration* job. -Since the number of tasks that can be processed is limited, it is recommended to create a scheduler that would remove completed tasks after the specified intervals. +Since the number of tasks that can be processed is limited, it's recommended to create a scheduler that would remove completed tasks after the specified intervals. To create such a scheduler, do the following: diff --git a/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/create-discounts.md b/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/create-discounts.md index 85e4596ec3e..5c0f9048cef 100644 --- a/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/create-discounts.md +++ b/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/create-discounts.md @@ -151,7 +151,7 @@ To give away a promotional product for free, select percentage calculator type a Similarly to [defining discounted products](#discount-application-type-query-string), the conditions on which a discount is a applied are defined using a query string. -Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday. +Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday. ![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png) The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query. diff --git a/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/edit-discounts.md b/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/edit-discounts.md index 09fdd09f62f..6ab4f6c2cc1 100644 --- a/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/edit-discounts.md +++ b/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/edit-discounts.md @@ -149,7 +149,7 @@ To give away a promotional product for free, select percentage calculator type a Similarly do [defining discounted products](#discount-application-type-query-string), the conditions in which a discount is a applied are defined using a query string. -Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday. +Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday. ![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png) The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query. diff --git a/docs/pbc/all/discount-management/202311.0/base-shop/promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202311.0/base-shop/promotions-discounts-feature-overview.md index 21dc18b15fa..6ac1700e4d9 100644 --- a/docs/pbc/all/discount-management/202311.0/base-shop/promotions-discounts-feature-overview.md +++ b/docs/pbc/all/discount-management/202311.0/base-shop/promotions-discounts-feature-overview.md @@ -63,7 +63,7 @@ A discount can have one or more decision rules. Find an example combination belo In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday). -Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query. +Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query. In the Back Office, you create decision rules in a Query Builder. Query Builder transforms the decision rules into a single query. @@ -101,7 +101,7 @@ A *rule group* is a separate set of rules with its own combination operator. ![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png) -With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups. +With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups. ![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png) @@ -155,7 +155,7 @@ The promotional product discount only applies if the product is added to the car {% endinfo_block %} -A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it is not recommended because of the possibility of price fluctuations and differences across multiple products. +A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it's not recommended because of the possibility of price fluctuations and differences across multiple products. ![Collection - promotional product](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/features/promotions-discounts-feature-overview.md/202200.0/collection-promotional-product.png) diff --git a/docs/pbc/all/discount-management/202311.0/marketplace/marketplace-promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202311.0/marketplace/marketplace-promotions-discounts-feature-overview.md index 65383f7eeee..8f9350ef3a5 100644 --- a/docs/pbc/all/discount-management/202311.0/marketplace/marketplace-promotions-discounts-feature-overview.md +++ b/docs/pbc/all/discount-management/202311.0/marketplace/marketplace-promotions-discounts-feature-overview.md @@ -22,7 +22,7 @@ A product catalog manager selects a discount type when [creating a discount](/do {% info_block warningBox %} -Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it is possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details. +Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it's possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details. {% endinfo_block %} @@ -75,7 +75,7 @@ A discount can have one or more decision rules. Find an exemplary combination be In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday). -Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query. +Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query. In the Back Office, a product catalog manager creates decision rules in a Query Builder. The decision rules created in the Query Builder are transformed into a single query. @@ -123,7 +123,7 @@ A rule group is a separate set of rules with its own combination operator. ![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png) -With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups. +With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups. ![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png) diff --git a/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/create-discounts.md b/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/create-discounts.md index 0342bc2f2c0..56f3cde277d 100644 --- a/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/create-discounts.md +++ b/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/create-discounts.md @@ -151,7 +151,7 @@ To give away a promotional product for free, select percentage calculator type a Similarly to [defining discounted products](#discount-application-type-query-string), the conditions on which a discount is a applied are defined using a query string. -Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday. +Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday. ![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png) The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query. diff --git a/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/edit-discounts.md b/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/edit-discounts.md index 09fdd09f62f..6ab4f6c2cc1 100644 --- a/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/edit-discounts.md +++ b/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/edit-discounts.md @@ -149,7 +149,7 @@ To give away a promotional product for free, select percentage calculator type a Similarly do [defining discounted products](#discount-application-type-query-string), the conditions in which a discount is a applied are defined using a query string. -Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday. +Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday. ![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png) The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query. diff --git a/docs/pbc/all/discount-management/202404.0/base-shop/promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202404.0/base-shop/promotions-discounts-feature-overview.md index 21dc18b15fa..6ac1700e4d9 100644 --- a/docs/pbc/all/discount-management/202404.0/base-shop/promotions-discounts-feature-overview.md +++ b/docs/pbc/all/discount-management/202404.0/base-shop/promotions-discounts-feature-overview.md @@ -63,7 +63,7 @@ A discount can have one or more decision rules. Find an example combination belo In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday). -Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query. +Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query. In the Back Office, you create decision rules in a Query Builder. Query Builder transforms the decision rules into a single query. @@ -101,7 +101,7 @@ A *rule group* is a separate set of rules with its own combination operator. ![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png) -With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups. +With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups. ![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png) @@ -155,7 +155,7 @@ The promotional product discount only applies if the product is added to the car {% endinfo_block %} -A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it is not recommended because of the possibility of price fluctuations and differences across multiple products. +A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it's not recommended because of the possibility of price fluctuations and differences across multiple products. ![Collection - promotional product](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/features/promotions-discounts-feature-overview.md/202200.0/collection-promotional-product.png) diff --git a/docs/pbc/all/discount-management/202404.0/marketplace/marketplace-promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202404.0/marketplace/marketplace-promotions-discounts-feature-overview.md index 65383f7eeee..8f9350ef3a5 100644 --- a/docs/pbc/all/discount-management/202404.0/marketplace/marketplace-promotions-discounts-feature-overview.md +++ b/docs/pbc/all/discount-management/202404.0/marketplace/marketplace-promotions-discounts-feature-overview.md @@ -22,7 +22,7 @@ A product catalog manager selects a discount type when [creating a discount](/do {% info_block warningBox %} -Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it is possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details. +Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it's possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details. {% endinfo_block %} @@ -75,7 +75,7 @@ A discount can have one or more decision rules. Find an exemplary combination be In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday). -Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query. +Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query. In the Back Office, a product catalog manager creates decision rules in a Query Builder. The decision rules created in the Query Builder are transformed into a single query. @@ -123,7 +123,7 @@ A rule group is a separate set of rules with its own combination operator. ![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png) -With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups. +With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups. ![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png) diff --git a/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/create-discounts.md b/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/create-discounts.md index 2694645c81c..18bde28d5af 100644 --- a/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/create-discounts.md +++ b/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/create-discounts.md @@ -151,7 +151,7 @@ To give away a promotional product for free, select percentage calculator type a Similarly to [defining discounted products](#discount-application-type-query-string), the conditions on which a discount is a applied are defined using a query string. -Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday. +Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday. ![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png) The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query. diff --git a/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/edit-discounts.md b/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/edit-discounts.md index 09fdd09f62f..6ab4f6c2cc1 100644 --- a/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/edit-discounts.md +++ b/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/edit-discounts.md @@ -149,7 +149,7 @@ To give away a promotional product for free, select percentage calculator type a Similarly do [defining discounted products](#discount-application-type-query-string), the conditions in which a discount is a applied are defined using a query string. -Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday. +Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday. ![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png) The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query. diff --git a/docs/pbc/all/discount-management/202410.0/base-shop/promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202410.0/base-shop/promotions-discounts-feature-overview.md index 21dc18b15fa..6ac1700e4d9 100644 --- a/docs/pbc/all/discount-management/202410.0/base-shop/promotions-discounts-feature-overview.md +++ b/docs/pbc/all/discount-management/202410.0/base-shop/promotions-discounts-feature-overview.md @@ -63,7 +63,7 @@ A discount can have one or more decision rules. Find an example combination belo In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday). -Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query. +Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query. In the Back Office, you create decision rules in a Query Builder. Query Builder transforms the decision rules into a single query. @@ -101,7 +101,7 @@ A *rule group* is a separate set of rules with its own combination operator. ![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png) -With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups. +With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups. ![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png) @@ -155,7 +155,7 @@ The promotional product discount only applies if the product is added to the car {% endinfo_block %} -A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it is not recommended because of the possibility of price fluctuations and differences across multiple products. +A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it's not recommended because of the possibility of price fluctuations and differences across multiple products. ![Collection - promotional product](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/features/promotions-discounts-feature-overview.md/202200.0/collection-promotional-product.png) diff --git a/docs/pbc/all/discount-management/202410.0/marketplace/marketplace-promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202410.0/marketplace/marketplace-promotions-discounts-feature-overview.md index 65383f7eeee..8f9350ef3a5 100644 --- a/docs/pbc/all/discount-management/202410.0/marketplace/marketplace-promotions-discounts-feature-overview.md +++ b/docs/pbc/all/discount-management/202410.0/marketplace/marketplace-promotions-discounts-feature-overview.md @@ -22,7 +22,7 @@ A product catalog manager selects a discount type when [creating a discount](/do {% info_block warningBox %} -Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it is possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details. +Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it's possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details. {% endinfo_block %} @@ -75,7 +75,7 @@ A discount can have one or more decision rules. Find an exemplary combination be In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday). -Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query. +Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query. In the Back Office, a product catalog manager creates decision rules in a Query Builder. The decision rules created in the Query Builder are transformed into a single query. @@ -123,7 +123,7 @@ A rule group is a separate set of rules with its own combination operator. ![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png) -With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups. +With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups. ![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png) diff --git a/docs/pbc/all/gift-cards/202311.0/gift-cards.md b/docs/pbc/all/gift-cards/202311.0/gift-cards.md index 4857ae752a5..fc35a1f0387 100644 --- a/docs/pbc/all/gift-cards/202311.0/gift-cards.md +++ b/docs/pbc/all/gift-cards/202311.0/gift-cards.md @@ -25,7 +25,7 @@ Gift cards are sensitive data and can be used to pay orders. Keep in mind that t {% endinfo_block %} -Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it is treated like a product. When it is applied, it’s a *voucher* that can be used as a payment method. +Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it's treated like a product. When it's applied, it’s a *voucher* that can be used as a payment method. Gift cards have variants just like abstract products. For example, a New Year Gift Card can have all the different values—50 Euro and 100 Euro. In this case, the New Year Gift Card would be handled like an abstract product, and 50 Euro and 100 Euro gift cards would be its variants. @@ -76,7 +76,7 @@ The main advantage of this strategy is that the same gift card code cannot be us ### Balance strategy -In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it is used`. +In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it's used`. With this strategy, a Back Office user will see gift card balance information such as the date when the gift card was used, the customer who used it, the gift card's code, and its spent value. diff --git a/docs/pbc/all/gift-cards/202404.0/gift-cards.md b/docs/pbc/all/gift-cards/202404.0/gift-cards.md index 4857ae752a5..fc35a1f0387 100644 --- a/docs/pbc/all/gift-cards/202404.0/gift-cards.md +++ b/docs/pbc/all/gift-cards/202404.0/gift-cards.md @@ -25,7 +25,7 @@ Gift cards are sensitive data and can be used to pay orders. Keep in mind that t {% endinfo_block %} -Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it is treated like a product. When it is applied, it’s a *voucher* that can be used as a payment method. +Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it's treated like a product. When it's applied, it’s a *voucher* that can be used as a payment method. Gift cards have variants just like abstract products. For example, a New Year Gift Card can have all the different values—50 Euro and 100 Euro. In this case, the New Year Gift Card would be handled like an abstract product, and 50 Euro and 100 Euro gift cards would be its variants. @@ -76,7 +76,7 @@ The main advantage of this strategy is that the same gift card code cannot be us ### Balance strategy -In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it is used`. +In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it's used`. With this strategy, a Back Office user will see gift card balance information such as the date when the gift card was used, the customer who used it, the gift card's code, and its spent value. diff --git a/docs/pbc/all/gift-cards/202410.0/gift-cards.md b/docs/pbc/all/gift-cards/202410.0/gift-cards.md index 4857ae752a5..fc35a1f0387 100644 --- a/docs/pbc/all/gift-cards/202410.0/gift-cards.md +++ b/docs/pbc/all/gift-cards/202410.0/gift-cards.md @@ -25,7 +25,7 @@ Gift cards are sensitive data and can be used to pay orders. Keep in mind that t {% endinfo_block %} -Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it is treated like a product. When it is applied, it’s a *voucher* that can be used as a payment method. +Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it's treated like a product. When it's applied, it’s a *voucher* that can be used as a payment method. Gift cards have variants just like abstract products. For example, a New Year Gift Card can have all the different values—50 Euro and 100 Euro. In this case, the New Year Gift Card would be handled like an abstract product, and 50 Euro and 100 Euro gift cards would be its variants. @@ -76,7 +76,7 @@ The main advantage of this strategy is that the same gift card code cannot be us ### Balance strategy -In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it is used`. +In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it's used`. With this strategy, a Back Office user will see gift card balance information such as the date when the gift card was used, the customer who used it, the gift card's code, and its spent value. diff --git a/docs/pbc/all/merchant-management/202311.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md b/docs/pbc/all/merchant-management/202311.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md index f55f2e85720..5849e537601 100644 --- a/docs/pbc/all/merchant-management/202311.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md +++ b/docs/pbc/all/merchant-management/202311.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md @@ -25,12 +25,12 @@ On this page, you can find commonly encountered cases of product restrictions be Product Catalog Blacklist -

If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it is greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.

+

If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it's greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.

All products assigned to a category are also included in the black/white list.

-

In case the products are added to the category after it was included in a list, it is reflected after some time with the help of publish & sync process.

+

In case the products are added to the category after it was included in a list, it's reflected after some time with the help of publish & sync process.

@@ -86,7 +86,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If the product, that is added to the shopping list, has been blacklisted, it is displayed as if it is unavailable.

+

If the product, that is added to the shopping list, has been blacklisted, it's displayed as if it's unavailable.

@@ -100,7 +100,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If a product that has been added to a list of the alternative products, is restricted, it is not suggested on product pages.

+

If a product that has been added to a list of the alternative products, is restricted, it's not suggested on product pages.

@@ -114,7 +114,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If any of the products that are added to a product group, is restricted, it is not displayed in the Shop Application.

+

If any of the products that are added to a product group, is restricted, it's not displayed in the Shop Application.

@@ -128,7 +128,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If any of the related products is added to a blacklist - it is not displayed in the Shop Application.

+

If any of the related products is added to a blacklist - it's not displayed in the Shop Application.

diff --git a/docs/pbc/all/merchant-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md b/docs/pbc/all/merchant-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md index e13ab93c2f1..b018b05dacd 100644 --- a/docs/pbc/all/merchant-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md +++ b/docs/pbc/all/merchant-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md @@ -74,7 +74,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, @@ -111,7 +111,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -152,7 +152,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+31 123 345 733", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Video King

Gilzeweg 24
4854SG Bavel
NL

Phone: +31 123 45 6789
Email: hi@video-king.nl

Represented by
Managing Director: Max Mustermann
Register Court: Amsterdam
Register Number: 1234.4567

", "dataPrivacy": "Video King values the privacy of your personal data." }, @@ -184,7 +184,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567500", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305

", "dataPrivacy": "Budget Cameras values the privacy of your personal data." }, @@ -231,7 +231,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, @@ -268,7 +268,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -383,7 +383,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, @@ -430,7 +430,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, diff --git a/docs/pbc/all/merchant-management/202311.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md b/docs/pbc/all/merchant-management/202311.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md index 39db182cdc6..e0ffba0b605 100644 --- a/docs/pbc/all/merchant-management/202311.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md +++ b/docs/pbc/all/merchant-management/202311.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md @@ -52,7 +52,7 @@ See the complete configuration of the `PersistenceAcl` module at [AclEntityMetad ## How to extend the initial Persistence ACL configuration Even though the Merchant Portal comes with the Persistence ACL configuration, which is fully ready for the full-fledged merchant operation and provides data protection, you can extend or override this configuration. To do this, implement `\Spryker\Zed\AclEntityExtension\Dependency\Plugin\AclEntityMetadataConfigExpanderPluginInterface`. -To override the rules that are created automatically when creating a merchant and a user's merchant, it is enough to override such methods as: +To override the rules that are created automatically when creating a merchant and a user's merchant, it's enough to override such methods as: - `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantAclRoleEntityRules()` - `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantUserAclRoleEntityRules()` diff --git a/docs/pbc/all/merchant-management/202404.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md b/docs/pbc/all/merchant-management/202404.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md index f55f2e85720..5849e537601 100644 --- a/docs/pbc/all/merchant-management/202404.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md +++ b/docs/pbc/all/merchant-management/202404.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md @@ -25,12 +25,12 @@ On this page, you can find commonly encountered cases of product restrictions be Product Catalog Blacklist -

If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it is greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.

+

If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it's greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.

All products assigned to a category are also included in the black/white list.

-

In case the products are added to the category after it was included in a list, it is reflected after some time with the help of publish & sync process.

+

In case the products are added to the category after it was included in a list, it's reflected after some time with the help of publish & sync process.

@@ -86,7 +86,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If the product, that is added to the shopping list, has been blacklisted, it is displayed as if it is unavailable.

+

If the product, that is added to the shopping list, has been blacklisted, it's displayed as if it's unavailable.

@@ -100,7 +100,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If a product that has been added to a list of the alternative products, is restricted, it is not suggested on product pages.

+

If a product that has been added to a list of the alternative products, is restricted, it's not suggested on product pages.

@@ -114,7 +114,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If any of the products that are added to a product group, is restricted, it is not displayed in the Shop Application.

+

If any of the products that are added to a product group, is restricted, it's not displayed in the Shop Application.

@@ -128,7 +128,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If any of the related products is added to a blacklist - it is not displayed in the Shop Application.

+

If any of the related products is added to a blacklist - it's not displayed in the Shop Application.

diff --git a/docs/pbc/all/merchant-management/202404.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md b/docs/pbc/all/merchant-management/202404.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md index e13ab93c2f1..b018b05dacd 100644 --- a/docs/pbc/all/merchant-management/202404.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md +++ b/docs/pbc/all/merchant-management/202404.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md @@ -74,7 +74,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, @@ -111,7 +111,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -152,7 +152,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+31 123 345 733", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Video King

Gilzeweg 24
4854SG Bavel
NL

Phone: +31 123 45 6789
Email: hi@video-king.nl

Represented by
Managing Director: Max Mustermann
Register Court: Amsterdam
Register Number: 1234.4567

", "dataPrivacy": "Video King values the privacy of your personal data." }, @@ -184,7 +184,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567500", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305

", "dataPrivacy": "Budget Cameras values the privacy of your personal data." }, @@ -231,7 +231,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, @@ -268,7 +268,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -383,7 +383,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, @@ -430,7 +430,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, diff --git a/docs/pbc/all/merchant-management/202404.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md b/docs/pbc/all/merchant-management/202404.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md index 39db182cdc6..e0ffba0b605 100644 --- a/docs/pbc/all/merchant-management/202404.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md +++ b/docs/pbc/all/merchant-management/202404.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md @@ -52,7 +52,7 @@ See the complete configuration of the `PersistenceAcl` module at [AclEntityMetad ## How to extend the initial Persistence ACL configuration Even though the Merchant Portal comes with the Persistence ACL configuration, which is fully ready for the full-fledged merchant operation and provides data protection, you can extend or override this configuration. To do this, implement `\Spryker\Zed\AclEntityExtension\Dependency\Plugin\AclEntityMetadataConfigExpanderPluginInterface`. -To override the rules that are created automatically when creating a merchant and a user's merchant, it is enough to override such methods as: +To override the rules that are created automatically when creating a merchant and a user's merchant, it's enough to override such methods as: - `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantAclRoleEntityRules()` - `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantUserAclRoleEntityRules()` diff --git a/docs/pbc/all/merchant-management/202410.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md b/docs/pbc/all/merchant-management/202410.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md index f55f2e85720..5849e537601 100644 --- a/docs/pbc/all/merchant-management/202410.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md +++ b/docs/pbc/all/merchant-management/202410.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md @@ -25,12 +25,12 @@ On this page, you can find commonly encountered cases of product restrictions be Product Catalog Blacklist -

If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it is greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.

+

If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it's greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.

All products assigned to a category are also included in the black/white list.

-

In case the products are added to the category after it was included in a list, it is reflected after some time with the help of publish & sync process.

+

In case the products are added to the category after it was included in a list, it's reflected after some time with the help of publish & sync process.

@@ -86,7 +86,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If the product, that is added to the shopping list, has been blacklisted, it is displayed as if it is unavailable.

+

If the product, that is added to the shopping list, has been blacklisted, it's displayed as if it's unavailable.

@@ -100,7 +100,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If a product that has been added to a list of the alternative products, is restricted, it is not suggested on product pages.

+

If a product that has been added to a list of the alternative products, is restricted, it's not suggested on product pages.

@@ -114,7 +114,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If any of the products that are added to a product group, is restricted, it is not displayed in the Shop Application.

+

If any of the products that are added to a product group, is restricted, it's not displayed in the Shop Application.

@@ -128,7 +128,7 @@ On this page, you can find commonly encountered cases of product restrictions be

Blacklist

-

If any of the related products is added to a blacklist - it is not displayed in the Shop Application.

+

If any of the related products is added to a blacklist - it's not displayed in the Shop Application.

diff --git a/docs/pbc/all/merchant-management/202410.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md b/docs/pbc/all/merchant-management/202410.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md index a70f87b4f02..aa5cff7197d 100644 --- a/docs/pbc/all/merchant-management/202410.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md +++ b/docs/pbc/all/merchant-management/202410.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md @@ -74,7 +74,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, @@ -111,7 +111,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -152,7 +152,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+31 123 345 733", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Video King

Gilzeweg 24
4854SG Bavel
NL

Phone: +31 123 45 6789
Email: hi@video-king.nl

Represented by
Managing Director: Max Mustermann
Register Court: Amsterdam
Register Number: 1234.4567

", "dataPrivacy": "Video King values the privacy of your personal data." }, @@ -184,7 +184,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567500", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Budget Cameras

Spitalerstraße 3
20095 Hamburg
DE

Phone: 030 1234567
Email: support@budgetcamerasonline.com

Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305

", "dataPrivacy": "Budget Cameras values the privacy of your personal data." }, @@ -231,7 +231,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, @@ -268,7 +268,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, @@ -383,7 +383,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, @@ -430,7 +430,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." }, diff --git a/docs/pbc/all/merchant-management/202410.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md b/docs/pbc/all/merchant-management/202410.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md index 0e42d86c0fd..3b844b60b50 100644 --- a/docs/pbc/all/merchant-management/202410.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md +++ b/docs/pbc/all/merchant-management/202410.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md @@ -52,7 +52,7 @@ See the complete configuration of the `PersistenceAcl` module at [AclEntityMetad ## How to extend the initial Persistence ACL configuration Even though the Merchant Portal comes with the Persistence ACL configuration, which is fully ready for the full-fledged merchant operation and provides data protection, you can extend or override this configuration. To do this, implement `\Spryker\Zed\AclEntityExtension\Dependency\Plugin\AclEntityMetadataConfigExpanderPluginInterface`. -To override the rules that are created automatically when creating a merchant and a user's merchant, it is enough to override such methods as: +To override the rules that are created automatically when creating a merchant and a user's merchant, it's enough to override such methods as: - `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantAclRoleEntityRules()` - `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantUserAclRoleEntityRules()` diff --git a/docs/pbc/all/merchant-management/202410.0/marketplace/tutorials-and-howtos/create-merchant-commission-collector-rule.md b/docs/pbc/all/merchant-management/202410.0/marketplace/tutorials-and-howtos/create-merchant-commission-collector-rule.md index 07464d5d2b9..bbd21dd4767 100644 --- a/docs/pbc/all/merchant-management/202410.0/marketplace/tutorials-and-howtos/create-merchant-commission-collector-rule.md +++ b/docs/pbc/all/merchant-management/202410.0/marketplace/tutorials-and-howtos/create-merchant-commission-collector-rule.md @@ -293,7 +293,7 @@ class DiscountMerchantCommissionFacade extends AbstractFacade implements Discoun ## 6) Implement the collector rule plugin The plugin will call our `DiscountAmountMerchantCommissionItemCollectorRule` class to collect order items. In our example, the plugin only accepts the `number` data type, but you can adjust it to accept other data types, like `list` or `string`. -The `getFieldName()` method returns the field name as it is used in the item collector query string, e.g. `discount-amount >= '100'`. +The `getFieldName()` method returns the field name as it's used in the item collector query string, e.g. `discount-amount >= '100'`. ```php file to the respective section of your project, `FACT-Finder/FACT-Finder-PHP-Library": "1.3.*` 2. Add to the repositories section: diff --git a/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md b/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md index 47d9a914adc..c5456dd7f85 100644 --- a/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md +++ b/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md @@ -49,7 +49,7 @@ Basic parameters: * `productsPerPage` - In the FACT-Finder Management Interface, you can define the number of results that will be returned on a page by default. To change the number, you can set it with this parameter. * `sort` - By default, the result that is returned has been sorted for relevance. However, you can specify a different sort order here. * `filter` - When a filter parameter is sent to FACT-Finder, the Search engine only returns results that correspond to the filter indicated. -* `searchField` - Normally FACT-Finder searches all fields defined as searchable. However, it is possible to search only one specific field as well. +* `searchField` - Normally FACT-Finder searches all fields defined as searchable. However, it's possible to search only one specific field as well. * `noArticleNumberSearch` - Normally an article number search is carried out if the search term matches one or more set formats. You can also use parameters to prevent an article number search from being carried out. * `sid` - Session ID. * `useAsn` - Controls whether or not the ASN (after-search navigation block) is created. diff --git a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md index e048268620e..1987573a2fe 100644 --- a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md +++ b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md @@ -85,7 +85,7 @@ public function getConsoleCommands(Container $container) * The first row of the CSV file must contain the field names. The structure of this row is identical to the data rows. * The number of fields is limited to 128. However, the standard FACT-Finder modules require the use of a limited number of fields. For that reason, we recommend that you do not use this limit in full. If your product database contains more than 128 attributes, you can store them in the multi-attribute fields. -* The field content is not limited in length. There is, however, a limit on the complete data record size. This limit is set at 50,000 characters. In special cases, the limit can be removed. We consider it as a part of a special FACT-Finder package creation process we perform for you. +* The field content is not limited in length. There is, however, a limit on the complete data record size. This limit's set at 50,000 characters. In special cases, the limit can be removed. We consider it as a part of a special FACT-Finder package creation process we perform for you. ### Recommendations @@ -94,7 +94,7 @@ public function getConsoleCommands(Container $container) You need to create an URL for a CSV file or put it into a public folder. Then you can set up an URL and an interval in a FACT-Finder channel management panel to download the CSV file. * A CSV file export can be scheduled with the help of a cron job or triggered by an event. * If additional attributes are available, they can also be used by the search process. -* If you have attribute types that vary from item to item, it does not make sense to create a separate field for every possible attribute type. Instead, you can create an attribute field that is formatted according to the following pattern: `|attribute1=value|attribute2=value|attribute3=value|`.Please note that for the Attribute field the pipe separator `(|)` appears between the attributes, as well as at the beginning and at the end of the field contents. Also note, that the symbols `|`, `#` and `=` are reserved symbols in attribute field data and therefore are not permitted here. For some attributes, it is desirable to include a unit or currency designator. You must separate the attribute name from the unit with a double tilde `(~~)`. Please note that there can only be one unit per attribute name (even if the attributes appear in different data records), so the values must be normalized beforehand. +* If you have attribute types that vary from item to item, it does not make sense to create a separate field for every possible attribute type. Instead, you can create an attribute field that is formatted according to the following pattern: `|attribute1=value|attribute2=value|attribute3=value|`.Please note that for the Attribute field the pipe separator `(|)` appears between the attributes, as well as at the beginning and at the end of the field contents. Also note, that the symbols `|`, `#` and `=` are reserved symbols in attribute field data and therefore are not permitted here. For some attributes, it's desirable to include a unit or currency designator. You must separate the attribute name from the unit with a double tilde `(~~)`. Please note that there can only be one unit per attribute name (even if the attributes appear in different data records), so the values must be normalized beforehand. ## Checking Your Setup diff --git a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md index 9ca48c7d5ca..431aa557c52 100644 --- a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md +++ b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md @@ -44,7 +44,7 @@ composer require spryker-eco/fact-finder-sdk composer require spryker-eco/fact-finder ``` -If you faced an issue with the FACT-Finder library dependency and it is not installed, please use the following instructions: +If you faced an issue with the FACT-Finder library dependency and it's not installed, please use the following instructions: 1. Add `composer.json`> file to the respective section of your project, `FACT-Finder/FACT-Finder-PHP-Library": "1.3.*` 2. Add to the repositories section: diff --git a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md index 47d9a914adc..c5456dd7f85 100644 --- a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md +++ b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md @@ -49,7 +49,7 @@ Basic parameters: * `productsPerPage` - In the FACT-Finder Management Interface, you can define the number of results that will be returned on a page by default. To change the number, you can set it with this parameter. * `sort` - By default, the result that is returned has been sorted for relevance. However, you can specify a different sort order here. * `filter` - When a filter parameter is sent to FACT-Finder, the Search engine only returns results that correspond to the filter indicated. -* `searchField` - Normally FACT-Finder searches all fields defined as searchable. However, it is possible to search only one specific field as well. +* `searchField` - Normally FACT-Finder searches all fields defined as searchable. However, it's possible to search only one specific field as well. * `noArticleNumberSearch` - Normally an article number search is carried out if the search term matches one or more set formats. You can also use parameters to prevent an article number search from being carried out. * `sid` - Session ID. * `useAsn` - Controls whether or not the ASN (after-search navigation block) is created. diff --git a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md index e048268620e..1987573a2fe 100644 --- a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md +++ b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md @@ -85,7 +85,7 @@ public function getConsoleCommands(Container $container) * The first row of the CSV file must contain the field names. The structure of this row is identical to the data rows. * The number of fields is limited to 128. However, the standard FACT-Finder modules require the use of a limited number of fields. For that reason, we recommend that you do not use this limit in full. If your product database contains more than 128 attributes, you can store them in the multi-attribute fields. -* The field content is not limited in length. There is, however, a limit on the complete data record size. This limit is set at 50,000 characters. In special cases, the limit can be removed. We consider it as a part of a special FACT-Finder package creation process we perform for you. +* The field content is not limited in length. There is, however, a limit on the complete data record size. This limit's set at 50,000 characters. In special cases, the limit can be removed. We consider it as a part of a special FACT-Finder package creation process we perform for you. ### Recommendations @@ -94,7 +94,7 @@ public function getConsoleCommands(Container $container) You need to create an URL for a CSV file or put it into a public folder. Then you can set up an URL and an interval in a FACT-Finder channel management panel to download the CSV file. * A CSV file export can be scheduled with the help of a cron job or triggered by an event. * If additional attributes are available, they can also be used by the search process. -* If you have attribute types that vary from item to item, it does not make sense to create a separate field for every possible attribute type. Instead, you can create an attribute field that is formatted according to the following pattern: `|attribute1=value|attribute2=value|attribute3=value|`.Please note that for the Attribute field the pipe separator `(|)` appears between the attributes, as well as at the beginning and at the end of the field contents. Also note, that the symbols `|`, `#` and `=` are reserved symbols in attribute field data and therefore are not permitted here. For some attributes, it is desirable to include a unit or currency designator. You must separate the attribute name from the unit with a double tilde `(~~)`. Please note that there can only be one unit per attribute name (even if the attributes appear in different data records), so the values must be normalized beforehand. +* If you have attribute types that vary from item to item, it does not make sense to create a separate field for every possible attribute type. Instead, you can create an attribute field that is formatted according to the following pattern: `|attribute1=value|attribute2=value|attribute3=value|`.Please note that for the Attribute field the pipe separator `(|)` appears between the attributes, as well as at the beginning and at the end of the field contents. Also note, that the symbols `|`, `#` and `=` are reserved symbols in attribute field data and therefore are not permitted here. For some attributes, it's desirable to include a unit or currency designator. You must separate the attribute name from the unit with a double tilde `(~~)`. Please note that there can only be one unit per attribute name (even if the attributes appear in different data records), so the values must be normalized beforehand. ## Checking Your Setup diff --git a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md index 9ca48c7d5ca..431aa557c52 100644 --- a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md +++ b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md @@ -44,7 +44,7 @@ composer require spryker-eco/fact-finder-sdk composer require spryker-eco/fact-finder ``` -If you faced an issue with the FACT-Finder library dependency and it is not installed, please use the following instructions: +If you faced an issue with the FACT-Finder library dependency and it's not installed, please use the following instructions: 1. Add `composer.json`> file to the respective section of your project, `FACT-Finder/FACT-Finder-PHP-Library": "1.3.*` 2. Add to the repositories section: diff --git a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md index 47d9a914adc..c5456dd7f85 100644 --- a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md +++ b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md @@ -49,7 +49,7 @@ Basic parameters: * `productsPerPage` - In the FACT-Finder Management Interface, you can define the number of results that will be returned on a page by default. To change the number, you can set it with this parameter. * `sort` - By default, the result that is returned has been sorted for relevance. However, you can specify a different sort order here. * `filter` - When a filter parameter is sent to FACT-Finder, the Search engine only returns results that correspond to the filter indicated. -* `searchField` - Normally FACT-Finder searches all fields defined as searchable. However, it is possible to search only one specific field as well. +* `searchField` - Normally FACT-Finder searches all fields defined as searchable. However, it's possible to search only one specific field as well. * `noArticleNumberSearch` - Normally an article number search is carried out if the search term matches one or more set formats. You can also use parameters to prevent an article number search from being carried out. * `sid` - Session ID. * `useAsn` - Controls whether or not the ASN (after-search navigation block) is created. diff --git a/docs/pbc/all/offer-management/202311.0/marketplace/glue-api-retrieve-product-offers.md b/docs/pbc/all/offer-management/202311.0/marketplace/glue-api-retrieve-product-offers.md index e69184d7750..95d938f257d 100644 --- a/docs/pbc/all/offer-management/202311.0/marketplace/glue-api-retrieve-product-offers.md +++ b/docs/pbc/all/offer-management/202311.0/marketplace/glue-api-retrieve-product-offers.md @@ -230,7 +230,7 @@ To retrieve the product offers, send the request: "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." } diff --git a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md index 92f7c4e3d76..834af8c642e 100644 --- a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md +++ b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md @@ -4,7 +4,7 @@ template: concept-topic-template last_updated: Nov 21, 2023 --- -The *Marketplace Product Offer* entity is created when multiple merchants sell the same product on the Marketplace. The product offer is a variation of a concrete product with its own specific price (and volume price) and stock. It can be “owned” by any entity, however, in a B2C or B2B Marketplace, it is owned by a [merchant](/docs/marketplace/dev/feature-walkthroughs/{{page.version}}/marketplace-merchant-feature-walkthrough.html). +The *Marketplace Product Offer* entity is created when multiple merchants sell the same product on the Marketplace. The product offer is a variation of a concrete product with its own specific price (and volume price) and stock. It can be “owned” by any entity, however, in a B2C or B2B Marketplace, it's owned by a [merchant](/docs/marketplace/dev/feature-walkthroughs/{{page.version}}/marketplace-merchant-feature-walkthrough.html). The Marketplace product offer has its own validity dates and its own availability calculation based on its reservations. diff --git a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md index 9c800d1bc64..088a941f326 100644 --- a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md +++ b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md @@ -5,7 +5,7 @@ template: concept-topic-template last_updated: Nov 21, 2023 --- -Product Offer and data related to it is cached to enhance performance. +Product Offer and data related to it's cached to enhance performance. {% info_block infoBox "" %} diff --git a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-overview.md b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-overview.md index 22f4865fc28..3ce6b11758c 100644 --- a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-overview.md +++ b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-overview.md @@ -60,9 +60,9 @@ Product offer status defines whether the offer is active and displayed on the St ### Visibility -* *Active*: When an offer is active, it is displayed on the Storefront. Either merchant or Marketplace administrator can make the offer active. +* *Active*: When an offer is active, it's displayed on the Storefront. Either merchant or Marketplace administrator can make the offer active. -* *Inactive*: When an offer is inactive, it is not displayed on the Storefront. Either merchant or Marketplace administrator can make the offer inactive. +* *Inactive*: When an offer is inactive, it's not displayed on the Storefront. Either merchant or Marketplace administrator can make the offer inactive. ![Offer approval flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Marketplace/Products+and+offers/Product+offer+feature+overview/offer-approval-flow.png) @@ -76,7 +76,7 @@ The product offer prices support: * Store * Currency -Product offer price follows the [concrete product price inheritance model](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). So if the Merchant doesn't set a price in the offer, it is taken from the concrete product. Otherwise, the product offer price has a higher priority and substitutes the concrete product price if it is indicated. If at least one price is defined for the offer (for example, original), it is valid for this offer even if the concrete product has a default price (sales price), but the offer does not. For details about price types, see [Price types](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). +Product offer price follows the [concrete product price inheritance model](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). So if the Merchant doesn't set a price in the offer, it's taken from the concrete product. Otherwise, the product offer price has a higher priority and substitutes the concrete product price if it's indicated. If at least one price is defined for the offer (for example, original), it's valid for this offer even if the concrete product has a default price (sales price), but the offer does not. For details about price types, see [Price types](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). If a [merchant custom price](/docs/pbc/all/price-management/{{page.version}}/base-shop/merchant-custom-prices-feature-overview.html) exists for a customer, they see only the prices that apply to them, based on their merchant relationship. If the merchant relationship doesn't have prices for some products, default prices are displayed for the customer. @@ -141,7 +141,7 @@ During the checkout, offers from the same merchant are grouped for delivery so t ### Product offers on the wishlist page -Customers can add product offers to a wishlist for future purchase. Merchant information is kept for the offer when it is added to a wishlist. Further, customers can add the offer from the wishlist to cart. +Customers can add product offers to a wishlist for future purchase. Merchant information is kept for the offer when it's added to a wishlist. Further, customers can add the offer from the wishlist to cart. ![Product offers in wishlist](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Marketplace/Products+and+offers/Product+offer+feature+overview/add-product-offer-to-wl-and-from-wl-to-cart.gif) diff --git a/docs/pbc/all/offer-management/202311.0/marketplace/render-merchant-product-offers-on-the-storefront.md b/docs/pbc/all/offer-management/202311.0/marketplace/render-merchant-product-offers-on-the-storefront.md index f2075730d47..478f33aca42 100644 --- a/docs/pbc/all/offer-management/202311.0/marketplace/render-merchant-product-offers-on-the-storefront.md +++ b/docs/pbc/all/offer-management/202311.0/marketplace/render-merchant-product-offers-on-the-storefront.md @@ -11,7 +11,7 @@ This document explains how to render merchant product offers on the Storefront. ## Prerequisites -The [MerchantProductOfferWidget](https://github.com/spryker-shop/merchant-product-offer-widget) module is responsible for rendering product offers on the Storefront. Make sure it is installed in your project before adding the product offers to the Storefront. +The [MerchantProductOfferWidget](https://github.com/spryker-shop/merchant-product-offer-widget) module is responsible for rendering product offers on the Storefront. Make sure it's installed in your project before adding the product offers to the Storefront. ## Rendering product offers on the product details page diff --git a/docs/pbc/all/offer-management/202404.0/marketplace/glue-api-retrieve-product-offers.md b/docs/pbc/all/offer-management/202404.0/marketplace/glue-api-retrieve-product-offers.md index e69184d7750..95d938f257d 100644 --- a/docs/pbc/all/offer-management/202404.0/marketplace/glue-api-retrieve-product-offers.md +++ b/docs/pbc/all/offer-management/202404.0/marketplace/glue-api-retrieve-product-offers.md @@ -230,7 +230,7 @@ To retrieve the product offers, send the request: "faxNumber": "+49 30 234567600", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Sony Experts

Matthias-Pschorr-Straße 1
80336 München
DE

Phone: 030 1234567
Email: support@sony-experts.com

Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306

", "dataPrivacy": "Sony Experts values the privacy of your personal data." } diff --git a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md index d9d19f207a9..4fbe50fcec3 100644 --- a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md +++ b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md @@ -4,7 +4,7 @@ template: concept-topic-template last_updated: Nov 21, 2023 --- -The *Marketplace Product Offer* entity is created when multiple merchants sell the same product on the Marketplace. The product offer is a variation of a concrete product with its own specific price (and volume price) and stock. It can be “owned” by any entity, however, in a B2C or B2B Marketplace, it is owned by a merchant. +The *Marketplace Product Offer* entity is created when multiple merchants sell the same product on the Marketplace. The product offer is a variation of a concrete product with its own specific price (and volume price) and stock. It can be “owned” by any entity, however, in a B2C or B2B Marketplace, it's owned by a merchant. The Marketplace product offer has its own validity dates and its own availability calculation based on its reservations. diff --git a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md index 9c800d1bc64..088a941f326 100644 --- a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md +++ b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md @@ -5,7 +5,7 @@ template: concept-topic-template last_updated: Nov 21, 2023 --- -Product Offer and data related to it is cached to enhance performance. +Product Offer and data related to it's cached to enhance performance. {% info_block infoBox "" %} diff --git a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-overview.md b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-overview.md index 1f3bcbe561d..4244a38d3a1 100644 --- a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-overview.md +++ b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-overview.md @@ -60,9 +60,9 @@ Product offer status defines whether the offer is active and displayed on the St ### Visibility -* *Active*: When an offer is active, it is displayed on the Storefront. Either merchant or Marketplace administrator can make the offer active. +* *Active*: When an offer is active, it's displayed on the Storefront. Either merchant or Marketplace administrator can make the offer active. -* *Inactive*: When an offer is inactive, it is not displayed on the Storefront. Either merchant or Marketplace administrator can make the offer inactive. +* *Inactive*: When an offer is inactive, it's not displayed on the Storefront. Either merchant or Marketplace administrator can make the offer inactive. ![Offer approval flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Marketplace/Products+and+offers/Product+offer+feature+overview/offer-approval-flow.png) @@ -76,7 +76,7 @@ The product offer prices support: * Store * Currency -Product offer price follows the [concrete product price inheritance model](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). So if the Merchant doesn't set a price in the offer, it is taken from the concrete product. Otherwise, the product offer price has a higher priority and substitutes the concrete product price if it is indicated. If at least one price is defined for the offer (for example, original), it is valid for this offer even if the concrete product has a default price (sales price), but the offer does not. For details about price types, see [Price types](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). +Product offer price follows the [concrete product price inheritance model](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). So if the Merchant doesn't set a price in the offer, it's taken from the concrete product. Otherwise, the product offer price has a higher priority and substitutes the concrete product price if it's indicated. If at least one price is defined for the offer (for example, original), it's valid for this offer even if the concrete product has a default price (sales price), but the offer does not. For details about price types, see [Price types](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). If a [merchant custom price](/docs/pbc/all/price-management/{{page.version}}/base-shop/merchant-custom-prices-feature-overview.html) exists for a customer, they see only the prices that apply to them, based on their merchant relationship. If the merchant relationship doesn't have prices for some products, default prices are displayed for the customer. @@ -158,7 +158,7 @@ During the checkout, offers from the same merchant are grouped for delivery so t ### Product offers on the wishlist page -Customers can add product offers to a wishlist for future purchase. Merchant information is kept for the offer when it is added to a wishlist. Further, customers can add the offer from the wishlist to cart. +Customers can add product offers to a wishlist for future purchase. Merchant information is kept for the offer when it's added to a wishlist. Further, customers can add the offer from the wishlist to cart.
-Every marketplace order contains information about the merchant orders it is split into. +Every marketplace order contains information about the merchant orders it's split into. ### Reference information: Viewing marketplace orders diff --git a/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-domain-model-and-relationships.md b/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-domain-model-and-relationships.md index f0398c475b0..3771db78987 100644 --- a/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-domain-model-and-relationships.md +++ b/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-domain-model-and-relationships.md @@ -20,7 +20,7 @@ related: *Marketplace Order Management* enables splitting orders into merchant orders and letting product offers be bought directly from a Storefront. The orders are designed to be used by the Marketplace operator, while the merchant orders are always connected to a merchant. To learn more about the core Marketplace objects, see [Marketplace domain model](/docs/dg/dev/architecture/marketplace-architecture/marketplace-domain-model.html). -By using `MerchantSalesOrderFacade::createMerchantOrderCollection()`, you can decide when to create merchant orders out of an order in your project. By default, it is created by `CreateMerchantOrdersCommandPlugin`. +By using `MerchantSalesOrderFacade::createMerchantOrderCollection()`, you can decide when to create merchant orders out of an order in your project. By default, it's created by `CreateMerchantOrdersCommandPlugin`. ## Module dependency graph diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md index b2012190f67..af96fd4f8ab 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md @@ -51,7 +51,7 @@ The overall interaction diagram between Glue API, the API Client, and the third First, implement a plugin that maps the checkout response and fills it with the necessary redirect URL and other attributes that are mapped. To do so, create a plugin file on the `Glue` layer: `src/Pyz/Glue/MyModule/Plugin/CheckoutRestApi/CheckoutResponseMapperPlugin.php`. -The plugin must implement `CheckoutResponseMapperPluginInterface`. Using the `mapRestCheckoutResponseTransferToRestCheckoutResponseAttributesTransfer` function of the interface, you can set the redirect URL and specify whether it is an internal or external redirect. +The plugin must implement `CheckoutResponseMapperPluginInterface`. Using the `mapRestCheckoutResponseTransferToRestCheckoutResponseAttributesTransfer` function of the interface, you can set the redirect URL and specify whether it's an internal or external redirect. **Sample implementation** @@ -99,7 +99,7 @@ The plugin must extend the `OrderPaymentUpdaterPluginInterface` and implement th * `isAppplicable`: This function determines whether a specific payment is processed by the plugin. The function returns true if the payment must be processed; otherwise, it returns false. * `updateOrderPayment`: This function updates the payment data in the database. -To help you understand which payments need to be processed, you can use the optional `paymentIdentifier` field in `POST` requests to the `/order-payments` endpoint. To make sure it is always present in a request, you may require the API client to set the field to a specific value to invoke your payment plugin. The value of the field can be retrieved using the `getPaymentIdentifier` helper function. +To help you understand which payments need to be processed, you can use the optional `paymentIdentifier` field in `POST` requests to the `/order-payments` endpoint. To make sure it's always present in a request, you may require the API client to set the field to a specific value to invoke your payment plugin. The value of the field can be retrieved using the `getPaymentIdentifier` helper function. {% info_block infoBox %} diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md index 682b13486e8..8f05eb2d11b 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md @@ -82,7 +82,7 @@ The table below describes all general configuration keys and their values. | `AdyenApiConstants::CAPTURE_ACTION_URL` | string | URL for the capture API call. | | `AdyenApiConstants::CANCEL_ACTION_URL` | string | URL for the cancel API call. | | `AdyenApiConstants::REFUND_ACTION_URL` | string | URL for the refund API call. | -| `AdyenApiConstants::CANCEL_OR_REFUND_ACTION_URL` | string | URL for the API call to cancel payment. When it's not possible to know if the payment is already captured, it is used for the refund API call. | +| `AdyenApiConstants::CANCEL_OR_REFUND_ACTION_URL` | string | URL for the API call to cancel payment. When it's not possible to know if the payment is already captured, it's used for the refund API call. | | `AdyenApiConstants::TECHNICAL_CANCEL_ACTION_URL` | string | URL for the technical cancellation API call. | | `AdyenApiConstants::ADJUST_AUTHORIZATION_ACTION_URL` | string | URL for the API call to adjust the authorized amount. | diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md index 68c32f6d810..ac9bf2be884 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md @@ -86,7 +86,7 @@ Next step is rendering Pay with Amazon button. Just insert this line in a proper {% raw %}{{{% endraw %} render(path('amazonpay_paybutton')) {% raw %}}}{% endraw %} ``` -Make sure that the button is rendered and works properly. In the sandbox mode it is necessary to have Amazon Pay test account. Once buyer is signed in with his credentials, he must be redirected to the checkout page and Amazon Order Reference Id has to be passed. On the checkout page two widgets must be displayed as well as button for confirming purchase. Delivery method selection has to be build on merchant side and Amazon provides nothing for it. Nevertheless, it always depends on the country and therefore it has to be refreshed after the delivery address is selected from the widget. For this Amazon provides JavaScript callback `onAddressSelect`. In the bundle it triggers internal controller `getShipmentMethodsAction()` which triggers Facade's method `addSelectedAddressToQuote()`. This method retrieves selected location via Handling orders with Amazon Pay API and writes it to Quote. After that, it is possible to retrieve available shipment methods. +Make sure that the button is rendered and works properly. In the sandbox mode it's necessary to have Amazon Pay test account. Once buyer is signed in with his credentials, he must be redirected to the checkout page and Amazon Order Reference Id has to be passed. On the checkout page two widgets must be displayed as well as button for confirming purchase. Delivery method selection has to be build on merchant side and Amazon provides nothing for it. Nevertheless, it always depends on the country and therefore it has to be refreshed after the delivery address is selected from the widget. For this Amazon provides JavaScript callback `onAddressSelect`. In the bundle it triggers internal controller `getShipmentMethodsAction()` which triggers Facade's method `addSelectedAddressToQuote()`. This method retrieves selected location via Handling orders with Amazon Pay API and writes it to Quote. After that, it's possible to retrieve available shipment methods. For that purpose Spryker provides Shipment Bundle and its client with method `getAvailableMethods()`. @@ -110,4 +110,4 @@ The rest of integration includes State machine which is different for synchronou It receives HTTP header and body as array and string respectively and passes it to the Facade method `convertAmazonpayIpnRequest()` which returns transfer object. Exact type of it depends on the type of IPN request and may be one of those: -`AmazonpayIpnPaymentAuthorizeRequest`, `AmazonpayIpnPaymentCaptureRequest`, `AmazonpayIpnPaymentRefundRequest`, `AmazonpayIpnOrderReferenceNotification`. Another Facade's method called `handleAmazonpayIpnRequest` is responsible for handling all these messages. Normally it changes the status of a payment in the database and triggers some State Machine event. Then state machine command and conditions take action. In case of any problems with receiving IPN messages it is possible to do the same manually using state machine buttons in Zed. +`AmazonpayIpnPaymentAuthorizeRequest`, `AmazonpayIpnPaymentCaptureRequest`, `AmazonpayIpnPaymentRefundRequest`, `AmazonpayIpnOrderReferenceNotification`. Another Facade's method called `handleAmazonpayIpnRequest` is responsible for handling all these messages. Normally it changes the status of a payment in the database and triggers some State Machine event. Then state machine command and conditions take action. In case of any problems with receiving IPN messages it's possible to do the same manually using state machine buttons in Zed. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md index 83bbe754670..ad01538617a 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md @@ -20,7 +20,7 @@ related: link: docs/pbc/all/payment-service-provider/page.version/base-shop/third-party-integrations/amazon-pay/obtain-an-amazon-order-reference-and-information-about-shipping-addresses.html --- -The state machine is different for synchronous and asynchronous flow. Although from status "capture completed" it is the same and in the state machine, it's presented as a sub-process. +The state machine is different for synchronous and asynchronous flow. Although from status "capture completed" it's the same and in the state machine, it's presented as a sub-process. The state machine for the synchronous flow: diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md index c2d9e3bca69..cb4cd6b44ac 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md @@ -91,7 +91,7 @@ $config[AmazonPayConstants::WIDGET_BUTTON_SIZE] = AmazonPayConfig::WIDGET_BUTTON $config[AmazonPayConstants::WIDGET_BUTTON_COLOR] = AmazonPayConfig::WIDGET_BUTTON_COLOR_DARK_GRAY; ``` -According to Amazon Pay restrictions, a module can run either on a `localhost` domain or via HTTPS. If it is not possible to use `localhost`, HTTPS connection should be configured. For testing purposes, register a test account in the [Amazon Pay dashboard](https://pay.amazon.com/us). +According to Amazon Pay restrictions, a module can run either on a `localhost` domain or via HTTPS. If it's not possible to use `localhost`, HTTPS connection should be configured. For testing purposes, register a test account in the [Amazon Pay dashboard](https://pay.amazon.com/us). {% info_block warningBox "Important" %} diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md index 6feefdb33e0..215d601206e 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md @@ -36,7 +36,7 @@ Each API call involves similar classes from the module: * A logger for logging information about API calls. * A transaction for updating transfer objects. -Since it is a standard Spryker OS practice, an entry point is a public method of the Facade, so, the flow for a typical transaction includes the following steps: +Since it's a standard Spryker OS practice, an entry point is a public method of the Facade, so, the flow for a typical transaction includes the following steps: 1. Logically grouping the affected order items, based on the transaction type: * for authorize & capture - by `AuthorizationReferenceId`. * for refund & capture status update - by `AmazonCaptureId`. @@ -113,7 +113,7 @@ The next step is to authorize the order. It's a separate operation because in te ## Authorization in Asynchronous and Synchronous Modes. CaptureNow Setting -The authorization API call is configurable and it reflects the whole payment process. First, an important setting is transaction_timeout which defines the maximum number of minutes allocated for the Authorise operation call to be processed, after which the authorization is automatically declined and you cannot capture funds against the authorization. The value zero means that the authorization result has to be returned immediately and it is asynchronous authorization. For the synchronous authorization, the value must be above zero but less than maximal possible 1440. Another important setting is CaptureNow. It can only be true or false and if set to true then both requests - Authorisation and Capture will be done in one step, within Authorise API call. Both setting are independent and may have all possible values. The whole order process and related State Machine depend on these settings and can be very different. +The authorization API call is configurable and it reflects the whole payment process. First, an important setting is transaction_timeout which defines the maximum number of minutes allocated for the Authorise operation call to be processed, after which the authorization is automatically declined and you cannot capture funds against the authorization. The value zero means that the authorization result has to be returned immediately and it's asynchronous authorization. For the synchronous authorization, the value must be above zero but less than maximal possible 1440. Another important setting is CaptureNow. It can only be true or false and if set to true then both requests - Authorisation and Capture will be done in one step, within Authorise API call. Both setting are independent and may have all possible values. The whole order process and related State Machine depend on these settings and can be very different. ## Handling Declined Payments. Synchronous Workflow @@ -127,7 +127,7 @@ When all previous steps return a positive response and authorization is accepted If the reason is different, we can check the state of an order using `GetOrderReferenceDetailsTransaction`. -If it is open then the order must be canceled with a `CancelOrderTransaction` call. +If it's open then the order must be canceled with a `CancelOrderTransaction` call. The rest of the decline flow includes logic determining where to redirect a buyer. In sandbox mode, for each test account, Amazon provides fake payment methods for emulating error API responses. @@ -141,18 +141,18 @@ There is one special constraint related to the selected payment method `PaymentM ## Handling Declined Payments. Asynchronous Workflow -Unlike the synchronous authorisation, it is impossible to get the result of the authorization in the response. Authorization object stays in Pending state until authorized. Capture and Refund requests can also be processed in the same way and Amazon provides Internet Payment Notification (IPN) in order to notify the shop about the new status of any asynchronous request. IPN message is an HTTP request with some special Amazon-related headers and the body which is XML string containing all data. The merchant has to specify URL for receiving and processing IPN messages. The Bundle provides two Facade's methods. +Unlike the synchronous authorisation, it's impossible to get the result of the authorization in the response. Authorization object stays in Pending state until authorized. Capture and Refund requests can also be processed in the same way and Amazon provides Internet Payment Notification (IPN) in order to notify the shop about the new status of any asynchronous request. IPN message is an HTTP request with some special Amazon-related headers and the body which is XML string containing all data. The merchant has to specify URL for receiving and processing IPN messages. The Bundle provides two Facade's methods. -`convertAmazonpayIpnRequest`(array `$headers`, `$body`) for converting Amazon request (which is HTTP headers and body) to the transfer object. For each type of IPN request Spryker provides related transfer object and method `convertAmazonpayIpnRequest()` returns one of them. For the processing of these transfer objects the Facade's method `handleAmazonpayIpnRequest` (`AbstractTransfer``$ipnRequestTransfer`) should be called. It `AbstractTransfer` type for its argument and it works with all types of IPN related transfer objects. A typical flow of a successful flow usually involves pending statuses of authorization and capture requests. Therefor related IPN messages have to be received and processed correctly. For retrieving same information Amazon provides also `GetAuthorizationDetails` and `GetCaptureDetails` functions and in Spryker, it is possible to update the pending statuses with State machine buttons. Once the button is clicked, the shop makes a related API call, receives a response and if the state is not pending then it updates order status according to the response message. The final status of a success flow is "capture completed". After that only Refund is available and refund workflow is asynchronous only and works in a similar way as asynchronous authorization. +`convertAmazonpayIpnRequest`(array `$headers`, `$body`) for converting Amazon request (which is HTTP headers and body) to the transfer object. For each type of IPN request Spryker provides related transfer object and method `convertAmazonpayIpnRequest()` returns one of them. For the processing of these transfer objects the Facade's method `handleAmazonpayIpnRequest` (`AbstractTransfer``$ipnRequestTransfer`) should be called. It `AbstractTransfer` type for its argument and it works with all types of IPN related transfer objects. A typical flow of a successful flow usually involves pending statuses of authorization and capture requests. Therefor related IPN messages have to be received and processed correctly. For retrieving same information Amazon provides also `GetAuthorizationDetails` and `GetCaptureDetails` functions and in Spryker, it's possible to update the pending statuses with State machine buttons. Once the button is clicked, the shop makes a related API call, receives a response and if the state is not pending then it updates order status according to the response message. The final status of a success flow is "capture completed". After that only Refund is available and refund workflow is asynchronous only and works in a similar way as asynchronous authorization. The more tricky case is authorization declined workflow. It is similar to synchronous decline which was described above but everything goes asynchronously and involves additional IPN messages. First of all, Authorisation IPN comes with "Declined" state of authorization status. Another important information here is ReasonCode and it affects all further steps of the process. For the reason codes, `TransactionTimedOut` and `AmazonRejected` the order simply goes to "authorization declined" state but for the -`InvalidPaymentMethod` the customer has to change the payment method to the correct one. In this case, order receives "authorization suspended" status and Amazon sends two additional IPN messages: `OrderNotification` with the state "Open" comes in after payment method is changed by buyer and Authorisation notification as a result of authorization of a new payment method. If the new payment method passes authorization successfully then the order goes to the "auth open" state and it is possible to request a capture. In both decline cases, it is important to notify the buyer about it by email since it's the only way for him to know that payment is not possible. The text of the email letter has to be different for `InvalidPaymentMethod` case. +`InvalidPaymentMethod` the customer has to change the payment method to the correct one. In this case, order receives "authorization suspended" status and Amazon sends two additional IPN messages: `OrderNotification` with the state "Open" comes in after payment method is changed by buyer and Authorisation notification as a result of authorization of a new payment method. If the new payment method passes authorization successfully then the order goes to the "auth open" state and it's possible to request a capture. In both decline cases, it's important to notify the buyer about it by email since it's the only way for him to know that payment is not possible. The text of the email letter has to be different for `InvalidPaymentMethod` case. Another tricky moment about asynchronous flow is "Authorisation expired" situation. Each time the shop requests capture in the asynchronous mode it should check the current status of authorisation. Capture is only possible where the status of authorisation is "Open". If authorisation has status "Closed" and `ReasonCode` is either `ExpiredUnused` or `SellerClosed` then an order should be reauthorized with `CaptureNow` setting enabled. ## Refund -After successful authorization and capture processes order receives the status "capture completed". From this state only one operation is possible and it is Refund. A refund can be partial if more than one item set to refund or full. +After successful authorization and capture processes order receives the status "capture completed". From this state only one operation is possible and it's Refund. A refund can be partial if more than one item set to refund or full. Amazon only requires the amount of money which has to be refunded and the calculation has to be implemented on the shop's side. Spryker provides a bundle for calculating the amount to refund. Regardless the chosen setting Refund is always asynchronous. Once requested, an order goes to "refund pending" status and then IPN notification will notify the shop if a refund was accepted or declined. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billie.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billie.md index cb85e23fe99..f09201ca4bc 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billie.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billie.md @@ -20,7 +20,7 @@ redirect_from: B2B-PayAfterDelivery for the 21st century -Billie is Germany’s innovative online-only provider of flexible working capital solutions. Whether it is our award-wining, 100% digital factoring platform or our B2B-PayAfterDelivery solution for online stores: +Billie is Germany’s innovative online-only provider of flexible working capital solutions. Whether it's our award-wining, 100% digital factoring platform or our B2B-PayAfterDelivery solution for online stores: Aspiring start-ups, established SMEs and world-leading hidden champions all trust in Billie when it comes to fast, reliable and simple liquidity provision. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billpay/integrate-billpay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billpay/integrate-billpay.md index c5fe5d706e4..ffc6799b6b2 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billpay/integrate-billpay.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billpay/integrate-billpay.md @@ -35,7 +35,7 @@ See [Configuration Management](/docs/dg/dev/backend-development/data-manipulatio | `BILLPAY_PUBLIC_API_KEY` | Public API Key; generated and delivered by BillPay for your portal. | | `BILLPAY_MAX_DELAY_IN_DAYS` | Amount of days that will be added to the payment due date (e.g. in case of delayed shipping) | | `USE_MD5_HASH` | If your security key is not md5 hash encrypted, you can do that by setting this config to 1 | -| `USE_PRESCORE` | In if it is necessary to show all Billpay payment methods despite of Billpay prescore response, you can set this option to 0. It should be set to 1 by default. | +| `USE_PRESCORE` | In if it's necessary to show all Billpay payment methods despite of Billpay prescore response, you can set this option to 0. It should be set to 1 by default. | When you add options above to your project configuration, it should look somewhat like this: diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md index a3f71a38abe..02c1837b09c 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md @@ -22,7 +22,7 @@ related: Both credit card and PayPal utilize the same request flow in: * **Pre-check**: to check the user information to make sure that all the needed information is correct before doing the actual pre-authorization. -* **Authorize**: to perform a payment risk check which is a mandatory step before every payment. The payment is considered accepted when it is authorized. +* **Authorize**: to perform a payment risk check which is a mandatory step before every payment. The payment is considered accepted when it's authorized. * **Revert**: to cancel the authorization step which cancels the payment before capturing. * **Capture**: to capture the payment and receive money from the buyer. * **Refund**: to refund the buyer when returning products. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree.md index f40b6ec4805..7b8db70089b 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree.md @@ -39,7 +39,7 @@ Both accounts share the same configuration with different values. Braintree uses We use state machines for handling and managing orders and payments. To integrate Braintree payments, a state machine for Braintree should be created. -A basic and fully functional state machine is already built (`BraintreePayPal01` and `BraintreeCreditCard01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it is preferred to contact Braintree and confirm the new state machine design and functionality. +A basic and fully functional state machine is already built (`BraintreePayPal01` and `BraintreeCreditCard01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it's preferred to contact Braintree and confirm the new state machine design and functionality. The state machine commands and conditions trigger Braintree facade calls in order to perform the needed requests to Braintree. For simplicity, the Braintree facade uses the same calls for both credit card and PayPal payments and automatically distinguishes between the payment methods from the payment entity. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/computop-api-calls.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/computop-api-calls.md index 9fe31ab7348..65cc663797d 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/computop-api-calls.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/computop-api-calls.md @@ -39,7 +39,7 @@ related: ## Inquire Call: -Status inquiries within Paygate give detailed information about the amounts that are actually authorized, captured or credited. Especially before executing reversals via the interface reverse.aspx it is recommended to check the transaction status with inquire.aspx because Reverse.aspx re-verses not only authorizations but ALWAYS THE LAST TRANSACTION STEP. +Status inquiries within Paygate give detailed information about the amounts that are actually authorized, captured or credited. Especially before executing reversals via the interface reverse.aspx it's recommended to check the transaction status with inquire.aspx because Reverse.aspx re-verses not only authorizations but ALWAYS THE LAST TRANSACTION STEP. ## Reverse Call: diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md index 5c196497a8c..3c13505da1f 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md @@ -78,7 +78,7 @@ $config[OmsConstants::ACTIVE_PROCESSES] = [ For partial capturing: -1. Case: Merchant uses neither ETM nor PCN (`PseudoCardNumber`). After authorization has been done, you are able to do one capture. This can be a partial or a complete capture of the authorized amount. After the capture is performed you cannot do another capture. If it is a partial capture, the rest of the initial authorized amount is released. +1. Case: Merchant uses neither ETM nor PCN (`PseudoCardNumber`). After authorization has been done, you are able to do one capture. This can be a partial or a complete capture of the authorized amount. After the capture is performed you cannot do another capture. If it's a partial capture, the rest of the initial authorized amount is released. 2. Case: Merchant uses ETM (Extended Transactions Management). You can do partial captures as long as the as the initial amount of the authorization has not been reached or you send `FinishAuth=Y` with the last capture you like to do. (see page 83 of Computop documentation) 3. Case: Merchant uses PCN. With the authorization request you get back the PCN and other credit card parameter (Expiry Date, Brand). PCN and the other parameters can be stored. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md index 43d9a143ff5..1c0e9591b70 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md @@ -59,7 +59,7 @@ You can find the state machine example in `vendor/spryker-eco/crefo-pay/config/Z ## Direct Debit -Direct Debit is processed by the bank system once it is transferred to the bank gateway. This can take several days. While being processed, the order has PayPending status. +Direct Debit's processed by the bank system once it's transferred to the bank gateway. This can take several days. While being processed, the order has PayPending status. As a result of the reconciliation process, the bank system provides feedback which is evaluated automatically within CrefoPay system: diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md index 93aa79beb1f..139505c2f0a 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md @@ -75,8 +75,8 @@ Each payment option has its own template. You can find and customize it under `Y ## Payment Step Submitting -* When customer chooses a new registration (fills in the payment form in the iframe) and clicks "Go To Summary" button, data inside the payment iframe will be serialised and sent as a POST request to Heidelpay payment system*. Heidelpay then processes the request and sends asynchronous POST request to the shop's `CONFIG_YVES_CHECKOUT_ASYNC_RESPONSE_URL` in Yves (`CreditCardController::registrationRequestAction`). This request will contain an anonymized customer credit card data and registration number (hash). This data will be persisted in Zed for future customer recognition and for the next step. In response, Heidelpay expects to get a plain URL where to redirect customer. In case of failure it is `HeidelpayController::paymentFailedAction()`, and in case of success - `CreditCardController::registrationSuccessAction()`. `RegistrationSuccessAction()` will find customer registration (through Zed) and set it to quote. Then customer is redirected to summary page. -* When customer chooses the existing registration, it is simply set to quote and customer goes to summary step as usual. +* When customer chooses a new registration (fills in the payment form in the iframe) and clicks "Go To Summary" button, data inside the payment iframe will be serialised and sent as a POST request to Heidelpay payment system*. Heidelpay then processes the request and sends asynchronous POST request to the shop's `CONFIG_YVES_CHECKOUT_ASYNC_RESPONSE_URL` in Yves (`CreditCardController::registrationRequestAction`). This request will contain an anonymized customer credit card data and registration number (hash). This data will be persisted in Zed for future customer recognition and for the next step. In response, Heidelpay expects to get a plain URL where to redirect customer. In case of failure it's `HeidelpayController::paymentFailedAction()`, and in case of success - `CreditCardController::registrationSuccessAction()`. `RegistrationSuccessAction()` will find customer registration (through Zed) and set it to quote. Then customer is redirected to summary page. +* When customer chooses the existing registration, it's simply set to quote and customer goes to summary step as usual. * This javascript behavior can be found and customized under `assets/Yves/js/modules/creditCardFrame.js` file.
** This overhead with payment->registrationRequest->registrationSuccess->summary is necessary, because `registrationRequest` is called asynchronously from the outside, where customer session is not available. Later on, `registrationSuccess` action is called already where customer session is available, so we can add registration to quote there. @@ -117,4 +117,4 @@ The most important data here - is the payment reference ID which can be used for In the response Heidelpay expects an URL string which defines where customer has to be redirected. In case if customer successfully confirmed payment, it should be a link to checkout order success step, in case of failure - checkout payment failed action with error code (See See `HeidelpayController::paymentFailedAction()` and [Heidelpay workflow for errors](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/heidelpay/heidelpay-workflow-for-errors.html) section). Heidelpay redirects customer to the given URL and payment process is finished.  -**Capture the money** - later on, when the item is shipped to the customer, it is time to call "capture" command of the state machine to capture money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order state machine for `CreditCardSecureAuthorize` method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". +**Capture the money** - later on, when the item is shipped to the customer, it's time to call "capture" command of the state machine to capture money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order state machine for `CreditCardSecureAuthorize` method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md index e76ad376b75..e05b16adc97 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md @@ -61,7 +61,7 @@ HeidelpayConfig::PAYMENT_METHOD_DIRECT_DEBIT => 'HeidelpayDirectDebit01', ``` ## The Process of a Direct Debit Account Registration -Payment flow with direct debit is divided into two workflows - based on the new "Registration," and without/with the existing "Registration." Existing "Registration" means that customer's bank account data (IBAN, Account Holder and so on) will be persisted in the database to use it again next time if customer uses the same shipping address. Otherwise, use the new "Registration" option. +Payment flow with direct debit's divided into two workflows - based on the new "Registration," and without/with the existing "Registration." Existing "Registration" means that customer's bank account data (IBAN, Account Holder and so on) will be persisted in the database to use it again next time if customer uses the same shipping address. Otherwise, use the new "Registration" option. When you go to the checkout payment page and choose the DirectDebit payment method, there are two payment options - to use the already existing registration (if available) or to create a new registration (always available) with the two fields IBAN and Account Holder. Existing registration is available only for registered customer after he placed an order with DirectDebit payment method, and he uses the same shipping address. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md index 1795dd1a8e4..8496d694a35 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md @@ -394,7 +394,7 @@ class CheckoutPageDependencyProvider extends SprykerShopCheckoutPageDependencyPr {% raw %}{{{% endraw %} 'checkout.step.summary.with_method' | trans {% raw %}}}{% endraw %} {% raw %}{{{% endraw %}data.paymentMethod{% raw %}}}{% endraw %}
{% raw %}{{{% endraw %} 'checkout.step.summary.payment' | trans {% raw %}}}{% endraw %}

- {% raw %}{%{% endraw %} if data.heidelpayEasyCredit is not null {% raw %}%}{% endraw %} + {% raw %}{%{% endraw %} if data.heidelpayEasyCredit's not null {% raw %}%}{% endraw %} {% raw %}{{{% endraw %} data.heidelpayEasyCredit.amortisationText {% raw %}}}{% endraw %}
@@ -541,7 +541,7 @@ No further actions are needed, the quote being filled with payment method select ## Summary Review and Order Submitting -Once the customer is redirected back to us, the response from Easy Credit is sent to the Heidelpay, and Heidelpay makes a synchronous POST request to the shop's `CONFIG_HEIDELPAY_PAYMENT_RESPONSE_URL URL` (Yves), with the result of payment (see `EasyCreditController::paymentAction()`). It is called "external response transaction," the result will be persisted in `spy_payment_heidelpay_transaction_log` as usual. The most important data here - is the payment reference ID which can be used for further transactions like `finalize/reserve/etc`. +Once the customer is redirected back to us, the response from Easy Credit's sent to the Heidelpay, and Heidelpay makes a synchronous POST request to the shop's `CONFIG_HEIDELPAY_PAYMENT_RESPONSE_URL URL` (Yves), with the result of payment (see `EasyCreditController::paymentAction()`). It is called "external response transaction," the result will be persisted in `spy_payment_heidelpay_transaction_log` as usual. The most important data here - is the payment reference ID which can be used for further transactions like `finalize/reserve/etc`. After that, the customer can see the order summary page, where they can review all related data. @@ -556,4 +556,4 @@ If the customer has not yet completed the HP.IN they must do that again. **When the state machine is initialized**, an event "send authorize on registration request" will trigger the authorize on registration request. In case of success, the state will be changed. -Finalize - later on, when the item is shipped to the customer, it is time to call "finalize" command of the state machine. This will send HP.FI request to the Payment API. This is done in FinalizePlugin of the OMS command. +Finalize - later on, when the item is shipped to the customer, it's time to call "finalize" command of the state machine. This will send HP.FI request to the Payment API. This is done in FinalizePlugin of the OMS command. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md index 9e58056c5ca..3983f6f3c1c 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md @@ -72,4 +72,4 @@ The most important data here - is the payment reference ID which can be used for In the response Heidelpay expects an URL string which defines where customer has to be redirected. In case if customer successfully confirmed payment, it should be a link to the checkout order success step, in case of the failure - checkout payment failed action with the error code (see `HeidelpayController::paymentFailedAction()` and [Heidelpay workflow for errors](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/heidelpay/heidelpay-workflow-for-errors.html) section). Heidelpay redirects customer to the given URL and the payment process is finished.  -**Capture the money** - later on, when the item is shipped to the customer, it is time to call "capture" command of the state machine to capture the money from the customer's account. This is done in CapturePlugin of the OMS command. In the provided basic order state machine for iDeal authorize method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". +**Capture the money** - later on, when the item is shipped to the customer, it's time to call "capture" command of the state machine to capture the money from the customer's account. This is done in CapturePlugin of the OMS command. In the provided basic order state machine for iDeal authorize method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md index 04cc222a7bc..2eaf783c4ba 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md @@ -60,7 +60,7 @@ $config[SalesConstants::PAYMENT_METHOD_STATEMACHINE_MAPPING] = [ ``` ## Notifications -Heidelpay InvoiceSecuredB2C payment method uses push notifications to inform the shop about the results of the transaction. An HTTP post request sends a push notification to a shop URL. The push notification contains the transaction response in XML format with all necessary data related to payment and transaction type. Headers of the HTTP request contain information about timestamp when the notification was sent and the number of retries. The body of the HTTP POST request includes the XML response of the reported transaction. There is no additional parameter encoding available; it is posted raw "text/xml". To confirm the notification, the shop server must reply with the HTTP status code "200". All other HTTP status codes are considered as an error, and a resend of the notification. Delivery is repeated up to 30 times if the merchant's server has not responded with HTTP status code "200“. The periods between the trials are increasing. +Heidelpay InvoiceSecuredB2C payment method uses push notifications to inform the shop about the results of the transaction. An HTTP post request sends a push notification to a shop URL. The push notification contains the transaction response in XML format with all necessary data related to payment and transaction type. Headers of the HTTP request contain information about timestamp when the notification was sent and the number of retries. The body of the HTTP POST request includes the XML response of the reported transaction. There is no additional parameter encoding available; it's posted raw "text/xml". To confirm the notification, the shop server must reply with the HTTP status code "200". All other HTTP status codes are considered as an error, and a resend of the notification. Delivery is repeated up to 30 times if the merchant's server has not responded with HTTP status code "200“. The periods between the trials are increasing. Notification URL for your website is `http://mysprykershop.com/heidelpay/notification`. It should be set up on Heidelpay's side with the help of Heidelpay support team. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md index 4af4e2ad446..5eb276aed00 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md @@ -91,4 +91,4 @@ The most important data here is the payment reference ID which can be used for f In the response Heidelpay expects an URL string which defines where customer has to be redirected. In case if customer successfully confirmed payment, it should be a link to checkout order success step, in case of failure - checkout payment failed action with error code (see `HeidelpayController::paymentFailedAction()` and [Heidelpay workflow for errors](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/heidelpay/heidelpay-workflow-for-errors.html) section). Heidelpay redirects customer to the given URL and the payment process is finished.  -**Capture the money** - later on, when the item is shipped to the customer, it is time to call "capture" command of the state machine to capture the money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order of state machine for Paypal authorize method, the command will be executed automatically, when order is manually moved into the "shipped" state. Now the order can be considered as "paid". +**Capture the money** - later on, when the item is shipped to the customer, it's time to call "capture" command of the state machine to capture the money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order of state machine for Paypal authorize method, the command will be executed automatically, when order is manually moved into the "shipped" state. Now the order can be considered as "paid". diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/klarna/klarna.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/klarna/klarna.md index e4a508e8a9f..d31968a3e8d 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/klarna/klarna.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/klarna/klarna.md @@ -53,7 +53,7 @@ To Integrate Klarna payments, create and configure a Klarna merchant account. We use state machines for handling and managing orders and payments. To integrate Klarna payments, a dedicated state machine should be created. -A basic and fully functional state machine is already available (KlarnaPayment01). You can use the same state machine or build a new one. In case a new state machine needs to be built, it is preferred to contact Klarna and confirm the new state machine design and functionality. +A basic and fully functional state machine is already available (KlarnaPayment01). You can use the same state machine or build a new one. In case a new state machine needs to be built, it's preferred to contact Klarna and confirm the new state machine design and functionality. The [Klarna State Machine Commands and Conditions](klarna-state-machine.htm) trigger the operations exposed by the KlarnaFacade in order to perform the needed requests to Klarna. --> diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md index 29699d9bced..b75ea8cf2ee 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md @@ -25,7 +25,7 @@ related: Both [invoice](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/payolution/integrate-the-invoice-payment-method-for-payolution.html) and [installment](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/payolution/integrate-the-installment-payment-method-for-payolution.html) payment methods utilize the same request flow. It basically consists of the following requests: * Calculation (for instalment only): to calculate the instalment amounts, dues, and durations. * Pre-check (optional): to check the user information in order to make sure that all the needed information is correct before doing the actual pre-authorization. -* Pre-authorize: to perform a payment risk check which is a mandatory step before every payment. The payment is basically considered accepted when it is authorized. +* Pre-authorize: to perform a payment risk check which is a mandatory step before every payment. The payment is basically considered accepted when it's authorized. * Re-authorize: to update an existing authorization if necessary. * Revert: to cancel the authorization step which basically cancels the payment before capturing. * Capture: to capture the payment and receive money from the buyer. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payolution/payolution.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payolution/payolution.md index f0e3f55e852..16029a409d5 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payolution/payolution.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payolution/payolution.md @@ -34,7 +34,7 @@ Payolution provides two methods of payment: In order to integrate Payolution payments, a Payolution merchant account should be created and configuration data then could be obtained from Payolution. There are two types of accounts for the integration: test and live. Both accounts share the same configuration with different values. Payolution uses the idea of having channels for handling different requests. Each channel is specified by a channel ID which will be given by Payolution. -We use state machines for handling and managing orders and payments. To integrate Payolution payments, a state machine for Payolution should be created. A basic and fully functional state machine is already built (`PayolutionPayment01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it is preferred to contact Payolution and confirm the new state machine design and functionality. +We use state machines for handling and managing orders and payments. To integrate Payolution payments, a state machine for Payolution should be created. A basic and fully functional state machine is already built (`PayolutionPayment01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it's preferred to contact Payolution and confirm the new state machine design and functionality. The state machine commands and conditions trigger Payolution facade calls in order to perform the needed requests to Payolution. For simplicity, the Payolution facade uses the same calls for both invoice and installment payments and distinguishes the payment method automatically from the payment entity. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md index 731f4556e54..87bc01f18c4 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md @@ -24,7 +24,7 @@ You can have multiple accounts with Payone. For example, you can have different For the *Payone Credit Card* payment method, we support the following modes: -- *Preauthorization and Capture*: After a customer entered the credit card details during the checkout, the seller preauthorizes or reserves the payable amount on the customer’s credit card. As soon as the items have shipped, this amount is captured. Capture kicks off the process of moving money from the customer’s credit card to the seller’s account. The preauthorization and capture mode is the best choice for physical goods. It ensures that in case the ordered items are not available anymore or the customer cancels the order before it is shipped, the seller does not have to transfer the money back to the customer's account and thereby avoids a chargeback. +- *Preauthorization and Capture*: After a customer entered the credit card details during the checkout, the seller preauthorizes or reserves the payable amount on the customer’s credit card. As soon as the items have shipped, this amount is captured. Capture kicks off the process of moving money from the customer’s credit card to the seller’s account. The preauthorization and capture mode is the best choice for physical goods. It ensures that in case the ordered items are not available anymore or the customer cancels the order before it's shipped, the seller does not have to transfer the money back to the customer's account and thereby avoids a chargeback. - *3DS*: Messaging protocol that enables consumer authentication with their card issuer when making online purchases. - *PCI DSS Compliance via SAQ A*: A set of security standards designed to ensure that you accept, process, and transmit credit card information in a secure environment. @@ -48,7 +48,7 @@ When paying with a credit card, customers can do the following: - Repeat payments as often as they want if the payment (preauthorization) has failed, or cancel and close the payment page. - Cancel the entire order before shipment and receive the money back, that is, void the existing preauthorization without being charged a fee. -- Cancel the order after it is ready for shipment and receive the money back, that is, trigger a refund. +- Cancel the order after it's ready for shipment and receive the money back, that is, trigger a refund. - Return the order or its items after it has been successfully shipped and is refunded for the returned items or the entire order. When customers pay with a credit card, a shop owner can do the following: @@ -69,7 +69,7 @@ When customers pay with PayPal, the flow is as follows: When paying with PayPal, customers can: - Cancel the entire order before shipment and receive the money back, that is, void the existing preauthorization, without being charged a fee. -- Cancel the order after it is ready for shipment and receive the money back, that is, trigger a refund. +- Cancel the order after it's ready for shipment and receive the money back, that is, trigger a refund. - Return the order or its items after it has been successfully shipped and is refunded for the returned items or the entire order. When customers pay with PayPal, a shop owner can do the following: diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md index 89a3c26ae89..43af18ca266 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md @@ -19,7 +19,7 @@ related: [ABOUT RATENKAUF](https://www.easycredit-ratenkauf.de/) -Germany’s easiest installment purchase solution ratenkauf by easyCredit is the first payment option to offer a simple and standardized solution for e-commerce and for the point of sale. +Germany’s easiest installment purchase solution ratenkauf by easyCredit's the first payment option to offer a simple and standardized solution for e-commerce and for the point of sale. TeamBank, with its easyCredit product family, is the liquidity management specialist in the Volksbanken Raiffeisenbanken cooperative financial network. Its ‘ratenkauf by easyCredit’ product is the first installment purchase solution that combines a simple and uniformly designed installment purchase function both for e-commerce and for a physical point of sale. Customers can make their ratenkauf by easyCredit installment purchase in just three steps. No paperwork, immediate approval, and complete flexibility throughout. Simple. Fair. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md index b2012190f67..af96fd4f8ab 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md @@ -51,7 +51,7 @@ The overall interaction diagram between Glue API, the API Client, and the third First, implement a plugin that maps the checkout response and fills it with the necessary redirect URL and other attributes that are mapped. To do so, create a plugin file on the `Glue` layer: `src/Pyz/Glue/MyModule/Plugin/CheckoutRestApi/CheckoutResponseMapperPlugin.php`. -The plugin must implement `CheckoutResponseMapperPluginInterface`. Using the `mapRestCheckoutResponseTransferToRestCheckoutResponseAttributesTransfer` function of the interface, you can set the redirect URL and specify whether it is an internal or external redirect. +The plugin must implement `CheckoutResponseMapperPluginInterface`. Using the `mapRestCheckoutResponseTransferToRestCheckoutResponseAttributesTransfer` function of the interface, you can set the redirect URL and specify whether it's an internal or external redirect. **Sample implementation** @@ -99,7 +99,7 @@ The plugin must extend the `OrderPaymentUpdaterPluginInterface` and implement th * `isAppplicable`: This function determines whether a specific payment is processed by the plugin. The function returns true if the payment must be processed; otherwise, it returns false. * `updateOrderPayment`: This function updates the payment data in the database. -To help you understand which payments need to be processed, you can use the optional `paymentIdentifier` field in `POST` requests to the `/order-payments` endpoint. To make sure it is always present in a request, you may require the API client to set the field to a specific value to invoke your payment plugin. The value of the field can be retrieved using the `getPaymentIdentifier` helper function. +To help you understand which payments need to be processed, you can use the optional `paymentIdentifier` field in `POST` requests to the `/order-payments` endpoint. To make sure it's always present in a request, you may require the API client to set the field to a specific value to invoke your payment plugin. The value of the field can be retrieved using the `getPaymentIdentifier` helper function. {% info_block infoBox %} diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md index 682b13486e8..8f05eb2d11b 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md @@ -82,7 +82,7 @@ The table below describes all general configuration keys and their values. | `AdyenApiConstants::CAPTURE_ACTION_URL` | string | URL for the capture API call. | | `AdyenApiConstants::CANCEL_ACTION_URL` | string | URL for the cancel API call. | | `AdyenApiConstants::REFUND_ACTION_URL` | string | URL for the refund API call. | -| `AdyenApiConstants::CANCEL_OR_REFUND_ACTION_URL` | string | URL for the API call to cancel payment. When it's not possible to know if the payment is already captured, it is used for the refund API call. | +| `AdyenApiConstants::CANCEL_OR_REFUND_ACTION_URL` | string | URL for the API call to cancel payment. When it's not possible to know if the payment is already captured, it's used for the refund API call. | | `AdyenApiConstants::TECHNICAL_CANCEL_ACTION_URL` | string | URL for the technical cancellation API call. | | `AdyenApiConstants::ADJUST_AUTHORIZATION_ACTION_URL` | string | URL for the API call to adjust the authorized amount. | diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md index 68c32f6d810..ac9bf2be884 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md @@ -86,7 +86,7 @@ Next step is rendering Pay with Amazon button. Just insert this line in a proper {% raw %}{{{% endraw %} render(path('amazonpay_paybutton')) {% raw %}}}{% endraw %} ``` -Make sure that the button is rendered and works properly. In the sandbox mode it is necessary to have Amazon Pay test account. Once buyer is signed in with his credentials, he must be redirected to the checkout page and Amazon Order Reference Id has to be passed. On the checkout page two widgets must be displayed as well as button for confirming purchase. Delivery method selection has to be build on merchant side and Amazon provides nothing for it. Nevertheless, it always depends on the country and therefore it has to be refreshed after the delivery address is selected from the widget. For this Amazon provides JavaScript callback `onAddressSelect`. In the bundle it triggers internal controller `getShipmentMethodsAction()` which triggers Facade's method `addSelectedAddressToQuote()`. This method retrieves selected location via Handling orders with Amazon Pay API and writes it to Quote. After that, it is possible to retrieve available shipment methods. +Make sure that the button is rendered and works properly. In the sandbox mode it's necessary to have Amazon Pay test account. Once buyer is signed in with his credentials, he must be redirected to the checkout page and Amazon Order Reference Id has to be passed. On the checkout page two widgets must be displayed as well as button for confirming purchase. Delivery method selection has to be build on merchant side and Amazon provides nothing for it. Nevertheless, it always depends on the country and therefore it has to be refreshed after the delivery address is selected from the widget. For this Amazon provides JavaScript callback `onAddressSelect`. In the bundle it triggers internal controller `getShipmentMethodsAction()` which triggers Facade's method `addSelectedAddressToQuote()`. This method retrieves selected location via Handling orders with Amazon Pay API and writes it to Quote. After that, it's possible to retrieve available shipment methods. For that purpose Spryker provides Shipment Bundle and its client with method `getAvailableMethods()`. @@ -110,4 +110,4 @@ The rest of integration includes State machine which is different for synchronou It receives HTTP header and body as array and string respectively and passes it to the Facade method `convertAmazonpayIpnRequest()` which returns transfer object. Exact type of it depends on the type of IPN request and may be one of those: -`AmazonpayIpnPaymentAuthorizeRequest`, `AmazonpayIpnPaymentCaptureRequest`, `AmazonpayIpnPaymentRefundRequest`, `AmazonpayIpnOrderReferenceNotification`. Another Facade's method called `handleAmazonpayIpnRequest` is responsible for handling all these messages. Normally it changes the status of a payment in the database and triggers some State Machine event. Then state machine command and conditions take action. In case of any problems with receiving IPN messages it is possible to do the same manually using state machine buttons in Zed. +`AmazonpayIpnPaymentAuthorizeRequest`, `AmazonpayIpnPaymentCaptureRequest`, `AmazonpayIpnPaymentRefundRequest`, `AmazonpayIpnOrderReferenceNotification`. Another Facade's method called `handleAmazonpayIpnRequest` is responsible for handling all these messages. Normally it changes the status of a payment in the database and triggers some State Machine event. Then state machine command and conditions take action. In case of any problems with receiving IPN messages it's possible to do the same manually using state machine buttons in Zed. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md index 83bbe754670..ad01538617a 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md @@ -20,7 +20,7 @@ related: link: docs/pbc/all/payment-service-provider/page.version/base-shop/third-party-integrations/amazon-pay/obtain-an-amazon-order-reference-and-information-about-shipping-addresses.html --- -The state machine is different for synchronous and asynchronous flow. Although from status "capture completed" it is the same and in the state machine, it's presented as a sub-process. +The state machine is different for synchronous and asynchronous flow. Although from status "capture completed" it's the same and in the state machine, it's presented as a sub-process. The state machine for the synchronous flow: diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md index c2d9e3bca69..cb4cd6b44ac 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md @@ -91,7 +91,7 @@ $config[AmazonPayConstants::WIDGET_BUTTON_SIZE] = AmazonPayConfig::WIDGET_BUTTON $config[AmazonPayConstants::WIDGET_BUTTON_COLOR] = AmazonPayConfig::WIDGET_BUTTON_COLOR_DARK_GRAY; ``` -According to Amazon Pay restrictions, a module can run either on a `localhost` domain or via HTTPS. If it is not possible to use `localhost`, HTTPS connection should be configured. For testing purposes, register a test account in the [Amazon Pay dashboard](https://pay.amazon.com/us). +According to Amazon Pay restrictions, a module can run either on a `localhost` domain or via HTTPS. If it's not possible to use `localhost`, HTTPS connection should be configured. For testing purposes, register a test account in the [Amazon Pay dashboard](https://pay.amazon.com/us). {% info_block warningBox "Important" %} diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md index 6feefdb33e0..215d601206e 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md @@ -36,7 +36,7 @@ Each API call involves similar classes from the module: * A logger for logging information about API calls. * A transaction for updating transfer objects. -Since it is a standard Spryker OS practice, an entry point is a public method of the Facade, so, the flow for a typical transaction includes the following steps: +Since it's a standard Spryker OS practice, an entry point is a public method of the Facade, so, the flow for a typical transaction includes the following steps: 1. Logically grouping the affected order items, based on the transaction type: * for authorize & capture - by `AuthorizationReferenceId`. * for refund & capture status update - by `AmazonCaptureId`. @@ -113,7 +113,7 @@ The next step is to authorize the order. It's a separate operation because in te ## Authorization in Asynchronous and Synchronous Modes. CaptureNow Setting -The authorization API call is configurable and it reflects the whole payment process. First, an important setting is transaction_timeout which defines the maximum number of minutes allocated for the Authorise operation call to be processed, after which the authorization is automatically declined and you cannot capture funds against the authorization. The value zero means that the authorization result has to be returned immediately and it is asynchronous authorization. For the synchronous authorization, the value must be above zero but less than maximal possible 1440. Another important setting is CaptureNow. It can only be true or false and if set to true then both requests - Authorisation and Capture will be done in one step, within Authorise API call. Both setting are independent and may have all possible values. The whole order process and related State Machine depend on these settings and can be very different. +The authorization API call is configurable and it reflects the whole payment process. First, an important setting is transaction_timeout which defines the maximum number of minutes allocated for the Authorise operation call to be processed, after which the authorization is automatically declined and you cannot capture funds against the authorization. The value zero means that the authorization result has to be returned immediately and it's asynchronous authorization. For the synchronous authorization, the value must be above zero but less than maximal possible 1440. Another important setting is CaptureNow. It can only be true or false and if set to true then both requests - Authorisation and Capture will be done in one step, within Authorise API call. Both setting are independent and may have all possible values. The whole order process and related State Machine depend on these settings and can be very different. ## Handling Declined Payments. Synchronous Workflow @@ -127,7 +127,7 @@ When all previous steps return a positive response and authorization is accepted If the reason is different, we can check the state of an order using `GetOrderReferenceDetailsTransaction`. -If it is open then the order must be canceled with a `CancelOrderTransaction` call. +If it's open then the order must be canceled with a `CancelOrderTransaction` call. The rest of the decline flow includes logic determining where to redirect a buyer. In sandbox mode, for each test account, Amazon provides fake payment methods for emulating error API responses. @@ -141,18 +141,18 @@ There is one special constraint related to the selected payment method `PaymentM ## Handling Declined Payments. Asynchronous Workflow -Unlike the synchronous authorisation, it is impossible to get the result of the authorization in the response. Authorization object stays in Pending state until authorized. Capture and Refund requests can also be processed in the same way and Amazon provides Internet Payment Notification (IPN) in order to notify the shop about the new status of any asynchronous request. IPN message is an HTTP request with some special Amazon-related headers and the body which is XML string containing all data. The merchant has to specify URL for receiving and processing IPN messages. The Bundle provides two Facade's methods. +Unlike the synchronous authorisation, it's impossible to get the result of the authorization in the response. Authorization object stays in Pending state until authorized. Capture and Refund requests can also be processed in the same way and Amazon provides Internet Payment Notification (IPN) in order to notify the shop about the new status of any asynchronous request. IPN message is an HTTP request with some special Amazon-related headers and the body which is XML string containing all data. The merchant has to specify URL for receiving and processing IPN messages. The Bundle provides two Facade's methods. -`convertAmazonpayIpnRequest`(array `$headers`, `$body`) for converting Amazon request (which is HTTP headers and body) to the transfer object. For each type of IPN request Spryker provides related transfer object and method `convertAmazonpayIpnRequest()` returns one of them. For the processing of these transfer objects the Facade's method `handleAmazonpayIpnRequest` (`AbstractTransfer``$ipnRequestTransfer`) should be called. It `AbstractTransfer` type for its argument and it works with all types of IPN related transfer objects. A typical flow of a successful flow usually involves pending statuses of authorization and capture requests. Therefor related IPN messages have to be received and processed correctly. For retrieving same information Amazon provides also `GetAuthorizationDetails` and `GetCaptureDetails` functions and in Spryker, it is possible to update the pending statuses with State machine buttons. Once the button is clicked, the shop makes a related API call, receives a response and if the state is not pending then it updates order status according to the response message. The final status of a success flow is "capture completed". After that only Refund is available and refund workflow is asynchronous only and works in a similar way as asynchronous authorization. +`convertAmazonpayIpnRequest`(array `$headers`, `$body`) for converting Amazon request (which is HTTP headers and body) to the transfer object. For each type of IPN request Spryker provides related transfer object and method `convertAmazonpayIpnRequest()` returns one of them. For the processing of these transfer objects the Facade's method `handleAmazonpayIpnRequest` (`AbstractTransfer``$ipnRequestTransfer`) should be called. It `AbstractTransfer` type for its argument and it works with all types of IPN related transfer objects. A typical flow of a successful flow usually involves pending statuses of authorization and capture requests. Therefor related IPN messages have to be received and processed correctly. For retrieving same information Amazon provides also `GetAuthorizationDetails` and `GetCaptureDetails` functions and in Spryker, it's possible to update the pending statuses with State machine buttons. Once the button is clicked, the shop makes a related API call, receives a response and if the state is not pending then it updates order status according to the response message. The final status of a success flow is "capture completed". After that only Refund is available and refund workflow is asynchronous only and works in a similar way as asynchronous authorization. The more tricky case is authorization declined workflow. It is similar to synchronous decline which was described above but everything goes asynchronously and involves additional IPN messages. First of all, Authorisation IPN comes with "Declined" state of authorization status. Another important information here is ReasonCode and it affects all further steps of the process. For the reason codes, `TransactionTimedOut` and `AmazonRejected` the order simply goes to "authorization declined" state but for the -`InvalidPaymentMethod` the customer has to change the payment method to the correct one. In this case, order receives "authorization suspended" status and Amazon sends two additional IPN messages: `OrderNotification` with the state "Open" comes in after payment method is changed by buyer and Authorisation notification as a result of authorization of a new payment method. If the new payment method passes authorization successfully then the order goes to the "auth open" state and it is possible to request a capture. In both decline cases, it is important to notify the buyer about it by email since it's the only way for him to know that payment is not possible. The text of the email letter has to be different for `InvalidPaymentMethod` case. +`InvalidPaymentMethod` the customer has to change the payment method to the correct one. In this case, order receives "authorization suspended" status and Amazon sends two additional IPN messages: `OrderNotification` with the state "Open" comes in after payment method is changed by buyer and Authorisation notification as a result of authorization of a new payment method. If the new payment method passes authorization successfully then the order goes to the "auth open" state and it's possible to request a capture. In both decline cases, it's important to notify the buyer about it by email since it's the only way for him to know that payment is not possible. The text of the email letter has to be different for `InvalidPaymentMethod` case. Another tricky moment about asynchronous flow is "Authorisation expired" situation. Each time the shop requests capture in the asynchronous mode it should check the current status of authorisation. Capture is only possible where the status of authorisation is "Open". If authorisation has status "Closed" and `ReasonCode` is either `ExpiredUnused` or `SellerClosed` then an order should be reauthorized with `CaptureNow` setting enabled. ## Refund -After successful authorization and capture processes order receives the status "capture completed". From this state only one operation is possible and it is Refund. A refund can be partial if more than one item set to refund or full. +After successful authorization and capture processes order receives the status "capture completed". From this state only one operation is possible and it's Refund. A refund can be partial if more than one item set to refund or full. Amazon only requires the amount of money which has to be refunded and the calculation has to be implemented on the shop's side. Spryker provides a bundle for calculating the amount to refund. Regardless the chosen setting Refund is always asynchronous. Once requested, an order goes to "refund pending" status and then IPN notification will notify the shop if a refund was accepted or declined. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/billie.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/billie.md index cb85e23fe99..f09201ca4bc 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/billie.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/billie.md @@ -20,7 +20,7 @@ redirect_from: B2B-PayAfterDelivery for the 21st century -Billie is Germany’s innovative online-only provider of flexible working capital solutions. Whether it is our award-wining, 100% digital factoring platform or our B2B-PayAfterDelivery solution for online stores: +Billie is Germany’s innovative online-only provider of flexible working capital solutions. Whether it's our award-wining, 100% digital factoring platform or our B2B-PayAfterDelivery solution for online stores: Aspiring start-ups, established SMEs and world-leading hidden champions all trust in Billie when it comes to fast, reliable and simple liquidity provision. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/billpay/integrate-billpay.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/billpay/integrate-billpay.md index c5fe5d706e4..ffc6799b6b2 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/billpay/integrate-billpay.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/billpay/integrate-billpay.md @@ -35,7 +35,7 @@ See [Configuration Management](/docs/dg/dev/backend-development/data-manipulatio | `BILLPAY_PUBLIC_API_KEY` | Public API Key; generated and delivered by BillPay for your portal. | | `BILLPAY_MAX_DELAY_IN_DAYS` | Amount of days that will be added to the payment due date (e.g. in case of delayed shipping) | | `USE_MD5_HASH` | If your security key is not md5 hash encrypted, you can do that by setting this config to 1 | -| `USE_PRESCORE` | In if it is necessary to show all Billpay payment methods despite of Billpay prescore response, you can set this option to 0. It should be set to 1 by default. | +| `USE_PRESCORE` | In if it's necessary to show all Billpay payment methods despite of Billpay prescore response, you can set this option to 0. It should be set to 1 by default. | When you add options above to your project configuration, it should look somewhat like this: diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md index a3f71a38abe..02c1837b09c 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md @@ -22,7 +22,7 @@ related: Both credit card and PayPal utilize the same request flow in: * **Pre-check**: to check the user information to make sure that all the needed information is correct before doing the actual pre-authorization. -* **Authorize**: to perform a payment risk check which is a mandatory step before every payment. The payment is considered accepted when it is authorized. +* **Authorize**: to perform a payment risk check which is a mandatory step before every payment. The payment is considered accepted when it's authorized. * **Revert**: to cancel the authorization step which cancels the payment before capturing. * **Capture**: to capture the payment and receive money from the buyer. * **Refund**: to refund the buyer when returning products. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/braintree/braintree.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/braintree/braintree.md index f40b6ec4805..7b8db70089b 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/braintree/braintree.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/braintree/braintree.md @@ -39,7 +39,7 @@ Both accounts share the same configuration with different values. Braintree uses We use state machines for handling and managing orders and payments. To integrate Braintree payments, a state machine for Braintree should be created. -A basic and fully functional state machine is already built (`BraintreePayPal01` and `BraintreeCreditCard01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it is preferred to contact Braintree and confirm the new state machine design and functionality. +A basic and fully functional state machine is already built (`BraintreePayPal01` and `BraintreeCreditCard01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it's preferred to contact Braintree and confirm the new state machine design and functionality. The state machine commands and conditions trigger Braintree facade calls in order to perform the needed requests to Braintree. For simplicity, the Braintree facade uses the same calls for both credit card and PayPal payments and automatically distinguishes between the payment methods from the payment entity. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/computop/computop-api-calls.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/computop/computop-api-calls.md index 9fe31ab7348..65cc663797d 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/computop/computop-api-calls.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/computop/computop-api-calls.md @@ -39,7 +39,7 @@ related: ## Inquire Call: -Status inquiries within Paygate give detailed information about the amounts that are actually authorized, captured or credited. Especially before executing reversals via the interface reverse.aspx it is recommended to check the transaction status with inquire.aspx because Reverse.aspx re-verses not only authorizations but ALWAYS THE LAST TRANSACTION STEP. +Status inquiries within Paygate give detailed information about the amounts that are actually authorized, captured or credited. Especially before executing reversals via the interface reverse.aspx it's recommended to check the transaction status with inquire.aspx because Reverse.aspx re-verses not only authorizations but ALWAYS THE LAST TRANSACTION STEP. ## Reverse Call: diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md index 5c196497a8c..3c13505da1f 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md @@ -78,7 +78,7 @@ $config[OmsConstants::ACTIVE_PROCESSES] = [ For partial capturing: -1. Case: Merchant uses neither ETM nor PCN (`PseudoCardNumber`). After authorization has been done, you are able to do one capture. This can be a partial or a complete capture of the authorized amount. After the capture is performed you cannot do another capture. If it is a partial capture, the rest of the initial authorized amount is released. +1. Case: Merchant uses neither ETM nor PCN (`PseudoCardNumber`). After authorization has been done, you are able to do one capture. This can be a partial or a complete capture of the authorized amount. After the capture is performed you cannot do another capture. If it's a partial capture, the rest of the initial authorized amount is released. 2. Case: Merchant uses ETM (Extended Transactions Management). You can do partial captures as long as the as the initial amount of the authorization has not been reached or you send `FinishAuth=Y` with the last capture you like to do. (see page 83 of Computop documentation) 3. Case: Merchant uses PCN. With the authorization request you get back the PCN and other credit card parameter (Expiry Date, Brand). PCN and the other parameters can be stored. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md index 43d9a143ff5..1c0e9591b70 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md @@ -59,7 +59,7 @@ You can find the state machine example in `vendor/spryker-eco/crefo-pay/config/Z ## Direct Debit -Direct Debit is processed by the bank system once it is transferred to the bank gateway. This can take several days. While being processed, the order has PayPending status. +Direct Debit's processed by the bank system once it's transferred to the bank gateway. This can take several days. While being processed, the order has PayPending status. As a result of the reconciliation process, the bank system provides feedback which is evaluated automatically within CrefoPay system: diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md index 93aa79beb1f..139505c2f0a 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md @@ -75,8 +75,8 @@ Each payment option has its own template. You can find and customize it under `Y ## Payment Step Submitting -* When customer chooses a new registration (fills in the payment form in the iframe) and clicks "Go To Summary" button, data inside the payment iframe will be serialised and sent as a POST request to Heidelpay payment system*. Heidelpay then processes the request and sends asynchronous POST request to the shop's `CONFIG_YVES_CHECKOUT_ASYNC_RESPONSE_URL` in Yves (`CreditCardController::registrationRequestAction`). This request will contain an anonymized customer credit card data and registration number (hash). This data will be persisted in Zed for future customer recognition and for the next step. In response, Heidelpay expects to get a plain URL where to redirect customer. In case of failure it is `HeidelpayController::paymentFailedAction()`, and in case of success - `CreditCardController::registrationSuccessAction()`. `RegistrationSuccessAction()` will find customer registration (through Zed) and set it to quote. Then customer is redirected to summary page. -* When customer chooses the existing registration, it is simply set to quote and customer goes to summary step as usual. +* When customer chooses a new registration (fills in the payment form in the iframe) and clicks "Go To Summary" button, data inside the payment iframe will be serialised and sent as a POST request to Heidelpay payment system*. Heidelpay then processes the request and sends asynchronous POST request to the shop's `CONFIG_YVES_CHECKOUT_ASYNC_RESPONSE_URL` in Yves (`CreditCardController::registrationRequestAction`). This request will contain an anonymized customer credit card data and registration number (hash). This data will be persisted in Zed for future customer recognition and for the next step. In response, Heidelpay expects to get a plain URL where to redirect customer. In case of failure it's `HeidelpayController::paymentFailedAction()`, and in case of success - `CreditCardController::registrationSuccessAction()`. `RegistrationSuccessAction()` will find customer registration (through Zed) and set it to quote. Then customer is redirected to summary page. +* When customer chooses the existing registration, it's simply set to quote and customer goes to summary step as usual. * This javascript behavior can be found and customized under `assets/Yves/js/modules/creditCardFrame.js` file.
** This overhead with payment->registrationRequest->registrationSuccess->summary is necessary, because `registrationRequest` is called asynchronously from the outside, where customer session is not available. Later on, `registrationSuccess` action is called already where customer session is available, so we can add registration to quote there. @@ -117,4 +117,4 @@ The most important data here - is the payment reference ID which can be used for In the response Heidelpay expects an URL string which defines where customer has to be redirected. In case if customer successfully confirmed payment, it should be a link to checkout order success step, in case of failure - checkout payment failed action with error code (See See `HeidelpayController::paymentFailedAction()` and [Heidelpay workflow for errors](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/heidelpay/heidelpay-workflow-for-errors.html) section). Heidelpay redirects customer to the given URL and payment process is finished.  -**Capture the money** - later on, when the item is shipped to the customer, it is time to call "capture" command of the state machine to capture money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order state machine for `CreditCardSecureAuthorize` method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". +**Capture the money** - later on, when the item is shipped to the customer, it's time to call "capture" command of the state machine to capture money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order state machine for `CreditCardSecureAuthorize` method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md index e76ad376b75..e05b16adc97 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md @@ -61,7 +61,7 @@ HeidelpayConfig::PAYMENT_METHOD_DIRECT_DEBIT => 'HeidelpayDirectDebit01', ``` ## The Process of a Direct Debit Account Registration -Payment flow with direct debit is divided into two workflows - based on the new "Registration," and without/with the existing "Registration." Existing "Registration" means that customer's bank account data (IBAN, Account Holder and so on) will be persisted in the database to use it again next time if customer uses the same shipping address. Otherwise, use the new "Registration" option. +Payment flow with direct debit's divided into two workflows - based on the new "Registration," and without/with the existing "Registration." Existing "Registration" means that customer's bank account data (IBAN, Account Holder and so on) will be persisted in the database to use it again next time if customer uses the same shipping address. Otherwise, use the new "Registration" option. When you go to the checkout payment page and choose the DirectDebit payment method, there are two payment options - to use the already existing registration (if available) or to create a new registration (always available) with the two fields IBAN and Account Holder. Existing registration is available only for registered customer after he placed an order with DirectDebit payment method, and he uses the same shipping address. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md index 1795dd1a8e4..8496d694a35 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md @@ -394,7 +394,7 @@ class CheckoutPageDependencyProvider extends SprykerShopCheckoutPageDependencyPr {% raw %}{{{% endraw %} 'checkout.step.summary.with_method' | trans {% raw %}}}{% endraw %} {% raw %}{{{% endraw %}data.paymentMethod{% raw %}}}{% endraw %}
{% raw %}{{{% endraw %} 'checkout.step.summary.payment' | trans {% raw %}}}{% endraw %}

- {% raw %}{%{% endraw %} if data.heidelpayEasyCredit is not null {% raw %}%}{% endraw %} + {% raw %}{%{% endraw %} if data.heidelpayEasyCredit's not null {% raw %}%}{% endraw %} {% raw %}{{{% endraw %} data.heidelpayEasyCredit.amortisationText {% raw %}}}{% endraw %}
@@ -541,7 +541,7 @@ No further actions are needed, the quote being filled with payment method select ## Summary Review and Order Submitting -Once the customer is redirected back to us, the response from Easy Credit is sent to the Heidelpay, and Heidelpay makes a synchronous POST request to the shop's `CONFIG_HEIDELPAY_PAYMENT_RESPONSE_URL URL` (Yves), with the result of payment (see `EasyCreditController::paymentAction()`). It is called "external response transaction," the result will be persisted in `spy_payment_heidelpay_transaction_log` as usual. The most important data here - is the payment reference ID which can be used for further transactions like `finalize/reserve/etc`. +Once the customer is redirected back to us, the response from Easy Credit's sent to the Heidelpay, and Heidelpay makes a synchronous POST request to the shop's `CONFIG_HEIDELPAY_PAYMENT_RESPONSE_URL URL` (Yves), with the result of payment (see `EasyCreditController::paymentAction()`). It is called "external response transaction," the result will be persisted in `spy_payment_heidelpay_transaction_log` as usual. The most important data here - is the payment reference ID which can be used for further transactions like `finalize/reserve/etc`. After that, the customer can see the order summary page, where they can review all related data. @@ -556,4 +556,4 @@ If the customer has not yet completed the HP.IN they must do that again. **When the state machine is initialized**, an event "send authorize on registration request" will trigger the authorize on registration request. In case of success, the state will be changed. -Finalize - later on, when the item is shipped to the customer, it is time to call "finalize" command of the state machine. This will send HP.FI request to the Payment API. This is done in FinalizePlugin of the OMS command. +Finalize - later on, when the item is shipped to the customer, it's time to call "finalize" command of the state machine. This will send HP.FI request to the Payment API. This is done in FinalizePlugin of the OMS command. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md index 9e58056c5ca..3983f6f3c1c 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md @@ -72,4 +72,4 @@ The most important data here - is the payment reference ID which can be used for In the response Heidelpay expects an URL string which defines where customer has to be redirected. In case if customer successfully confirmed payment, it should be a link to the checkout order success step, in case of the failure - checkout payment failed action with the error code (see `HeidelpayController::paymentFailedAction()` and [Heidelpay workflow for errors](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/heidelpay/heidelpay-workflow-for-errors.html) section). Heidelpay redirects customer to the given URL and the payment process is finished.  -**Capture the money** - later on, when the item is shipped to the customer, it is time to call "capture" command of the state machine to capture the money from the customer's account. This is done in CapturePlugin of the OMS command. In the provided basic order state machine for iDeal authorize method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". +**Capture the money** - later on, when the item is shipped to the customer, it's time to call "capture" command of the state machine to capture the money from the customer's account. This is done in CapturePlugin of the OMS command. In the provided basic order state machine for iDeal authorize method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md index 04cc222a7bc..2eaf783c4ba 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md @@ -60,7 +60,7 @@ $config[SalesConstants::PAYMENT_METHOD_STATEMACHINE_MAPPING] = [ ``` ## Notifications -Heidelpay InvoiceSecuredB2C payment method uses push notifications to inform the shop about the results of the transaction. An HTTP post request sends a push notification to a shop URL. The push notification contains the transaction response in XML format with all necessary data related to payment and transaction type. Headers of the HTTP request contain information about timestamp when the notification was sent and the number of retries. The body of the HTTP POST request includes the XML response of the reported transaction. There is no additional parameter encoding available; it is posted raw "text/xml". To confirm the notification, the shop server must reply with the HTTP status code "200". All other HTTP status codes are considered as an error, and a resend of the notification. Delivery is repeated up to 30 times if the merchant's server has not responded with HTTP status code "200“. The periods between the trials are increasing. +Heidelpay InvoiceSecuredB2C payment method uses push notifications to inform the shop about the results of the transaction. An HTTP post request sends a push notification to a shop URL. The push notification contains the transaction response in XML format with all necessary data related to payment and transaction type. Headers of the HTTP request contain information about timestamp when the notification was sent and the number of retries. The body of the HTTP POST request includes the XML response of the reported transaction. There is no additional parameter encoding available; it's posted raw "text/xml". To confirm the notification, the shop server must reply with the HTTP status code "200". All other HTTP status codes are considered as an error, and a resend of the notification. Delivery is repeated up to 30 times if the merchant's server has not responded with HTTP status code "200“. The periods between the trials are increasing. Notification URL for your website is `http://mysprykershop.com/heidelpay/notification`. It should be set up on Heidelpay's side with the help of Heidelpay support team. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md index 4af4e2ad446..5eb276aed00 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md @@ -91,4 +91,4 @@ The most important data here is the payment reference ID which can be used for f In the response Heidelpay expects an URL string which defines where customer has to be redirected. In case if customer successfully confirmed payment, it should be a link to checkout order success step, in case of failure - checkout payment failed action with error code (see `HeidelpayController::paymentFailedAction()` and [Heidelpay workflow for errors](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/heidelpay/heidelpay-workflow-for-errors.html) section). Heidelpay redirects customer to the given URL and the payment process is finished.  -**Capture the money** - later on, when the item is shipped to the customer, it is time to call "capture" command of the state machine to capture the money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order of state machine for Paypal authorize method, the command will be executed automatically, when order is manually moved into the "shipped" state. Now the order can be considered as "paid". +**Capture the money** - later on, when the item is shipped to the customer, it's time to call "capture" command of the state machine to capture the money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order of state machine for Paypal authorize method, the command will be executed automatically, when order is manually moved into the "shipped" state. Now the order can be considered as "paid". diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/klarna/klarna.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/klarna/klarna.md index e4a508e8a9f..d31968a3e8d 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/klarna/klarna.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/klarna/klarna.md @@ -53,7 +53,7 @@ To Integrate Klarna payments, create and configure a Klarna merchant account. We use state machines for handling and managing orders and payments. To integrate Klarna payments, a dedicated state machine should be created. -A basic and fully functional state machine is already available (KlarnaPayment01). You can use the same state machine or build a new one. In case a new state machine needs to be built, it is preferred to contact Klarna and confirm the new state machine design and functionality. +A basic and fully functional state machine is already available (KlarnaPayment01). You can use the same state machine or build a new one. In case a new state machine needs to be built, it's preferred to contact Klarna and confirm the new state machine design and functionality. The [Klarna State Machine Commands and Conditions](klarna-state-machine.htm) trigger the operations exposed by the KlarnaFacade in order to perform the needed requests to Klarna. --> diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md index 29699d9bced..b75ea8cf2ee 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md @@ -25,7 +25,7 @@ related: Both [invoice](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/payolution/integrate-the-invoice-payment-method-for-payolution.html) and [installment](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/payolution/integrate-the-installment-payment-method-for-payolution.html) payment methods utilize the same request flow. It basically consists of the following requests: * Calculation (for instalment only): to calculate the instalment amounts, dues, and durations. * Pre-check (optional): to check the user information in order to make sure that all the needed information is correct before doing the actual pre-authorization. -* Pre-authorize: to perform a payment risk check which is a mandatory step before every payment. The payment is basically considered accepted when it is authorized. +* Pre-authorize: to perform a payment risk check which is a mandatory step before every payment. The payment is basically considered accepted when it's authorized. * Re-authorize: to update an existing authorization if necessary. * Revert: to cancel the authorization step which basically cancels the payment before capturing. * Capture: to capture the payment and receive money from the buyer. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payolution/payolution.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payolution/payolution.md index f0e3f55e852..16029a409d5 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payolution/payolution.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payolution/payolution.md @@ -34,7 +34,7 @@ Payolution provides two methods of payment: In order to integrate Payolution payments, a Payolution merchant account should be created and configuration data then could be obtained from Payolution. There are two types of accounts for the integration: test and live. Both accounts share the same configuration with different values. Payolution uses the idea of having channels for handling different requests. Each channel is specified by a channel ID which will be given by Payolution. -We use state machines for handling and managing orders and payments. To integrate Payolution payments, a state machine for Payolution should be created. A basic and fully functional state machine is already built (`PayolutionPayment01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it is preferred to contact Payolution and confirm the new state machine design and functionality. +We use state machines for handling and managing orders and payments. To integrate Payolution payments, a state machine for Payolution should be created. A basic and fully functional state machine is already built (`PayolutionPayment01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it's preferred to contact Payolution and confirm the new state machine design and functionality. The state machine commands and conditions trigger Payolution facade calls in order to perform the needed requests to Payolution. For simplicity, the Payolution facade uses the same calls for both invoice and installment payments and distinguishes the payment method automatically from the payment entity. diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md index 4c387ba214d..443c956b95c 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md @@ -33,7 +33,7 @@ The Payone App supports the B2B and B2C business models and the following paymen For the *Payone Credit Card* payment method, the following modes are supported: -- *Preauthorization and Capture*: After a customer entered the credit card details during the checkout, the seller preauthorizes or reserves the payable amount on the customer’s credit card. As soon as the items have shipped, this amount is captured. Capture kicks off the process of moving money from the customer’s credit card to the seller’s account. The preauthorization and capture mode is the best choice for physical goods. It ensures that in case the ordered items are not available anymore or the customer cancels the order before it is shipped, the seller does not have to transfer the money back to the customer's account and thereby avoids a chargeback. +- *Preauthorization and Capture*: After a customer entered the credit card details during the checkout, the seller preauthorizes or reserves the payable amount on the customer’s credit card. As soon as the items have shipped, this amount is captured. Capture kicks off the process of moving money from the customer’s credit card to the seller’s account. The preauthorization and capture mode is the best choice for physical goods. It ensures that in case the ordered items are not available anymore or the customer cancels the order before it's shipped, the seller does not have to transfer the money back to the customer's account and thereby avoids a chargeback. - *3DS*: Messaging protocol that enables consumer authentication with their card issuer when making online purchases. - *PCI DSS Compliance via SAQ A*: A set of security standards designed to ensure that you accept, process, and transmit credit card information in a secure environment. @@ -57,7 +57,7 @@ When paying with a credit card, customers can do the following: - Repeat payments as often as they want if the payment (preauthorization) has failed, or cancel and close the payment page. - Cancel the entire order before shipment and receive the money back, that is, void the existing preauthorization without being charged a fee. -- Cancel the order after it is ready for shipment and receive the money back, that is, trigger a refund. +- Cancel the order after it's ready for shipment and receive the money back, that is, trigger a refund. - Return the order or its items after it has been successfully shipped and is refunded for the returned items or the entire order. When customers pay with a credit card, a shop owner can do the following: @@ -78,7 +78,7 @@ When customers pay with PayPal, the flow is as follows: When paying with PayPal, customers can: - Cancel the entire order before shipment and receive the money back, that is, void the existing preauthorization, without being charged a fee. -- Cancel the order after it is ready for shipment and receive the money back, that is, trigger a refund. +- Cancel the order after it's ready for shipment and receive the money back, that is, trigger a refund. - Return the order or its items after it has been successfully shipped and is refunded for the returned items or the entire order. When customers pay with PayPal, a shop owner can do the following: diff --git a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md index 89a3c26ae89..43af18ca266 100644 --- a/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md +++ b/docs/pbc/all/payment-service-provider/202404.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md @@ -19,7 +19,7 @@ related: [ABOUT RATENKAUF](https://www.easycredit-ratenkauf.de/) -Germany’s easiest installment purchase solution ratenkauf by easyCredit is the first payment option to offer a simple and standardized solution for e-commerce and for the point of sale. +Germany’s easiest installment purchase solution ratenkauf by easyCredit's the first payment option to offer a simple and standardized solution for e-commerce and for the point of sale. TeamBank, with its easyCredit product family, is the liquidity management specialist in the Volksbanken Raiffeisenbanken cooperative financial network. Its ‘ratenkauf by easyCredit’ product is the first installment purchase solution that combines a simple and uniformly designed installment purchase function both for e-commerce and for a physical point of sale. Customers can make their ratenkauf by easyCredit installment purchase in just three steps. No paperwork, immediate approval, and complete flexibility throughout. Simple. Fair. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md index b2012190f67..af96fd4f8ab 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md @@ -51,7 +51,7 @@ The overall interaction diagram between Glue API, the API Client, and the third First, implement a plugin that maps the checkout response and fills it with the necessary redirect URL and other attributes that are mapped. To do so, create a plugin file on the `Glue` layer: `src/Pyz/Glue/MyModule/Plugin/CheckoutRestApi/CheckoutResponseMapperPlugin.php`. -The plugin must implement `CheckoutResponseMapperPluginInterface`. Using the `mapRestCheckoutResponseTransferToRestCheckoutResponseAttributesTransfer` function of the interface, you can set the redirect URL and specify whether it is an internal or external redirect. +The plugin must implement `CheckoutResponseMapperPluginInterface`. Using the `mapRestCheckoutResponseTransferToRestCheckoutResponseAttributesTransfer` function of the interface, you can set the redirect URL and specify whether it's an internal or external redirect. **Sample implementation** @@ -99,7 +99,7 @@ The plugin must extend the `OrderPaymentUpdaterPluginInterface` and implement th * `isAppplicable`: This function determines whether a specific payment is processed by the plugin. The function returns true if the payment must be processed; otherwise, it returns false. * `updateOrderPayment`: This function updates the payment data in the database. -To help you understand which payments need to be processed, you can use the optional `paymentIdentifier` field in `POST` requests to the `/order-payments` endpoint. To make sure it is always present in a request, you may require the API client to set the field to a specific value to invoke your payment plugin. The value of the field can be retrieved using the `getPaymentIdentifier` helper function. +To help you understand which payments need to be processed, you can use the optional `paymentIdentifier` field in `POST` requests to the `/order-payments` endpoint. To make sure it's always present in a request, you may require the API client to set the field to a specific value to invoke your payment plugin. The value of the field can be retrieved using the `getPaymentIdentifier` helper function. {% info_block infoBox %} diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md index 19e0067c6f1..19c15952294 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md @@ -82,7 +82,7 @@ The table below describes all general configuration keys and their values. | `AdyenApiConstants::CAPTURE_ACTION_URL` | string | URL for the capture API call. | | `AdyenApiConstants::CANCEL_ACTION_URL` | string | URL for the cancel API call. | | `AdyenApiConstants::REFUND_ACTION_URL` | string | URL for the refund API call. | -| `AdyenApiConstants::CANCEL_OR_REFUND_ACTION_URL` | string | URL for the API call to cancel payment. When it's not possible to know if the payment is already captured, it is used for the refund API call. | +| `AdyenApiConstants::CANCEL_OR_REFUND_ACTION_URL` | string | URL for the API call to cancel payment. When it's not possible to know if the payment is already captured, it's used for the refund API call. | | `AdyenApiConstants::TECHNICAL_CANCEL_ACTION_URL` | string | URL for the technical cancellation API call. | | `AdyenApiConstants::ADJUST_AUTHORIZATION_ACTION_URL` | string | URL for the API call to adjust the authorized amount. | diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md index 68c32f6d810..ac9bf2be884 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md @@ -86,7 +86,7 @@ Next step is rendering Pay with Amazon button. Just insert this line in a proper {% raw %}{{{% endraw %} render(path('amazonpay_paybutton')) {% raw %}}}{% endraw %} ``` -Make sure that the button is rendered and works properly. In the sandbox mode it is necessary to have Amazon Pay test account. Once buyer is signed in with his credentials, he must be redirected to the checkout page and Amazon Order Reference Id has to be passed. On the checkout page two widgets must be displayed as well as button for confirming purchase. Delivery method selection has to be build on merchant side and Amazon provides nothing for it. Nevertheless, it always depends on the country and therefore it has to be refreshed after the delivery address is selected from the widget. For this Amazon provides JavaScript callback `onAddressSelect`. In the bundle it triggers internal controller `getShipmentMethodsAction()` which triggers Facade's method `addSelectedAddressToQuote()`. This method retrieves selected location via Handling orders with Amazon Pay API and writes it to Quote. After that, it is possible to retrieve available shipment methods. +Make sure that the button is rendered and works properly. In the sandbox mode it's necessary to have Amazon Pay test account. Once buyer is signed in with his credentials, he must be redirected to the checkout page and Amazon Order Reference Id has to be passed. On the checkout page two widgets must be displayed as well as button for confirming purchase. Delivery method selection has to be build on merchant side and Amazon provides nothing for it. Nevertheless, it always depends on the country and therefore it has to be refreshed after the delivery address is selected from the widget. For this Amazon provides JavaScript callback `onAddressSelect`. In the bundle it triggers internal controller `getShipmentMethodsAction()` which triggers Facade's method `addSelectedAddressToQuote()`. This method retrieves selected location via Handling orders with Amazon Pay API and writes it to Quote. After that, it's possible to retrieve available shipment methods. For that purpose Spryker provides Shipment Bundle and its client with method `getAvailableMethods()`. @@ -110,4 +110,4 @@ The rest of integration includes State machine which is different for synchronou It receives HTTP header and body as array and string respectively and passes it to the Facade method `convertAmazonpayIpnRequest()` which returns transfer object. Exact type of it depends on the type of IPN request and may be one of those: -`AmazonpayIpnPaymentAuthorizeRequest`, `AmazonpayIpnPaymentCaptureRequest`, `AmazonpayIpnPaymentRefundRequest`, `AmazonpayIpnOrderReferenceNotification`. Another Facade's method called `handleAmazonpayIpnRequest` is responsible for handling all these messages. Normally it changes the status of a payment in the database and triggers some State Machine event. Then state machine command and conditions take action. In case of any problems with receiving IPN messages it is possible to do the same manually using state machine buttons in Zed. +`AmazonpayIpnPaymentAuthorizeRequest`, `AmazonpayIpnPaymentCaptureRequest`, `AmazonpayIpnPaymentRefundRequest`, `AmazonpayIpnOrderReferenceNotification`. Another Facade's method called `handleAmazonpayIpnRequest` is responsible for handling all these messages. Normally it changes the status of a payment in the database and triggers some State Machine event. Then state machine command and conditions take action. In case of any problems with receiving IPN messages it's possible to do the same manually using state machine buttons in Zed. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md index 83bbe754670..ad01538617a 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md @@ -20,7 +20,7 @@ related: link: docs/pbc/all/payment-service-provider/page.version/base-shop/third-party-integrations/amazon-pay/obtain-an-amazon-order-reference-and-information-about-shipping-addresses.html --- -The state machine is different for synchronous and asynchronous flow. Although from status "capture completed" it is the same and in the state machine, it's presented as a sub-process. +The state machine is different for synchronous and asynchronous flow. Although from status "capture completed" it's the same and in the state machine, it's presented as a sub-process. The state machine for the synchronous flow: diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md index c2d9e3bca69..cb4cd6b44ac 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md @@ -91,7 +91,7 @@ $config[AmazonPayConstants::WIDGET_BUTTON_SIZE] = AmazonPayConfig::WIDGET_BUTTON $config[AmazonPayConstants::WIDGET_BUTTON_COLOR] = AmazonPayConfig::WIDGET_BUTTON_COLOR_DARK_GRAY; ``` -According to Amazon Pay restrictions, a module can run either on a `localhost` domain or via HTTPS. If it is not possible to use `localhost`, HTTPS connection should be configured. For testing purposes, register a test account in the [Amazon Pay dashboard](https://pay.amazon.com/us). +According to Amazon Pay restrictions, a module can run either on a `localhost` domain or via HTTPS. If it's not possible to use `localhost`, HTTPS connection should be configured. For testing purposes, register a test account in the [Amazon Pay dashboard](https://pay.amazon.com/us). {% info_block warningBox "Important" %} diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md index 6feefdb33e0..215d601206e 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md @@ -36,7 +36,7 @@ Each API call involves similar classes from the module: * A logger for logging information about API calls. * A transaction for updating transfer objects. -Since it is a standard Spryker OS practice, an entry point is a public method of the Facade, so, the flow for a typical transaction includes the following steps: +Since it's a standard Spryker OS practice, an entry point is a public method of the Facade, so, the flow for a typical transaction includes the following steps: 1. Logically grouping the affected order items, based on the transaction type: * for authorize & capture - by `AuthorizationReferenceId`. * for refund & capture status update - by `AmazonCaptureId`. @@ -113,7 +113,7 @@ The next step is to authorize the order. It's a separate operation because in te ## Authorization in Asynchronous and Synchronous Modes. CaptureNow Setting -The authorization API call is configurable and it reflects the whole payment process. First, an important setting is transaction_timeout which defines the maximum number of minutes allocated for the Authorise operation call to be processed, after which the authorization is automatically declined and you cannot capture funds against the authorization. The value zero means that the authorization result has to be returned immediately and it is asynchronous authorization. For the synchronous authorization, the value must be above zero but less than maximal possible 1440. Another important setting is CaptureNow. It can only be true or false and if set to true then both requests - Authorisation and Capture will be done in one step, within Authorise API call. Both setting are independent and may have all possible values. The whole order process and related State Machine depend on these settings and can be very different. +The authorization API call is configurable and it reflects the whole payment process. First, an important setting is transaction_timeout which defines the maximum number of minutes allocated for the Authorise operation call to be processed, after which the authorization is automatically declined and you cannot capture funds against the authorization. The value zero means that the authorization result has to be returned immediately and it's asynchronous authorization. For the synchronous authorization, the value must be above zero but less than maximal possible 1440. Another important setting is CaptureNow. It can only be true or false and if set to true then both requests - Authorisation and Capture will be done in one step, within Authorise API call. Both setting are independent and may have all possible values. The whole order process and related State Machine depend on these settings and can be very different. ## Handling Declined Payments. Synchronous Workflow @@ -127,7 +127,7 @@ When all previous steps return a positive response and authorization is accepted If the reason is different, we can check the state of an order using `GetOrderReferenceDetailsTransaction`. -If it is open then the order must be canceled with a `CancelOrderTransaction` call. +If it's open then the order must be canceled with a `CancelOrderTransaction` call. The rest of the decline flow includes logic determining where to redirect a buyer. In sandbox mode, for each test account, Amazon provides fake payment methods for emulating error API responses. @@ -141,18 +141,18 @@ There is one special constraint related to the selected payment method `PaymentM ## Handling Declined Payments. Asynchronous Workflow -Unlike the synchronous authorisation, it is impossible to get the result of the authorization in the response. Authorization object stays in Pending state until authorized. Capture and Refund requests can also be processed in the same way and Amazon provides Internet Payment Notification (IPN) in order to notify the shop about the new status of any asynchronous request. IPN message is an HTTP request with some special Amazon-related headers and the body which is XML string containing all data. The merchant has to specify URL for receiving and processing IPN messages. The Bundle provides two Facade's methods. +Unlike the synchronous authorisation, it's impossible to get the result of the authorization in the response. Authorization object stays in Pending state until authorized. Capture and Refund requests can also be processed in the same way and Amazon provides Internet Payment Notification (IPN) in order to notify the shop about the new status of any asynchronous request. IPN message is an HTTP request with some special Amazon-related headers and the body which is XML string containing all data. The merchant has to specify URL for receiving and processing IPN messages. The Bundle provides two Facade's methods. -`convertAmazonpayIpnRequest`(array `$headers`, `$body`) for converting Amazon request (which is HTTP headers and body) to the transfer object. For each type of IPN request Spryker provides related transfer object and method `convertAmazonpayIpnRequest()` returns one of them. For the processing of these transfer objects the Facade's method `handleAmazonpayIpnRequest` (`AbstractTransfer``$ipnRequestTransfer`) should be called. It `AbstractTransfer` type for its argument and it works with all types of IPN related transfer objects. A typical flow of a successful flow usually involves pending statuses of authorization and capture requests. Therefor related IPN messages have to be received and processed correctly. For retrieving same information Amazon provides also `GetAuthorizationDetails` and `GetCaptureDetails` functions and in Spryker, it is possible to update the pending statuses with State machine buttons. Once the button is clicked, the shop makes a related API call, receives a response and if the state is not pending then it updates order status according to the response message. The final status of a success flow is "capture completed". After that only Refund is available and refund workflow is asynchronous only and works in a similar way as asynchronous authorization. +`convertAmazonpayIpnRequest`(array `$headers`, `$body`) for converting Amazon request (which is HTTP headers and body) to the transfer object. For each type of IPN request Spryker provides related transfer object and method `convertAmazonpayIpnRequest()` returns one of them. For the processing of these transfer objects the Facade's method `handleAmazonpayIpnRequest` (`AbstractTransfer``$ipnRequestTransfer`) should be called. It `AbstractTransfer` type for its argument and it works with all types of IPN related transfer objects. A typical flow of a successful flow usually involves pending statuses of authorization and capture requests. Therefor related IPN messages have to be received and processed correctly. For retrieving same information Amazon provides also `GetAuthorizationDetails` and `GetCaptureDetails` functions and in Spryker, it's possible to update the pending statuses with State machine buttons. Once the button is clicked, the shop makes a related API call, receives a response and if the state is not pending then it updates order status according to the response message. The final status of a success flow is "capture completed". After that only Refund is available and refund workflow is asynchronous only and works in a similar way as asynchronous authorization. The more tricky case is authorization declined workflow. It is similar to synchronous decline which was described above but everything goes asynchronously and involves additional IPN messages. First of all, Authorisation IPN comes with "Declined" state of authorization status. Another important information here is ReasonCode and it affects all further steps of the process. For the reason codes, `TransactionTimedOut` and `AmazonRejected` the order simply goes to "authorization declined" state but for the -`InvalidPaymentMethod` the customer has to change the payment method to the correct one. In this case, order receives "authorization suspended" status and Amazon sends two additional IPN messages: `OrderNotification` with the state "Open" comes in after payment method is changed by buyer and Authorisation notification as a result of authorization of a new payment method. If the new payment method passes authorization successfully then the order goes to the "auth open" state and it is possible to request a capture. In both decline cases, it is important to notify the buyer about it by email since it's the only way for him to know that payment is not possible. The text of the email letter has to be different for `InvalidPaymentMethod` case. +`InvalidPaymentMethod` the customer has to change the payment method to the correct one. In this case, order receives "authorization suspended" status and Amazon sends two additional IPN messages: `OrderNotification` with the state "Open" comes in after payment method is changed by buyer and Authorisation notification as a result of authorization of a new payment method. If the new payment method passes authorization successfully then the order goes to the "auth open" state and it's possible to request a capture. In both decline cases, it's important to notify the buyer about it by email since it's the only way for him to know that payment is not possible. The text of the email letter has to be different for `InvalidPaymentMethod` case. Another tricky moment about asynchronous flow is "Authorisation expired" situation. Each time the shop requests capture in the asynchronous mode it should check the current status of authorisation. Capture is only possible where the status of authorisation is "Open". If authorisation has status "Closed" and `ReasonCode` is either `ExpiredUnused` or `SellerClosed` then an order should be reauthorized with `CaptureNow` setting enabled. ## Refund -After successful authorization and capture processes order receives the status "capture completed". From this state only one operation is possible and it is Refund. A refund can be partial if more than one item set to refund or full. +After successful authorization and capture processes order receives the status "capture completed". From this state only one operation is possible and it's Refund. A refund can be partial if more than one item set to refund or full. Amazon only requires the amount of money which has to be refunded and the calculation has to be implemented on the shop's side. Spryker provides a bundle for calculating the amount to refund. Regardless the chosen setting Refund is always asynchronous. Once requested, an order goes to "refund pending" status and then IPN notification will notify the shop if a refund was accepted or declined. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/billie.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/billie.md index 7a61ddf07e5..af750037316 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/billie.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/billie.md @@ -20,7 +20,7 @@ redirect_from: B2B-PayAfterDelivery for the 21st century -Billie is Germany’s innovative online-only provider of flexible working capital solutions. Whether it is our award-wining, 100% digital factoring platform or our B2B-PayAfterDelivery solution for online stores: +Billie is Germany’s innovative online-only provider of flexible working capital solutions. Whether it's our award-wining, 100% digital factoring platform or our B2B-PayAfterDelivery solution for online stores: Aspiring start-ups, established SMEs and world-leading hidden champions all trust in Billie when it comes to fast, reliable and simple liquidity provision. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/billpay/integrate-billpay.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/billpay/integrate-billpay.md index 1f39a28d4ba..b2a88881da8 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/billpay/integrate-billpay.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/billpay/integrate-billpay.md @@ -36,7 +36,7 @@ See [Configuration Management](/docs/dg/dev/backend-development/data-manipulatio | `BILLPAY_PUBLIC_API_KEY` | Public API Key; generated and delivered by BillPay for your portal. | | `BILLPAY_MAX_DELAY_IN_DAYS` | Amount of days that will be added to the payment due date (e.g. in case of delayed shipping) | | `USE_MD5_HASH` | If your security key is not md5 hash encrypted, you can do that by setting this config to 1 | -| `USE_PRESCORE` | In if it is necessary to show all Billpay payment methods despite of Billpay prescore response, you can set this option to 0. It should be set to 1 by default. | +| `USE_PRESCORE` | In if it's necessary to show all Billpay payment methods despite of Billpay prescore response, you can set this option to 0. It should be set to 1 by default. | When you add options above to your project configuration, it should look somewhat like this: diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md index a3f71a38abe..02c1837b09c 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md @@ -22,7 +22,7 @@ related: Both credit card and PayPal utilize the same request flow in: * **Pre-check**: to check the user information to make sure that all the needed information is correct before doing the actual pre-authorization. -* **Authorize**: to perform a payment risk check which is a mandatory step before every payment. The payment is considered accepted when it is authorized. +* **Authorize**: to perform a payment risk check which is a mandatory step before every payment. The payment is considered accepted when it's authorized. * **Revert**: to cancel the authorization step which cancels the payment before capturing. * **Capture**: to capture the payment and receive money from the buyer. * **Refund**: to refund the buyer when returning products. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/braintree/braintree.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/braintree/braintree.md index f40b6ec4805..7b8db70089b 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/braintree/braintree.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/braintree/braintree.md @@ -39,7 +39,7 @@ Both accounts share the same configuration with different values. Braintree uses We use state machines for handling and managing orders and payments. To integrate Braintree payments, a state machine for Braintree should be created. -A basic and fully functional state machine is already built (`BraintreePayPal01` and `BraintreeCreditCard01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it is preferred to contact Braintree and confirm the new state machine design and functionality. +A basic and fully functional state machine is already built (`BraintreePayPal01` and `BraintreeCreditCard01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it's preferred to contact Braintree and confirm the new state machine design and functionality. The state machine commands and conditions trigger Braintree facade calls in order to perform the needed requests to Braintree. For simplicity, the Braintree facade uses the same calls for both credit card and PayPal payments and automatically distinguishes between the payment methods from the payment entity. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/computop/computop-api-calls.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/computop/computop-api-calls.md index 9fe31ab7348..65cc663797d 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/computop/computop-api-calls.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/computop/computop-api-calls.md @@ -39,7 +39,7 @@ related: ## Inquire Call: -Status inquiries within Paygate give detailed information about the amounts that are actually authorized, captured or credited. Especially before executing reversals via the interface reverse.aspx it is recommended to check the transaction status with inquire.aspx because Reverse.aspx re-verses not only authorizations but ALWAYS THE LAST TRANSACTION STEP. +Status inquiries within Paygate give detailed information about the amounts that are actually authorized, captured or credited. Especially before executing reversals via the interface reverse.aspx it's recommended to check the transaction status with inquire.aspx because Reverse.aspx re-verses not only authorizations but ALWAYS THE LAST TRANSACTION STEP. ## Reverse Call: diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md index 5c196497a8c..3c13505da1f 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md @@ -78,7 +78,7 @@ $config[OmsConstants::ACTIVE_PROCESSES] = [ For partial capturing: -1. Case: Merchant uses neither ETM nor PCN (`PseudoCardNumber`). After authorization has been done, you are able to do one capture. This can be a partial or a complete capture of the authorized amount. After the capture is performed you cannot do another capture. If it is a partial capture, the rest of the initial authorized amount is released. +1. Case: Merchant uses neither ETM nor PCN (`PseudoCardNumber`). After authorization has been done, you are able to do one capture. This can be a partial or a complete capture of the authorized amount. After the capture is performed you cannot do another capture. If it's a partial capture, the rest of the initial authorized amount is released. 2. Case: Merchant uses ETM (Extended Transactions Management). You can do partial captures as long as the as the initial amount of the authorization has not been reached or you send `FinishAuth=Y` with the last capture you like to do. (see page 83 of Computop documentation) 3. Case: Merchant uses PCN. With the authorization request you get back the PCN and other credit card parameter (Expiry Date, Brand). PCN and the other parameters can be stored. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md index 43d9a143ff5..1c0e9591b70 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md @@ -59,7 +59,7 @@ You can find the state machine example in `vendor/spryker-eco/crefo-pay/config/Z ## Direct Debit -Direct Debit is processed by the bank system once it is transferred to the bank gateway. This can take several days. While being processed, the order has PayPending status. +Direct Debit's processed by the bank system once it's transferred to the bank gateway. This can take several days. While being processed, the order has PayPending status. As a result of the reconciliation process, the bank system provides feedback which is evaluated automatically within CrefoPay system: diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md index 93aa79beb1f..139505c2f0a 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md @@ -75,8 +75,8 @@ Each payment option has its own template. You can find and customize it under `Y ## Payment Step Submitting -* When customer chooses a new registration (fills in the payment form in the iframe) and clicks "Go To Summary" button, data inside the payment iframe will be serialised and sent as a POST request to Heidelpay payment system*. Heidelpay then processes the request and sends asynchronous POST request to the shop's `CONFIG_YVES_CHECKOUT_ASYNC_RESPONSE_URL` in Yves (`CreditCardController::registrationRequestAction`). This request will contain an anonymized customer credit card data and registration number (hash). This data will be persisted in Zed for future customer recognition and for the next step. In response, Heidelpay expects to get a plain URL where to redirect customer. In case of failure it is `HeidelpayController::paymentFailedAction()`, and in case of success - `CreditCardController::registrationSuccessAction()`. `RegistrationSuccessAction()` will find customer registration (through Zed) and set it to quote. Then customer is redirected to summary page. -* When customer chooses the existing registration, it is simply set to quote and customer goes to summary step as usual. +* When customer chooses a new registration (fills in the payment form in the iframe) and clicks "Go To Summary" button, data inside the payment iframe will be serialised and sent as a POST request to Heidelpay payment system*. Heidelpay then processes the request and sends asynchronous POST request to the shop's `CONFIG_YVES_CHECKOUT_ASYNC_RESPONSE_URL` in Yves (`CreditCardController::registrationRequestAction`). This request will contain an anonymized customer credit card data and registration number (hash). This data will be persisted in Zed for future customer recognition and for the next step. In response, Heidelpay expects to get a plain URL where to redirect customer. In case of failure it's `HeidelpayController::paymentFailedAction()`, and in case of success - `CreditCardController::registrationSuccessAction()`. `RegistrationSuccessAction()` will find customer registration (through Zed) and set it to quote. Then customer is redirected to summary page. +* When customer chooses the existing registration, it's simply set to quote and customer goes to summary step as usual. * This javascript behavior can be found and customized under `assets/Yves/js/modules/creditCardFrame.js` file.
** This overhead with payment->registrationRequest->registrationSuccess->summary is necessary, because `registrationRequest` is called asynchronously from the outside, where customer session is not available. Later on, `registrationSuccess` action is called already where customer session is available, so we can add registration to quote there. @@ -117,4 +117,4 @@ The most important data here - is the payment reference ID which can be used for In the response Heidelpay expects an URL string which defines where customer has to be redirected. In case if customer successfully confirmed payment, it should be a link to checkout order success step, in case of failure - checkout payment failed action with error code (See See `HeidelpayController::paymentFailedAction()` and [Heidelpay workflow for errors](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/heidelpay/heidelpay-workflow-for-errors.html) section). Heidelpay redirects customer to the given URL and payment process is finished.  -**Capture the money** - later on, when the item is shipped to the customer, it is time to call "capture" command of the state machine to capture money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order state machine for `CreditCardSecureAuthorize` method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". +**Capture the money** - later on, when the item is shipped to the customer, it's time to call "capture" command of the state machine to capture money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order state machine for `CreditCardSecureAuthorize` method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md index e76ad376b75..e05b16adc97 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md @@ -61,7 +61,7 @@ HeidelpayConfig::PAYMENT_METHOD_DIRECT_DEBIT => 'HeidelpayDirectDebit01', ``` ## The Process of a Direct Debit Account Registration -Payment flow with direct debit is divided into two workflows - based on the new "Registration," and without/with the existing "Registration." Existing "Registration" means that customer's bank account data (IBAN, Account Holder and so on) will be persisted in the database to use it again next time if customer uses the same shipping address. Otherwise, use the new "Registration" option. +Payment flow with direct debit's divided into two workflows - based on the new "Registration," and without/with the existing "Registration." Existing "Registration" means that customer's bank account data (IBAN, Account Holder and so on) will be persisted in the database to use it again next time if customer uses the same shipping address. Otherwise, use the new "Registration" option. When you go to the checkout payment page and choose the DirectDebit payment method, there are two payment options - to use the already existing registration (if available) or to create a new registration (always available) with the two fields IBAN and Account Holder. Existing registration is available only for registered customer after he placed an order with DirectDebit payment method, and he uses the same shipping address. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md index 1795dd1a8e4..8496d694a35 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md @@ -394,7 +394,7 @@ class CheckoutPageDependencyProvider extends SprykerShopCheckoutPageDependencyPr {% raw %}{{{% endraw %} 'checkout.step.summary.with_method' | trans {% raw %}}}{% endraw %} {% raw %}{{{% endraw %}data.paymentMethod{% raw %}}}{% endraw %}
{% raw %}{{{% endraw %} 'checkout.step.summary.payment' | trans {% raw %}}}{% endraw %}

- {% raw %}{%{% endraw %} if data.heidelpayEasyCredit is not null {% raw %}%}{% endraw %} + {% raw %}{%{% endraw %} if data.heidelpayEasyCredit's not null {% raw %}%}{% endraw %} {% raw %}{{{% endraw %} data.heidelpayEasyCredit.amortisationText {% raw %}}}{% endraw %}
@@ -541,7 +541,7 @@ No further actions are needed, the quote being filled with payment method select ## Summary Review and Order Submitting -Once the customer is redirected back to us, the response from Easy Credit is sent to the Heidelpay, and Heidelpay makes a synchronous POST request to the shop's `CONFIG_HEIDELPAY_PAYMENT_RESPONSE_URL URL` (Yves), with the result of payment (see `EasyCreditController::paymentAction()`). It is called "external response transaction," the result will be persisted in `spy_payment_heidelpay_transaction_log` as usual. The most important data here - is the payment reference ID which can be used for further transactions like `finalize/reserve/etc`. +Once the customer is redirected back to us, the response from Easy Credit's sent to the Heidelpay, and Heidelpay makes a synchronous POST request to the shop's `CONFIG_HEIDELPAY_PAYMENT_RESPONSE_URL URL` (Yves), with the result of payment (see `EasyCreditController::paymentAction()`). It is called "external response transaction," the result will be persisted in `spy_payment_heidelpay_transaction_log` as usual. The most important data here - is the payment reference ID which can be used for further transactions like `finalize/reserve/etc`. After that, the customer can see the order summary page, where they can review all related data. @@ -556,4 +556,4 @@ If the customer has not yet completed the HP.IN they must do that again. **When the state machine is initialized**, an event "send authorize on registration request" will trigger the authorize on registration request. In case of success, the state will be changed. -Finalize - later on, when the item is shipped to the customer, it is time to call "finalize" command of the state machine. This will send HP.FI request to the Payment API. This is done in FinalizePlugin of the OMS command. +Finalize - later on, when the item is shipped to the customer, it's time to call "finalize" command of the state machine. This will send HP.FI request to the Payment API. This is done in FinalizePlugin of the OMS command. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md index d8f7181554b..f59415c1ddf 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-ideal-payment-method-for-heidelpay.md @@ -72,4 +72,4 @@ The most important data here - is the payment reference ID which can be used for In the response Heidelpay expects an URL string which defines where customer has to be redirected. In case if customer successfully confirmed payment, it should be a link to the checkout order success step, in case of the failure - checkout payment failed action with the error code (see `HeidelpayController::paymentFailedAction()` and [Heidelpay workflow for errors](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/heidelpay/heidelpay-workflow-for-errors.html) section). Heidelpay redirects customer to the given URL and the payment process is finished.  -**Capture the money** - later on, when the item is shipped to the customer, it is time to call "capture" command of the state machine to capture the money from the customer's account. This is done in CapturePlugin of the OMS command. In the provided basic order state machine for iDeal authorize method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". +**Capture the money** - later on, when the item is shipped to the customer, it's time to call "capture" command of the state machine to capture the money from the customer's account. This is done in CapturePlugin of the OMS command. In the provided basic order state machine for iDeal authorize method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid". diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md index 04cc222a7bc..2eaf783c4ba 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-invoice-secured-b2c-payment-method-for-heidelpay.md @@ -60,7 +60,7 @@ $config[SalesConstants::PAYMENT_METHOD_STATEMACHINE_MAPPING] = [ ``` ## Notifications -Heidelpay InvoiceSecuredB2C payment method uses push notifications to inform the shop about the results of the transaction. An HTTP post request sends a push notification to a shop URL. The push notification contains the transaction response in XML format with all necessary data related to payment and transaction type. Headers of the HTTP request contain information about timestamp when the notification was sent and the number of retries. The body of the HTTP POST request includes the XML response of the reported transaction. There is no additional parameter encoding available; it is posted raw "text/xml". To confirm the notification, the shop server must reply with the HTTP status code "200". All other HTTP status codes are considered as an error, and a resend of the notification. Delivery is repeated up to 30 times if the merchant's server has not responded with HTTP status code "200“. The periods between the trials are increasing. +Heidelpay InvoiceSecuredB2C payment method uses push notifications to inform the shop about the results of the transaction. An HTTP post request sends a push notification to a shop URL. The push notification contains the transaction response in XML format with all necessary data related to payment and transaction type. Headers of the HTTP request contain information about timestamp when the notification was sent and the number of retries. The body of the HTTP POST request includes the XML response of the reported transaction. There is no additional parameter encoding available; it's posted raw "text/xml". To confirm the notification, the shop server must reply with the HTTP status code "200". All other HTTP status codes are considered as an error, and a resend of the notification. Delivery is repeated up to 30 times if the merchant's server has not responded with HTTP status code "200“. The periods between the trials are increasing. Notification URL for your website is `http://mysprykershop.com/heidelpay/notification`. It should be set up on Heidelpay's side with the help of Heidelpay support team. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md index 4af4e2ad446..5eb276aed00 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-paypal-authorize-payment-method-for-heidelpay.md @@ -91,4 +91,4 @@ The most important data here is the payment reference ID which can be used for f In the response Heidelpay expects an URL string which defines where customer has to be redirected. In case if customer successfully confirmed payment, it should be a link to checkout order success step, in case of failure - checkout payment failed action with error code (see `HeidelpayController::paymentFailedAction()` and [Heidelpay workflow for errors](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/heidelpay/heidelpay-workflow-for-errors.html) section). Heidelpay redirects customer to the given URL and the payment process is finished.  -**Capture the money** - later on, when the item is shipped to the customer, it is time to call "capture" command of the state machine to capture the money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order of state machine for Paypal authorize method, the command will be executed automatically, when order is manually moved into the "shipped" state. Now the order can be considered as "paid". +**Capture the money** - later on, when the item is shipped to the customer, it's time to call "capture" command of the state machine to capture the money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order of state machine for Paypal authorize method, the command will be executed automatically, when order is manually moved into the "shipped" state. Now the order can be considered as "paid". diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/klarna/klarna.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/klarna/klarna.md index e4a508e8a9f..d31968a3e8d 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/klarna/klarna.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/klarna/klarna.md @@ -53,7 +53,7 @@ To Integrate Klarna payments, create and configure a Klarna merchant account. We use state machines for handling and managing orders and payments. To integrate Klarna payments, a dedicated state machine should be created. -A basic and fully functional state machine is already available (KlarnaPayment01). You can use the same state machine or build a new one. In case a new state machine needs to be built, it is preferred to contact Klarna and confirm the new state machine design and functionality. +A basic and fully functional state machine is already available (KlarnaPayment01). You can use the same state machine or build a new one. In case a new state machine needs to be built, it's preferred to contact Klarna and confirm the new state machine design and functionality. The [Klarna State Machine Commands and Conditions](klarna-state-machine.htm) trigger the operations exposed by the KlarnaFacade in order to perform the needed requests to Klarna. --> diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md index 610bf6beb23..63e9e6ae9b0 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payolution/payolution-request-flow.md @@ -25,7 +25,7 @@ related: Both [invoice](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/payolution/integrate-the-invoice-payment-method-for-payolution.html) and [installment](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/payolution/integrate-the-installment-payment-method-for-payolution.html) payment methods utilize the same request flow. It basically consists of the following requests: * Calculation (for instalment only): to calculate the instalment amounts, dues, and durations. * Pre-check (optional): to check the user information in order to make sure that all the needed information is correct before doing the actual pre-authorization. -* Pre-authorize: to perform a payment risk check which is a mandatory step before every payment. The payment is basically considered accepted when it is authorized. +* Pre-authorize: to perform a payment risk check which is a mandatory step before every payment. The payment is basically considered accepted when it's authorized. * Re-authorize: to update an existing authorization if necessary. * Revert: to cancel the authorization step which basically cancels the payment before capturing. * Capture: to capture the payment and receive money from the buyer. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payolution/payolution.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payolution/payolution.md index f0e3f55e852..16029a409d5 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payolution/payolution.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payolution/payolution.md @@ -34,7 +34,7 @@ Payolution provides two methods of payment: In order to integrate Payolution payments, a Payolution merchant account should be created and configuration data then could be obtained from Payolution. There are two types of accounts for the integration: test and live. Both accounts share the same configuration with different values. Payolution uses the idea of having channels for handling different requests. Each channel is specified by a channel ID which will be given by Payolution. -We use state machines for handling and managing orders and payments. To integrate Payolution payments, a state machine for Payolution should be created. A basic and fully functional state machine is already built (`PayolutionPayment01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it is preferred to contact Payolution and confirm the new state machine design and functionality. +We use state machines for handling and managing orders and payments. To integrate Payolution payments, a state machine for Payolution should be created. A basic and fully functional state machine is already built (`PayolutionPayment01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it's preferred to contact Payolution and confirm the new state machine design and functionality. The state machine commands and conditions trigger Payolution facade calls in order to perform the needed requests to Payolution. For simplicity, the Payolution facade uses the same calls for both invoice and installment payments and distinguishes the payment method automatically from the payment entity. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md index 8fbe80d2a83..120f96bcb70 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/payone/app-composition-platform-integration/payone-acp-app.md @@ -34,7 +34,7 @@ The Payone App supports the B2B and B2C business models and the following paymen For the *Payone Credit Card* payment method, the following modes are supported: -- *Preauthorization and Capture*: After a customer entered the credit card details during the checkout, the seller preauthorizes or reserves the payable amount on the customer’s credit card. As soon as the items have shipped, this amount is captured. Capture kicks off the process of moving money from the customer’s credit card to the seller’s account. The preauthorization and capture mode is the best choice for physical goods. It ensures that in case the ordered items are not available anymore or the customer cancels the order before it is shipped, the seller does not have to transfer the money back to the customer's account and thereby avoids a chargeback. +- *Preauthorization and Capture*: After a customer entered the credit card details during the checkout, the seller preauthorizes or reserves the payable amount on the customer’s credit card. As soon as the items have shipped, this amount is captured. Capture kicks off the process of moving money from the customer’s credit card to the seller’s account. The preauthorization and capture mode is the best choice for physical goods. It ensures that in case the ordered items are not available anymore or the customer cancels the order before it's shipped, the seller does not have to transfer the money back to the customer's account and thereby avoids a chargeback. - *3DS*: Messaging protocol that enables consumer authentication with their card issuer when making online purchases. - *PCI DSS Compliance via SAQ A*: A set of security standards designed to ensure that you accept, process, and transmit credit card information in a secure environment. diff --git a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md index 89a3c26ae89..43af18ca266 100644 --- a/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md +++ b/docs/pbc/all/payment-service-provider/202410.0/base-shop/third-party-integrations/ratenkauf-by-easycredit/ratenkauf-by-easycredit.md @@ -19,7 +19,7 @@ related: [ABOUT RATENKAUF](https://www.easycredit-ratenkauf.de/) -Germany’s easiest installment purchase solution ratenkauf by easyCredit is the first payment option to offer a simple and standardized solution for e-commerce and for the point of sale. +Germany’s easiest installment purchase solution ratenkauf by easyCredit's the first payment option to offer a simple and standardized solution for e-commerce and for the point of sale. TeamBank, with its easyCredit product family, is the liquidity management specialist in the Volksbanken Raiffeisenbanken cooperative financial network. Its ‘ratenkauf by easyCredit’ product is the first installment purchase solution that combines a simple and uniformly designed installment purchase function both for e-commerce and for a physical point of sale. Customers can make their ratenkauf by easyCredit installment purchase in just three steps. No paperwork, immediate approval, and complete flexibility throughout. Simple. Fair. diff --git a/docs/pbc/all/price-management/202311.0/base-shop/extend-and-customize/money-module-reference-information.md b/docs/pbc/all/price-management/202311.0/base-shop/extend-and-customize/money-module-reference-information.md index 0fb60c77b68..6f532b4b2ff 100644 --- a/docs/pbc/all/price-management/202311.0/base-shop/extend-and-customize/money-module-reference-information.md +++ b/docs/pbc/all/price-management/202311.0/base-shop/extend-and-customize/money-module-reference-information.md @@ -56,7 +56,7 @@ The only difference between them is `MoneyTransfer::$currency`. This value diffe {% endinfo_block %} * In case you don't pass a currency, the currency configured as default is used. -* If you pass a specific currency, it is used instead of the one that's configured as default. +* If you pass a specific currency, it's used instead of the one that's configured as default. **`MoneyFacade::formatWithSymbol()`** diff --git a/docs/pbc/all/price-management/202311.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md b/docs/pbc/all/price-management/202311.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md index 6523139a88a..bc1b629105c 100644 --- a/docs/pbc/all/price-management/202311.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md +++ b/docs/pbc/all/price-management/202311.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md @@ -59,7 +59,7 @@ The methods defined in the `CurrencyFacade` return an instance of the `CurrencyT * currency name e.g. Euro * currency symbol e.g. € -In addition, `CurrencyTransfer` contains information that specifies if it is the default currency or not. `CurrencyTransfer::$isDefault` can be used to check if currency that was retrieved by `CurrencyFacade::fromIsoCode()` is the same as the one configured as default for the current store. +In addition, `CurrencyTransfer` contains information that specifies if it's the default currency or not. `CurrencyTransfer::$isDefault` can be used to check if currency that was retrieved by `CurrencyFacade::fromIsoCode()` is the same as the one configured as default for the current store. From currency version 3, we have introduced currency table where currencies are persisted. Also, currency facade provides API to read this data. diff --git a/docs/pbc/all/price-management/202311.0/base-shop/import-and-export-data/import-and-export-price-management-data.md b/docs/pbc/all/price-management/202311.0/base-shop/import-and-export-data/import-and-export-price-management-data.md index 84b34e7f134..2809758f12e 100644 --- a/docs/pbc/all/price-management/202311.0/base-shop/import-and-export-data/import-and-export-price-management-data.md +++ b/docs/pbc/all/price-management/202311.0/base-shop/import-and-export-data/import-and-export-price-management-data.md @@ -14,7 +14,7 @@ To learn how data import works and about different ways of importing data, see [ * [product_price.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-product-price.csv.html): allows you to define the price-related information for each product. This data defines the price type, whether is gross or net, its value, the store and currency to which the price applies, and other price data (for example, volumes price). -* [product_price_schedule.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-product-price-schedule.csv.html): use this file to schedule a specific price for a product. For that you have to define the price type, whether it is gross or net, its value, the store and currency to which the price applies, the activation date of that price, and its validity. +* [product_price_schedule.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-product-price-schedule.csv.html): use this file to schedule a specific price for a product. For that you have to define the price type, whether it's gross or net, its value, the store and currency to which the price applies, the activation date of that price, and its validity. * [currency.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-currency.csv.html) diff --git a/docs/pbc/all/price-management/202311.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md b/docs/pbc/all/price-management/202311.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md index 4302756a2dd..2d1551b09f3 100644 --- a/docs/pbc/all/price-management/202311.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md +++ b/docs/pbc/all/price-management/202311.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md @@ -15,7 +15,7 @@ B2B business model usually challenges any software with higher requirements to a Imagine you have thousands of products and customers with unique pricing terms and conditions. A product can have thousands of prices assigned—one per customer. This document shares the technical challenges of handling such a number of prices and the solutions to solve them. -Such a number of prices cannot be managed manually, but it is defined by business rules based on which the prices can be generated automatically. For example, you might agree on the special terms with your B2B partner, and they receive their own prices for the whole catalog. It might be considered as a discount, but usually, it is not a single simple rule but a set of rules and their priorities for each partner. These rules exist in an ERP system, which can export data through SOAP or CSV files. +Such a number of prices cannot be managed manually, but it's defined by business rules based on which the prices can be generated automatically. For example, you might agree on the special terms with your B2B partner, and they receive their own prices for the whole catalog. It might be considered as a discount, but usually, it's not a single simple rule but a set of rules and their priorities for each partner. These rules exist in an ERP system, which can export data through SOAP or CSV files. In Spryker, each price is imported as a [price dimension](/docs/pbc/all/price-management/{{site.version}}/base-shop/merchant-custom-prices-feature-overview.html) and has a unique key, which determines its relation to a customer—for example, `specificPrice-DEFAULT-EUR-NET_MODE-FOO1-BAR2`. To appear on the Storefront, the prices must appear in Redis price entries and abstract product search documents so that facet filters can be applied in search and categories. @@ -298,7 +298,7 @@ Ensure that `\Pyz\Zed\EventBehavior\Persistence\Propel\Behavior\ResourceAwareEve 3. Adjust `\Pyz\Zed\EventBehavior\Business\Model\TriggerManager::triggerEvents()` to extract the new piece of data from the payload obtained from the database and set it as the value of the newly created `EventEntityTransfer::queueName` property. -4. Configure `\Spryker\Zed\Event\Business\Queue\Producer\EventQueueProducer::enqueueListenerBulk()` to check if `queueName` is set on the `EventEntityTransfer.` If it is set, this queue name is used to push event messages to. Otherwise, it falls back to the default event queue. +4. Configure `\Spryker\Zed\Event\Business\Queue\Producer\EventQueueProducer::enqueueListenerBulk()` to check if `queueName` is set on the `EventEntityTransfer.` If it's set, this queue name is used to push event messages to. Otherwise, it falls back to the default event queue. Now you have a separate event queue for prices. This approach applies to any type of event. *Quick lane* ensures that critical data is replicated faster. diff --git a/docs/pbc/all/price-management/202404.0/base-shop/extend-and-customize/money-module-reference-information.md b/docs/pbc/all/price-management/202404.0/base-shop/extend-and-customize/money-module-reference-information.md index 0fb60c77b68..6f532b4b2ff 100644 --- a/docs/pbc/all/price-management/202404.0/base-shop/extend-and-customize/money-module-reference-information.md +++ b/docs/pbc/all/price-management/202404.0/base-shop/extend-and-customize/money-module-reference-information.md @@ -56,7 +56,7 @@ The only difference between them is `MoneyTransfer::$currency`. This value diffe {% endinfo_block %} * In case you don't pass a currency, the currency configured as default is used. -* If you pass a specific currency, it is used instead of the one that's configured as default. +* If you pass a specific currency, it's used instead of the one that's configured as default. **`MoneyFacade::formatWithSymbol()`** diff --git a/docs/pbc/all/price-management/202404.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md b/docs/pbc/all/price-management/202404.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md index 6523139a88a..bc1b629105c 100644 --- a/docs/pbc/all/price-management/202404.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md +++ b/docs/pbc/all/price-management/202404.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md @@ -59,7 +59,7 @@ The methods defined in the `CurrencyFacade` return an instance of the `CurrencyT * currency name e.g. Euro * currency symbol e.g. € -In addition, `CurrencyTransfer` contains information that specifies if it is the default currency or not. `CurrencyTransfer::$isDefault` can be used to check if currency that was retrieved by `CurrencyFacade::fromIsoCode()` is the same as the one configured as default for the current store. +In addition, `CurrencyTransfer` contains information that specifies if it's the default currency or not. `CurrencyTransfer::$isDefault` can be used to check if currency that was retrieved by `CurrencyFacade::fromIsoCode()` is the same as the one configured as default for the current store. From currency version 3, we have introduced currency table where currencies are persisted. Also, currency facade provides API to read this data. diff --git a/docs/pbc/all/price-management/202404.0/base-shop/import-and-export-data/import-and-export-price-management-data.md b/docs/pbc/all/price-management/202404.0/base-shop/import-and-export-data/import-and-export-price-management-data.md index 84b34e7f134..2809758f12e 100644 --- a/docs/pbc/all/price-management/202404.0/base-shop/import-and-export-data/import-and-export-price-management-data.md +++ b/docs/pbc/all/price-management/202404.0/base-shop/import-and-export-data/import-and-export-price-management-data.md @@ -14,7 +14,7 @@ To learn how data import works and about different ways of importing data, see [ * [product_price.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-product-price.csv.html): allows you to define the price-related information for each product. This data defines the price type, whether is gross or net, its value, the store and currency to which the price applies, and other price data (for example, volumes price). -* [product_price_schedule.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-product-price-schedule.csv.html): use this file to schedule a specific price for a product. For that you have to define the price type, whether it is gross or net, its value, the store and currency to which the price applies, the activation date of that price, and its validity. +* [product_price_schedule.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-product-price-schedule.csv.html): use this file to schedule a specific price for a product. For that you have to define the price type, whether it's gross or net, its value, the store and currency to which the price applies, the activation date of that price, and its validity. * [currency.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-currency.csv.html) diff --git a/docs/pbc/all/price-management/202404.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md b/docs/pbc/all/price-management/202404.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md index 4302756a2dd..2d1551b09f3 100644 --- a/docs/pbc/all/price-management/202404.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md +++ b/docs/pbc/all/price-management/202404.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md @@ -15,7 +15,7 @@ B2B business model usually challenges any software with higher requirements to a Imagine you have thousands of products and customers with unique pricing terms and conditions. A product can have thousands of prices assigned—one per customer. This document shares the technical challenges of handling such a number of prices and the solutions to solve them. -Such a number of prices cannot be managed manually, but it is defined by business rules based on which the prices can be generated automatically. For example, you might agree on the special terms with your B2B partner, and they receive their own prices for the whole catalog. It might be considered as a discount, but usually, it is not a single simple rule but a set of rules and their priorities for each partner. These rules exist in an ERP system, which can export data through SOAP or CSV files. +Such a number of prices cannot be managed manually, but it's defined by business rules based on which the prices can be generated automatically. For example, you might agree on the special terms with your B2B partner, and they receive their own prices for the whole catalog. It might be considered as a discount, but usually, it's not a single simple rule but a set of rules and their priorities for each partner. These rules exist in an ERP system, which can export data through SOAP or CSV files. In Spryker, each price is imported as a [price dimension](/docs/pbc/all/price-management/{{site.version}}/base-shop/merchant-custom-prices-feature-overview.html) and has a unique key, which determines its relation to a customer—for example, `specificPrice-DEFAULT-EUR-NET_MODE-FOO1-BAR2`. To appear on the Storefront, the prices must appear in Redis price entries and abstract product search documents so that facet filters can be applied in search and categories. @@ -298,7 +298,7 @@ Ensure that `\Pyz\Zed\EventBehavior\Persistence\Propel\Behavior\ResourceAwareEve 3. Adjust `\Pyz\Zed\EventBehavior\Business\Model\TriggerManager::triggerEvents()` to extract the new piece of data from the payload obtained from the database and set it as the value of the newly created `EventEntityTransfer::queueName` property. -4. Configure `\Spryker\Zed\Event\Business\Queue\Producer\EventQueueProducer::enqueueListenerBulk()` to check if `queueName` is set on the `EventEntityTransfer.` If it is set, this queue name is used to push event messages to. Otherwise, it falls back to the default event queue. +4. Configure `\Spryker\Zed\Event\Business\Queue\Producer\EventQueueProducer::enqueueListenerBulk()` to check if `queueName` is set on the `EventEntityTransfer.` If it's set, this queue name is used to push event messages to. Otherwise, it falls back to the default event queue. Now you have a separate event queue for prices. This approach applies to any type of event. *Quick lane* ensures that critical data is replicated faster. diff --git a/docs/pbc/all/price-management/202410.0/base-shop/extend-and-customize/money-module-reference-information.md b/docs/pbc/all/price-management/202410.0/base-shop/extend-and-customize/money-module-reference-information.md index 0fb60c77b68..6f532b4b2ff 100644 --- a/docs/pbc/all/price-management/202410.0/base-shop/extend-and-customize/money-module-reference-information.md +++ b/docs/pbc/all/price-management/202410.0/base-shop/extend-and-customize/money-module-reference-information.md @@ -56,7 +56,7 @@ The only difference between them is `MoneyTransfer::$currency`. This value diffe {% endinfo_block %} * In case you don't pass a currency, the currency configured as default is used. -* If you pass a specific currency, it is used instead of the one that's configured as default. +* If you pass a specific currency, it's used instead of the one that's configured as default. **`MoneyFacade::formatWithSymbol()`** diff --git a/docs/pbc/all/price-management/202410.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md b/docs/pbc/all/price-management/202410.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md index 95bee148ad9..a102f994152 100644 --- a/docs/pbc/all/price-management/202410.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md +++ b/docs/pbc/all/price-management/202410.0/base-shop/extend-and-customize/multiple-currencies-per-store-configuration.md @@ -59,7 +59,7 @@ The methods defined in the `CurrencyFacade` return an instance of the `CurrencyT * currency name e.g. Euro * currency symbol e.g. € -In addition, `CurrencyTransfer` contains information that specifies if it is the default currency or not. `CurrencyTransfer::$isDefault` can be used to check if currency that was retrieved by `CurrencyFacade::fromIsoCode()` is the same as the one configured as default for the current store. +In addition, `CurrencyTransfer` contains information that specifies if it's the default currency or not. `CurrencyTransfer::$isDefault` can be used to check if currency that was retrieved by `CurrencyFacade::fromIsoCode()` is the same as the one configured as default for the current store. From currency version 3, we have introduced currency table where currencies are persisted. Also, currency facade provides API to read this data. diff --git a/docs/pbc/all/price-management/202410.0/base-shop/import-and-export-data/import-and-export-price-management-data.md b/docs/pbc/all/price-management/202410.0/base-shop/import-and-export-data/import-and-export-price-management-data.md index 9151094e78c..5d8bf4afa97 100644 --- a/docs/pbc/all/price-management/202410.0/base-shop/import-and-export-data/import-and-export-price-management-data.md +++ b/docs/pbc/all/price-management/202410.0/base-shop/import-and-export-data/import-and-export-price-management-data.md @@ -15,7 +15,7 @@ To learn how data import works and about different ways of importing data, see [ * [product_price.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-product-price.csv.html): allows you to define the price-related information for each product. This data defines the price type, whether is gross or net, its value, the store and currency to which the price applies, and other price data (for example, volumes price). -* [product_price_schedule.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-product-price-schedule.csv.html): use this file to schedule a specific price for a product. For that you have to define the price type, whether it is gross or net, its value, the store and currency to which the price applies, the activation date of that price, and its validity. +* [product_price_schedule.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-product-price-schedule.csv.html): use this file to schedule a specific price for a product. For that you have to define the price type, whether it's gross or net, its value, the store and currency to which the price applies, the activation date of that price, and its validity. * [currency.csv](/docs/pbc/all/price-management/{{page.version}}/base-shop/import-and-export-data/import-file-details-currency.csv.html) diff --git a/docs/pbc/all/price-management/202410.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md b/docs/pbc/all/price-management/202410.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md index 4302756a2dd..2d1551b09f3 100644 --- a/docs/pbc/all/price-management/202410.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md +++ b/docs/pbc/all/price-management/202410.0/base-shop/tutorials-and-howtos/handle-twenty-five-million-prices-in-spryker-commerce-os.md @@ -15,7 +15,7 @@ B2B business model usually challenges any software with higher requirements to a Imagine you have thousands of products and customers with unique pricing terms and conditions. A product can have thousands of prices assigned—one per customer. This document shares the technical challenges of handling such a number of prices and the solutions to solve them. -Such a number of prices cannot be managed manually, but it is defined by business rules based on which the prices can be generated automatically. For example, you might agree on the special terms with your B2B partner, and they receive their own prices for the whole catalog. It might be considered as a discount, but usually, it is not a single simple rule but a set of rules and their priorities for each partner. These rules exist in an ERP system, which can export data through SOAP or CSV files. +Such a number of prices cannot be managed manually, but it's defined by business rules based on which the prices can be generated automatically. For example, you might agree on the special terms with your B2B partner, and they receive their own prices for the whole catalog. It might be considered as a discount, but usually, it's not a single simple rule but a set of rules and their priorities for each partner. These rules exist in an ERP system, which can export data through SOAP or CSV files. In Spryker, each price is imported as a [price dimension](/docs/pbc/all/price-management/{{site.version}}/base-shop/merchant-custom-prices-feature-overview.html) and has a unique key, which determines its relation to a customer—for example, `specificPrice-DEFAULT-EUR-NET_MODE-FOO1-BAR2`. To appear on the Storefront, the prices must appear in Redis price entries and abstract product search documents so that facet filters can be applied in search and categories. @@ -298,7 +298,7 @@ Ensure that `\Pyz\Zed\EventBehavior\Persistence\Propel\Behavior\ResourceAwareEve 3. Adjust `\Pyz\Zed\EventBehavior\Business\Model\TriggerManager::triggerEvents()` to extract the new piece of data from the payload obtained from the database and set it as the value of the newly created `EventEntityTransfer::queueName` property. -4. Configure `\Spryker\Zed\Event\Business\Queue\Producer\EventQueueProducer::enqueueListenerBulk()` to check if `queueName` is set on the `EventEntityTransfer.` If it is set, this queue name is used to push event messages to. Otherwise, it falls back to the default event queue. +4. Configure `\Spryker\Zed\Event\Business\Queue\Producer\EventQueueProducer::enqueueListenerBulk()` to check if `queueName` is set on the `EventEntityTransfer.` If it's set, this queue name is used to push event messages to. Otherwise, it falls back to the default event queue. Now you have a separate event queue for prices. This approach applies to any type of event. *Quick lane* ensures that critical data is replicated faster. diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/domain-model-and-relationships/measurement-units-feature-module-relations.md b/docs/pbc/all/product-information-management/202311.0/base-shop/domain-model-and-relationships/measurement-units-feature-module-relations.md index b30441c108f..95a79c0687d 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/domain-model-and-relationships/measurement-units-feature-module-relations.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/domain-model-and-relationships/measurement-units-feature-module-relations.md @@ -13,9 +13,9 @@ The following schema illustrates relations between alternative products: ![module-relations](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Packaging+%26+Measurement+Units/Measurement+Units/Measurement+Units+Feature+Overview/product_units_relation.png) -* *conversion*—factor to convert a value from sales to the base unit. If it is *null*, the information is taken from the global conversions (the `MeasurementUnitConverter.php` file). -* *precision*—the ratio between a sales unit and a base unit. For example, a base unit is an *item*, and a user selects *kg* as a sales unit. +* *conversion*—factor to convert a value from sales to the base unit. If it's *null*, the information is taken from the global conversions (the `MeasurementUnitConverter.php` file). +* *precision*—the ratio between a sales unit and a base unit. For example, a base unit's an *item*, and a user selects *kg* as a sales unit. * `is_displayed`—if true, then the value is shown on the Storefront. -* `is_default`—if true, then the unit is shown as the default unit on the Storefront. +* `is_default`—if true, then the unit's shown as the default unit on the Storefront.
diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/alternative-products-feature-overview.md b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/alternative-products-feature-overview.md index f4dbceecb88..3f0eca1555f 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/alternative-products-feature-overview.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/alternative-products-feature-overview.md @@ -19,7 +19,7 @@ redirect_from: Suggesting product alternatives is a great way to ease the user’s product finding process. Instead of browsing the product catalog, product alternatives let customers jump from one product page to the next until they find a relevant item. -For marketplace relations, alternative products are useful because for a marketplace owner it is irrelevant from what merchant a buyer has bought a product. If a merchant does not have this product, the alternative product can be shown on the marketplace. +For marketplace relations, alternative products are useful because for a marketplace owner it's irrelevant from what merchant a buyer has bought a product. If a merchant does not have this product, the alternative product can be shown on the marketplace. A Back Office user can add product alternatives for both abstract and concrete products in **Catalog > Products**. diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/configurable-bundle-feature-overview.md b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/configurable-bundle-feature-overview.md index 8c781760b34..ba52a5c9b91 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/configurable-bundle-feature-overview.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/configurable-bundle-feature-overview.md @@ -86,7 +86,7 @@ To learn how a Back Office User creates slots, see [Creating slots in configurab When a Storefront user configures a bundle, for each slot, they select a product from the provided product list. ![Slot Base Cabinet](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Product+Management/Configurable+Bundle/Slot+Base+Cabinet.png) -By default, it is not obligatory to select products for all the slots to order a configurable bundle. +By default, it's not obligatory to select products for all the slots to order a configurable bundle. Schematically, a configurable bundle looks as follows: ![Config Bundle Schema](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Product+Management/Configurable+Bundle/slots+scheme.png) @@ -197,7 +197,7 @@ The order looks as follows: * Product B x1 -If a configurable bundle contains non-splittable products and its quantity is above 1, it is not split. +If a configurable bundle contains non-splittable products and its quantity is above 1, it's not split. For example, a Storefront User places the order with the following item: diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/measurement-units-feature-overview.md b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/measurement-units-feature-overview.md index cdf75c42bb9..641d3f97aa6 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/measurement-units-feature-overview.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/measurement-units-feature-overview.md @@ -16,9 +16,9 @@ redirect_from: - /docs/pbc/all/product-information-management/202204.0/base-shop/feature-overviews/measurement-units-feature-overview.html --- -The *Measurement Units* feature lets you sell products by any unit of measure defined by the shop administrator. For example, apples can be offered in "Item" or "Kilogram", cables can be offered in "Centimeter", "Meter" or "Feet". To support alternate units of measure, there must be a base unit value relative to which all the internal conversions and calculations will be made. Such value is referred to as a base unit. The base unit is assigned to abstract products, and by default, it is "item"; however, it can be changed to any other unit. +The *Measurement Units* feature lets you sell products by any unit of measure defined by the shop administrator. For example, apples can be offered in "Item" or "Kilogram", cables can be offered in "Centimeter", "Meter" or "Feet". To support alternate units of measure, there must be a base unit value relative to which all the internal conversions and calculations will be made. Such value is referred to as a base unit. The base unit's assigned to abstract products, and by default, it's "item"; however, it can be changed to any other unit. -Besides the base unit, the shop owner can define *sales units*—alternate units of measure in which items will be offered in the shop. Sales units are assigned to concrete products, but if sales units are not defined, the *base unit* is used as a default sales unit. If there are several sales units and no default sales unit is defined, then the first unit to show will be the first in alphabetical order. +Besides the base unit, the shop owner can define *sales units*—alternate units of measure in which items will be offered in the shop. Sales units are assigned to concrete products, but if sales units are not defined, the *base unit* is used as a default sales unit. If there are several sales units and no default sales unit's defined, then the first unit to show will be the first in alphabetical order. The sales units are displayed on the product details page. You can define the sales units in the Administration Interface but choose not to display them on the webshop. Actually, sales units are only shown on the website but then immediately converted into the base unit, as internally, the system only works with the base units. @@ -30,11 +30,11 @@ For example, you might have bought a quintal of apples, but want to use kilogram {% endinfo_block %} -The shop owner can define if the conversion factor between base and sales units should be displayed on the webshop. If it is set to `true`, then: +The shop owner can define if the conversion factor between base and sales units should be displayed on the webshop. If it's set to `true`, then: | EXAMPLE | DISPLAY VALUE | PRODUCT DETAILS PAGE | | --- | --- | --- | -| The base unit is meter and the sales unit is feet | "**1 meter=3,048 feet**" is displayed under the drop-down field with measuring units on product details page | ![Quantity](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Packaging+%26+Measurement+Units/Measurement+Units/Measurement+Units+Feature+Overview/quantity.png)| +| The base unit's meter and the sales unit's feet | "**1 meter=3,048 feet**" is displayed under the drop-down field with measuring units on product details page | ![Quantity](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Packaging+%26+Measurement+Units/Measurement+Units/Measurement+Units+Feature+Overview/quantity.png)| On the cart page, the user sees quantity both in the base unit and sales unit. diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/packaging-units-feature-overview.md b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/packaging-units-feature-overview.md index 9a47bdb28f2..b15804b0c54 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/packaging-units-feature-overview.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/packaging-units-feature-overview.md @@ -39,7 +39,7 @@ redirect_from: The _Packaging Unit_ feature introduces a *packaging unit* that is a unit of measure used as packaging for a product. It allows including the amount of stock in a product a customer wants to buy. A shop owner can sell the same product in different packaging units—for example, apples can be sold as an "Item", a "Bag", or "Pallet" of apples. The "bag", "pallet", and "box" are referred to as *packaging unit types*. -Each packaging unit is defined on an abstract product level and is represented by one product variant—for example: +Each packaging unit's defined on an abstract product level and is represented by one product variant—for example: | ABSTRACT PRODUCT | CONCRETE PRODUCT / VARIANT | PACKAGING UNIT | | --- | --- | --- | @@ -95,7 +95,7 @@ For example, a packaging unit "bag" can be set to have "item" as a base unit and {% endinfo_block %} -The amount of items contained in a sales unit is referred to as *sales unit amount*. If a customer chooses a sales unit amount, which is in between two available amounts (because of amount restriction settings), a higher or lower amount must be selected. +The amount of items contained in a sales unit's referred to as *sales unit amount*. If a customer chooses a sales unit amount, which is in between two available amounts (because of amount restriction settings), a higher or lower amount must be selected. {% info_block infoBox "Info" %} diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-bundles-feature-overview.md b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-bundles-feature-overview.md index c653b115b8e..92cfda16849 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-bundles-feature-overview.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-bundles-feature-overview.md @@ -15,7 +15,7 @@ redirect_from: With the _Product Bundles_ feature you can tie individual items together and sell them as a package. As opposed to a set, in which products are loosely grouped, the items in a bundle are always sold together. You can choose to create a special bundle price to make the purchase more attractive. Since each bundle's product is still handled like an individual item in the Order Management Process, bundle availability is always calculated and displayed based on the item with the smallest available stock to avoid overselling. -A bundle represents two or more products, sold as a set; it is a distinct product that incorporates other concrete products. +A bundle represents two or more products, sold as a set; it's a distinct product that incorporates other concrete products. Example: ![Product bundle](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Product+Management/Product+Bundles/product_bundles.png) @@ -94,7 +94,7 @@ For example: If bundled items have quantity > 1 then it will be split as separate items in cart. -BundleProduct have price this price, it is distributed to whole bundled items. Overwriting original product price. If bundle have price 100, and there is 3 bundled products, each will get price 33,34,33 distributed, 34 is to cover rounding error. +BundleProduct have price this price, it's distributed to whole bundled items. Overwriting original product price. If bundle have price 100, and there is 3 bundled products, each will get price 33,34,33 distributed, 34 is to cover rounding error. ## Persisting when placing an order, end of checkout diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-feature-overview/discontinued-products-overview.md b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-feature-overview/discontinued-products-overview.md index 27c6fb5abe9..d3f4098b01d 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-feature-overview/discontinued-products-overview.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-feature-overview/discontinued-products-overview.md @@ -16,7 +16,7 @@ redirect_from: - /docs/pbc/all/product-information-management/202204.0/base-shop/feature-overviews/product-feature-overview/discontinued-products-overview.html --- -If a concrete product runs out of stock, it is tagged as out of stock and cannot be added to cart: +If a concrete product runs out of stock, it's tagged as out of stock and cannot be added to cart: ![Discontinued PDP](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Product+Management/Discontinued+Products/Discontinued+Products+Feature+Overview/discontinued-pdp-page.png) diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-feature-overview/product-attributes-overview.md b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-feature-overview/product-attributes-overview.md index d4d31d562a5..7065ac1b34d 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-feature-overview/product-attributes-overview.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-feature-overview/product-attributes-overview.md @@ -24,7 +24,7 @@ A developer can import [product attributes](/docs/pbc/all/product-information-ma ## Product attribute inheritance -A Back Office user can add product attributes to abstract and concrete products. If they add a product attribute to an abstract product, it is added to all its concrete products. If they add it to a concrete product, it's not added to the other concrete products. +A Back Office user can add product attributes to abstract and concrete products. If they add a product attribute to an abstract product, it's added to all its concrete products. If they add it to a concrete product, it's not added to the other concrete products. ## Declared attributes @@ -45,7 +45,7 @@ The Spryker Commerce OS product data model allows the creation of multiple produ For a product variant to be selectable on the Storefront, a value of one of its product attributes must be unique compared to the product attribute values of other variants of the same abstract product. -When creating a product attribute, a Back Office user selects if it is a super attribute. +When creating a product attribute, a Back Office user selects if it's a super attribute. Product variants of the same abstract product can differ by different super attributes. Check the following super attribute examples: diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-labels-feature-overview.md b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-labels-feature-overview.md index 87ca15a5245..98c48f05301 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-labels-feature-overview.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-labels-feature-overview.md @@ -135,7 +135,7 @@ A product label can have the following statuses: * Active * Inactive -If a product label is active, it is displayed on all the product pages it is applied to. If a product label is inactive, it is still applied to the selected product, but it is not displayed on the respective product pages. This might be useful when you want to prepare for an event beforehand. You can create an inactive product label and apply it to the needed products. When the event starts, you just need to activate the label to show it on all the product pages it is applied to. +If a product label is active, it's displayed on all the product pages it's applied to. If a product label is inactive, it's still applied to the selected product, but it's not displayed on the respective product pages. This might be useful when you want to prepare for an event beforehand. You can create an inactive product label and apply it to the needed products. When the event starts, you just need to activate the label to show it on all the product pages it's applied to. To learn how a Back Office user can activate and deactivate product labels in the Back Office, see [Edit product labels](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/manage-in-the-back-office/product-labels/edit-product-labels.html) diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-options-feature-overview.md b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-options-feature-overview.md index e26edac1e7b..084cb1004df 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-options-feature-overview.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/feature-overviews/product-options-feature-overview.md @@ -1,6 +1,6 @@ --- title: Product Options feature overview -description: The document describes the creation process of product options and how it is managed in the Back Office +description: The document describes the creation process of product options and how it's managed in the Back Office last_updated: Jul 26, 2021 template: concept-topic-template originalLink: https://documentation.spryker.com/2021080/docs/product-options-feature-overview diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category-template.csv.md b/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category-template.csv.md index 15a53762bd2..2970eacd286 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category-template.csv.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category-template.csv.md @@ -23,7 +23,7 @@ This document describes the `category_template.csv` file to configure category t | PARAMETER | REQUIRED | TYPE | REQUIREMENTS OR COMMENTS | DESCRIPTION | | --- | --- | --- | --- | --- | | template_name | ✓ | String | | Name of the category template. | -| template_path | ✓ | String | | Must be a valid path to a twig file and it is a unique field, for example, the file cannot have more than one line with the same template path. | Path of the category template. | +| template_path | ✓ | String | | Must be a valid path to a twig file and it's a unique field, for example, the file cannot have more than one line with the same template path. | Path of the category template. | ## Import template file and content example diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category.csv.md b/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category.csv.md index 3947245ecfc..56a6d798773 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category.csv.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category.csv.md @@ -33,12 +33,12 @@ This document describes the `category.csv` file to configure [categories](/docs/ | meta_title.{ANY_LOCALE_NAME}
Example value: *meta_title.de_DE* | | String | | Title in the specified location (DE for our example). | | meta_description.{ANY_LOCALE_NAME}
Example value: *meta_description.de_DE* | | String | | Description in the specified location (DE for our example). | | meta_keywords.{ANY_LOCALE_NAME}
Example value: *meta_keywords.de_DE* | | String | | Keywords in the specified location (DE for our example). | -| is_active | | Boolean | True (1), if it is active. False (0), if it is not active. | Indicates if the category is active or not. | -| is_in_menu | | Boolean | True (1), if it is in the menu. False (0), if it is not in the menu. | Indicates if the category is in the menu or not. | -| is_clickable | | Boolean | True (1), if it is clickable. False (0), if it is not clickable. | Indicates if the category is clickable or not. | -| is_searchable | | Boolean | True (1), if it is searchable. False (0), if it is not searchable. | Indicates if it is a searchable category in the menu or not. | -| is_root | | Boolean | True (1), if it is root. False (0), if it is not root. | Indicates if it is a root category or not. | -| is_main | | Boolean | True (1), if it is main. False (0), if it is not main. | Indicates if it is a main category or not. | +| is_active | | Boolean | True (1), if it's active. False (0), if it's not active. | Indicates if the category is active or not. | +| is_in_menu | | Boolean | True (1), if it's in the menu. False (0), if it's not in the menu. | Indicates if the category is in the menu or not. | +| is_clickable | | Boolean | True (1), if it's clickable. False (0), if it's not clickable. | Indicates if the category is clickable or not. | +| is_searchable | | Boolean | True (1), if it's searchable. False (0), if it's not searchable. | Indicates if it's a searchable category in the menu or not. | +| is_root | | Boolean | True (1), if it's root. False (0), if it's not root. | Indicates if it's a root category or not. | +| is_main | | Boolean | True (1), if it's main. False (0), if it's not main. | Indicates if it's a main category or not. | | node_order | | Integer | | Order of the category node. | | template_name | | String | | Template name of the category. | | category_image_name.{ANY_LOCALE_NAME} | | String | | Name of the image for the category in the locale. | diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-abstract.csv.md b/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-abstract.csv.md index ca4936268fb..b61b642ee4a 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-abstract.csv.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-abstract.csv.md @@ -36,7 +36,7 @@ This document describes the `product_abstract.csv` file to configure [Abstract P | abstract_sku | ✓ | String | | SKU identifier of the abstract product. | | name.{ANY_LOCALE_NAME}
Example value: *name.en_US* | ✓ | String |Locale data is dynamic in data importers. It means that ANY_LOCALE_NAME postifx can be changed, removed, and any number of columns with different locales can be added to the .csv files. | Name of the product in the specified location (US for our example). | | url.{ANY_LOCALE_NAME}
Example value: *value_1.en_US* | ✓ | String | | URL page of the product image in the specified location (US for our example). | -|is_featured | | String |If it is empty, will be “False”.
False = 0
True = 1 | Indicates if it is a featured product. | +|is_featured | | String |If it's empty, will be “False”.
False = 0
True = 1 | Indicates if it's a featured product. | | attribute_key_{NUMBER}
Example value: *attribute_key_1*
| ✓ (if this attribute is defined) | String | | Product attribute key for the attribute. | | value_{NUMBER}
Example value: *value_1*
|✓ (if this attribute is defined) | String | | Product value for the attribute. | | attribute_key_{NUMBER}.{ANY_LOCALE_NAME}
Example value: *attribute_key_1.en_US*
| | String | | Product attribute key, for the first attribute, translated in the specified locale (US for our example). | @@ -56,7 +56,7 @@ This document describes the `product_abstract.csv` file to configure [Abstract P ## Additional information -For each attribute, where N is a number starting in 1, it is mandatory to have both fields: +For each attribute, where N is a number starting in 1, it's mandatory to have both fields: * `attribute_key_N` * `value_N` diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md b/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md index 92c7de83ffd..e0330a08d6e 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md @@ -22,7 +22,7 @@ This document describes the `product_attribute_key.csv` file to configure [Produ | PARAMETER | REQUIRED | TYPE | REQUIREMENTS OR COMMENTS | DESCRIPTION | | --- | --- | --- | --- | --- | | attribute_key | ✓ | String | Must be unique. | Product attribute key name. | -| is_super | | Boolean | If empty it will be imported as *False* (0).
False = 0 = It is not a super attribute.
True = 1 = It is a super attribute. | Indicates whether it is a super attribute or not. | +| is_super | | Boolean | If empty it will be imported as *False* (0).
False = 0 = It is not a super attribute.
True = 1 = It is a super attribute. | Indicates whether it's a super attribute or not. | ## Import template file and content example diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md b/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md index 7b6dee634f4..06483cc9d24 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md @@ -41,7 +41,7 @@ This file has the following dependency: [ product_abstract.csv](/docs/pbc/all/pr | is_searchable.{ANY_LOCALE_NAME}
Example value: *is_searchable.en_US*| | Integer | | Indicates if the product is searchable in the specified locale (US for our example). | | icecat_license | | String | | Icecat product catalogue license code. | | bundled | | String | | Products SKUs separated by comas, that are part of the bundle. | -| is_quantity_splittable | | Boolean |If it is empty, will be *False*.
False = 0
True = 1 | Defines if the product is [splittable](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) or not. | +| is_quantity_splittable | | Boolean |If it's empty, will be *False*.
False = 0
True = 1 | Defines if the product is [splittable](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) or not. | ** ANY_LOCALE_NAME: Locale date is dynamic in data importers. It means that ANY_LOCALE_NAME postfix can be changed, removed, and any number of columns with different locales can be added to the CSV files. diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/install-and-upgrade/install-features/install-the-measurement-units-feature.md b/docs/pbc/all/product-information-management/202311.0/base-shop/install-and-upgrade/install-features/install-the-measurement-units-feature.md index 3f48f3a3957..0d2bd908a9a 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/install-and-upgrade/install-features/install-the-measurement-units-feature.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/install-and-upgrade/install-features/install-the-measurement-units-feature.md @@ -558,9 +558,9 @@ sales_unit_19,218_1232,ITEM,1,1,1,1 |concrete_sku|mandatory|string|215_123|An already existing product concrete SKU.| |code|mandatory|string|METR |An already existing measurement unit code that will be used to convert back and forth with the base unit defined in product abstract.| |conversion|mandatory|float, empty|5|

A custom multiplier that is used to calculate base unit. This field can be empty if both base and sales unit code is defined in the general [conversion ratios](https://github.com/spryker/util-measurement-unit-conversion/blob/1ae26cf8e629d25157e273097941bde438a24ddc/src/Spryker/Service/UtilMeasurementUnitConversion/UtilMeasurementUnitConversionConfig.php).

Example: 5 means that 1 quantity of this sales unit represents 5 of the base unit.

| -|precision|mandatory|integer, power of ten, empty|100|A property that affects how detailed to render a float measurement unit. Affects visual only, not used in calculations.
When left empty, the precision of the measurement unit is used.| +|precision|mandatory|integer, power of ten, empty|100|A property that affects how detailed to render a float measurement unit. Affects visual only, not used in calculations.
When left empty, the precision of the measurement unit's used.| |is_displayed|mandatory|integer|0|Controls if the sales unit can be displayed for customers.| -|is_default|mandatory|integer|1|Controls if this sales unit is preferred as the default sales unit when offered for customers.
Takes no effect if is_displayed set as 0.
1 product concrete can have up to 1 default sales unit.| +|is_default|mandatory|integer|1|Controls if this sales unit's preferred as the default sales unit when offered for customers.
Takes no effect if is_displayed set as 0.
1 product concrete can have up to 1 default sales unit.| Register the following plugin: @@ -674,7 +674,7 @@ sales_unit_19,AT | COLUMN | REQUIRED | DATA TYPE | DATA EXAMPLE | DATA EXPLANATION | | --- | --- | --- | --- | --- | | sales_unit_key |mandatory | string | sales_unit_1 |A reference used for the product measurement sales unit data import. | -|store_name|mandatory|string|DE|Contains the store name where the sales unit is available.| +|store_name|mandatory|string|DE|Contains the store name where the sales unit's available.| Register the following plugin: | PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | @@ -962,7 +962,7 @@ measurement_units.recommendation.suggestion,Was würden Sie gerne hinzufügen? , cart.pre.check.quantity.min.failed,Die Mindestanzahl für Produkt SKU '%sku%' ist nicht erreicht.,de_DE cart.pre.check.quantity.max.failed,Die Maximalanzahl für Produkt SKU '%sku%' ist überschritten.,de_DE cart.pre.check.quantity.interval.failed,Die Anzahl für Produkt SKU '%sku%' liegt nicht innerhalb des vorgegebenen Intervals.,de_DE -cart.item.sales_unit.not_found,Sales unit is not found for product with SKU '%sku%'.,en_US +cart.item.sales_unit.not_found,Sales unit's not found for product with SKU '%sku%'.,en_US cart.item.sales_unit.not_found,Verkaufseinheit wird für Produkt mit SKU '%sku%' nicht gefunden.,de_DE ``` diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/add-product-alternatives.md b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/add-product-alternatives.md index 96cb9afbb65..f320b8aba9e 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/add-product-alternatives.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/add-product-alternatives.md @@ -41,7 +41,7 @@ The page is refreshed to display the table with the alternative products you hav To remove any alternative product, in the _Actions_ column, click **Remove**. **Tips and tricks** -
The product alternatives is displayed on the concrete product page only when it is out of stock or discontinued. In any other case, no alternatives are displayed. However, for each product added as an alternative one, a *Replacement for* section is displayed: +
The product alternatives is displayed on the concrete product page only when it's out of stock or discontinued. In any other case, no alternatives are displayed. However, for each product added as an alternative one, a *Replacement for* section is displayed: ![Replacement for](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Products/Products/Managing+products/Adding+Product+Alternatives/replacement-for.png) In addition to the alternatives section, a dynamic label is assigned to the product for which the alternatives are set up. diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/create-product-variants.md b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/create-product-variants.md index 8dc6b957475..faf912d3fd8 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/create-product-variants.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/create-product-variants.md @@ -125,7 +125,7 @@ Once you select to discontinue the product, you can add a note about that on thi #### Product Alternatives tab -The only field available is **Add Product Alternative by Name or SKU**. Here it is enough to enter three characters of a product name or SKU to see the auto-suggested product list. From one to many values can be selected. If there is no need to set up an alternative product, you can skip this tab. +The only field available is **Add Product Alternative by Name or SKU**. Here it's enough to enter three characters of a product name or SKU to see the auto-suggested product list. From one to many values can be selected. If there is no need to set up an alternative product, you can skip this tab. #### Scheduled Prices tab diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/discontinue-products.md b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/discontinue-products.md index 7ebdd7122b0..a2cc85da958 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/discontinue-products.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/discontinue-products.md @@ -61,7 +61,7 @@ If the product added to the shopping list or wishlist is marked as discontinued, ### Reference information: Discontinuing products This section explains what happens on the Storefront after discontinuing a product. -Let's say the Smartphone with a flash memory equals 16GB is no longer popular, and it is more efficient for you to discontinue it. However, you need to propose some replacements for it to make sure that the user journey will be successful. +Let's say the Smartphone with a flash memory equals 16GB is no longer popular, and it's more efficient for you to discontinue it. However, you need to propose some replacements for it to make sure that the user journey will be successful. You will discontinue this product variant and set up other products to be displayed as alternatives. ![Discontinued and alternatives](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Products/Products/Managing+products/Products:+Reference+Information/Discontinued-and-Alternative.gif) diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/edit-product-variants.md b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/edit-product-variants.md index 1a134d46472..f14915c6526 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/edit-product-variants.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-in-the-back-office/products/manage-product-variants/edit-product-variants.md @@ -109,7 +109,7 @@ Once you select to discontinue the product, you can add a note about that on thi #### Product Alternatives tab -The only field available is **Add Product Alternative by Name or SKU**. Here it is enough to enter three characters of a product name or SKU to see the autosuggested product list. From one to many values can be selected. If there is no need to set up an alternative product, you can skip this tab. +The only field available is **Add Product Alternative by Name or SKU**. Here it's enough to enter three characters of a product name or SKU to see the autosuggested product list. From one to many values can be selected. If there is no need to set up an alternative product, you can skip this tab. #### Scheduled Prices tab diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/concrete-products/glue-api-retrieve-concrete-products.md b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/concrete-products/glue-api-retrieve-concrete-products.md index 4ab594c585b..3f2c56a089c 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/concrete-products/glue-api-retrieve-concrete-products.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/concrete-products/glue-api-retrieve-concrete-products.md @@ -77,8 +77,8 @@ To retrieve general information about a concrete product, send the request: | `GET https://glue.mysprykershop.com/concrete-products/001_25904006?include=product-offers` | Get information about the `001_25904006` product with its product offers. | | `GET http://glue.mysprykershop.com/concrete-products/fish-1-1?include=sales-units,product-measurement-units` | Get information about the `fish-1-1` product with the information on its sales units and product measurement units included. | | `GET http://glue.mysprykershop.com/concrete-products/001_25904006?include=product-labels` | Retrieve information about the `001_25904006` product with product labels included. | -| `GET https://glue.mysprykershop.com/concrete-products/214_123?included=bundled-products` | Retrieve the concrete product with SKU `214_123`. If it is a product bundle, retrieve the bundled products. | -| `GET https://glue.mysprykershop.com/concrete-products/214_123?included=bundled-products,concrete-products,abstract-products` | Retrieve the concrete product with SKU `214_123`. If it is a product bundle, retrieve the bundled products. Retrieve all the related concrete products and the abstract products owning them. | +| `GET https://glue.mysprykershop.com/concrete-products/214_123?included=bundled-products` | Retrieve the concrete product with SKU `214_123`. If it's a product bundle, retrieve the bundled products. | +| `GET https://glue.mysprykershop.com/concrete-products/214_123?included=bundled-products,concrete-products,abstract-products` | Retrieve the concrete product with SKU `214_123`. If it's a product bundle, retrieve the bundled products. Retrieve all the related concrete products and the abstract products owning them. | ### Response diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/concrete-products/glue-api-retrieve-sales-units.md b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/concrete-products/glue-api-retrieve-sales-units.md index 936f77c15f7..29c275504f9 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/concrete-products/glue-api-retrieve-sales-units.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/concrete-products/glue-api-retrieve-sales-units.md @@ -97,10 +97,10 @@ Request sample: retrieve sales units | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | -| conversion | integer | Factor to convert a value from sales to base unit. If it is "null", the information is taken from the global conversions. | +| conversion | integer | Factor to convert a value from sales to base unit. If it's "null", the information is taken from the global conversions. | | precision | integer | Ratio between a sales unit and a base unit. | -| is displayed | boolean | Defines if the sales unit is displayed on the product details page. | -| is default | boolean | Defines if the sales unit is selected by default on the product details page. | +| is displayed | boolean | Defines if the sales unit's displayed on the product details page. | +| is default | boolean | Defines if the sales unit's selected by default on the product details page. | | measurementUnitCode | string | Code of the measurement unit. | See [Retrieve measurement units](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/manage-using-glue-api/glue-api-retrieve-measurement-units.html) for more information on managing the sales units. diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-measurement-units.md b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-measurement-units.md index 9cb1436d895..d64677c4e69 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-measurement-units.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-measurement-units.md @@ -64,7 +64,7 @@ Response sample: retrieve a measurement unit | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | | name | string | Name of the product measurement unit. | -| defaultPrecision | integer | Default ratio between a sales unit and a base unit. It is used when precision for a related sales unit is not specified. | +| defaultPrecision | integer | Default ratio between a sales unit and a base unit. It is used when precision for a related sales unit's not specified. | | measurementUnitCode | string | Code of the measurement unit. | ## Other management options diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-product-attributes.md b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-product-attributes.md index b5115412909..6a77ce272b3 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-product-attributes.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-product-attributes.md @@ -153,7 +153,7 @@ Request sample: retrieve all product attributes | ATTRIBUTE | TYPE | DESCRIPTION | | --- | --- | --- | | allowInput | Boolean | Indicates if custom values can be entered for this product attribute. | -| isSuper | Boolean | Indicates if it is a super attribute or not. | +| isSuper | Boolean | Indicates if it's a super attribute or not. | | inputType | String | Input type of the product attribute, for example, text, number, select, etc. | | localeName | String | Name of the locale. | | values | Array | Possible values of the attribute. | diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/tutorials-and-howtos/howto-render-configurable-bundle-templates-in-the-storefront.md b/docs/pbc/all/product-information-management/202311.0/base-shop/tutorials-and-howtos/howto-render-configurable-bundle-templates-in-the-storefront.md index 3f578647ae6..b9e2c63a454 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/tutorials-and-howtos/howto-render-configurable-bundle-templates-in-the-storefront.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/tutorials-and-howtos/howto-render-configurable-bundle-templates-in-the-storefront.md @@ -78,7 +78,7 @@ In the checkout summary page template (`CheckoutPage/Theme/default/views/summary {% raw %}{%{% endraw %} endwidget {% raw %}%}{% endraw %} ``` -When you set up `ConfiguredBundleNoteWidget` for your product, it is called automatically in the `configured-bundle` molecule of the `QuoteConfiguredBundleWidget` (the same example as for the cart page). It is impossible to edit or remove comments for the configured bundle product on the checkout summary step. The customer can read comments which are editable on the cart page only. +When you set up `ConfiguredBundleNoteWidget` for your product, it's called automatically in the `configured-bundle` molecule of the `QuoteConfiguredBundleWidget` (the same example as for the cart page). It is impossible to edit or remove comments for the configured bundle product on the checkout summary step. The customer can read comments which are editable on the cart page only. ## Render configurable bundle templates on the order details page diff --git a/docs/pbc/all/product-information-management/202311.0/base-shop/tutorials-and-howtos/product-data-from-import-to-frontend-views.md b/docs/pbc/all/product-information-management/202311.0/base-shop/tutorials-and-howtos/product-data-from-import-to-frontend-views.md index ac92e233150..183016b3733 100644 --- a/docs/pbc/all/product-information-management/202311.0/base-shop/tutorials-and-howtos/product-data-from-import-to-frontend-views.md +++ b/docs/pbc/all/product-information-management/202311.0/base-shop/tutorials-and-howtos/product-data-from-import-to-frontend-views.md @@ -41,7 +41,7 @@ vendor/bin/console collector:storage:export When you have data in the key-value storage, you can display the product details in the frontend views. -When requesting a page in frontend, the `Collector` module takes care of identifying the type of request (if it is a product details page or a category page) and retrieves necessary data from Redis. +When requesting a page in frontend, the `Collector` module takes care of identifying the type of request (if it's a product details page or a category page) and retrieves necessary data from Redis. It also takes care of routing the request to the correct controller action. diff --git a/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/product-options/create-product-options.md b/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/product-options/create-product-options.md index 1600893743b..fc58d8266e4 100644 --- a/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/product-options/create-product-options.md +++ b/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/product-options/create-product-options.md @@ -53,7 +53,7 @@ The following table describes the attributes you enter and select while creating | Tax Set | Conditions under which the product option group is to be taxed. To learn how to create tax sets, see [Create tax sets](/docs/pbc/all/tax-management/{{page.version}}/base-shop/manage-in-the-back-office/create-tax-sets.html). | | Option name translation key | Glossary key for the product option value. The format is `product.option.{your key}`. For example, `product.option.warranty1`. | | SKU | Unique identifier for the product option value. This value is autogenerated based on the **Option name translation key**, and you can adjust it per your requirements.| -| Gross price and Net price | Price values of the product option value for gross and net modes. Prices are integer values and, in the database, they are stored in their normalized form. For example, `4EUR` is stored as `400`. If you do not define a price for a product option value, it is considered *inactive* for that specific currency and price mode. If a price is `0`, it is considered *free of charge*.| +| Gross price and Net price | Price values of the product option value for gross and net modes. Prices are integer values and, in the database, they are stored in their normalized form. For example, `4EUR` is stored as `400`. If you do not define a price for a product option value, it's considered *inactive* for that specific currency and price mode. If a price is `0`, it's considered *free of charge*.| | Group name | Option group name that's displayed on the Storefront. | | Option name | Option name that's displayed on the Storefront. | diff --git a/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/product-options/manage-product-options.md b/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/product-options/manage-product-options.md index ff6fb26dcc3..d15858a0977 100644 --- a/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/product-options/manage-product-options.md +++ b/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/product-options/manage-product-options.md @@ -48,7 +48,7 @@ The following table describes the attributes you enter and select while editing | Tax Set | Conditions under which the product option group is taxed. To learn how to create tax sets, see [Create tax sets](/docs/pbc/all/tax-management/{{page.version}}/base-shop/manage-in-the-back-office/create-tax-sets.html). | | Option name translation key | Glossary key for the product option value. You can enter this value only when [creating product options](/docs/pbc/all/product-information-management/{{page.version}}/marketplace/manage-in-the-back-office/product-options/create-product-options.html). | | SKU | Unique identifier of the product option value. You can enter this value only when [creating product options](/docs/pbc/all/product-information-management/{{page.version}}/marketplace/manage-in-the-back-office/product-options/create-product-options.html). | -| Gross price and Net price | Price values of the product option value for gross and net modes. Prices are integer values and, in the database, they are stored in their normalized form. For example, `4EUR` is stored as `400`. If you do not define a price for a product option value, it is considered *inactive* for that specific currency and price mode. If a price is `0`, it is considered *free of charge*.| +| Gross price and Net price | Price values of the product option value for gross and net modes. Prices are integer values and, in the database, they are stored in their normalized form. For example, `4EUR` is stored as `400`. If you do not define a price for a product option value, it's considered *inactive* for that specific currency and price mode. If a price is `0`, it's considered *free of charge*.| | Group name | Option group name that's displayed on the Storefront. | | Option name | Option name that's displayed on the Storefront. | diff --git a/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/products/create-product-variants.md b/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/products/create-product-variants.md index ddd278052cb..d9c7a1f803f 100644 --- a/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/products/create-product-variants.md +++ b/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-back-office/products/create-product-variants.md @@ -110,7 +110,7 @@ Once you select to discontinue the product, you can add a note about that on thi #### Product Alternatives tab -The only field available is **Add Product Alternative by Name or SKU**. Here it is enough to enter three characters of a product name or SKU to see the autosuggested product list. From one to many values can be selected. If there is no need to set up an alternative product, you can skip this tab. +The only field available is **Add Product Alternative by Name or SKU**. Here it's enough to enter three characters of a product name or SKU to see the autosuggested product list. From one to many values can be selected. If there is no need to set up an alternative product, you can skip this tab. **What's next?** diff --git a/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-merchant-portal/abstract-products/create-marketplace-abstract-products.md b/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-merchant-portal/abstract-products/create-marketplace-abstract-products.md index 0404d5b8e2c..50259cec17a 100644 --- a/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-merchant-portal/abstract-products/create-marketplace-abstract-products.md +++ b/docs/pbc/all/product-information-management/202311.0/marketplace/manage-in-the-merchant-portal/abstract-products/create-marketplace-abstract-products.md @@ -37,7 +37,7 @@ To create a new abstract product: {% info_block warningBox "Warning" %} - You can not save an abstract product unless it is accompanied by at least one concrete product. + You can not save an abstract product unless it's accompanied by at least one concrete product. {% endinfo_block %} diff --git a/docs/pbc/all/product-information-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-abstract-products.md b/docs/pbc/all/product-information-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-abstract-products.md index 24ab3763110..f0a8a99f5cb 100644 --- a/docs/pbc/all/product-information-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-abstract-products.md +++ b/docs/pbc/all/product-information-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-abstract-products.md @@ -1292,7 +1292,7 @@ To retrieve general information about an abstract product, send the request: "averageRating": null, "reviewCount": 0, "name": "Sony SW2 SmartWatch", - "description": "Anywhere. Any weather SmartWatch 2 is the wireless accessory that has something for everybody. If you are a busy communicator, you will appreciate being on top of everything. If you like to get out running, you can use SmartWatch as your phone remote. If it rains, you can keep on going. SmartWatch 2 can take the rain. If it is bright and sunny, SmartWatch 2 has an impressive sunlight-readable display. Take it anywhere. When you are using a wireless Bluetooth® headset for music, you can use SmartWatch 2 as a phone remote to make or receive calls. When a call comes in, you can see who’s calling in your SmartWatch display, press once to answer and enjoy hands-free calling at its easiest. You can also browse recent calls in your call log and use SmartWatch to initiate a call.", + "description": "Anywhere. Any weather SmartWatch 2 is the wireless accessory that has something for everybody. If you are a busy communicator, you will appreciate being on top of everything. If you like to get out running, you can use SmartWatch as your phone remote. If it rains, you can keep on going. SmartWatch 2 can take the rain. If it's bright and sunny, SmartWatch 2 has an impressive sunlight-readable display. Take it anywhere. When you are using a wireless Bluetooth® headset for music, you can use SmartWatch 2 as a phone remote to make or receive calls. When a call comes in, you can see who’s calling in your SmartWatch display, press once to answer and enjoy hands-free calling at its easiest. You can also browse recent calls in your call log and use SmartWatch to initiate a call.", "attributes": { "display_type": "LCD", "shape": "square", @@ -1356,7 +1356,7 @@ To retrieve general information about an abstract product, send the request: "averageRating": null, "reviewCount": 0, "name": "Sony SW2 SmartWatch", - "description": "Anywhere. Any weather SmartWatch 2 is the wireless accessory that has something for everybody. If you are a busy communicator, you will appreciate being on top of everything. If you like to get out running, you can use SmartWatch as your phone remote. If it rains, you can keep on going. SmartWatch 2 can take the rain. If it is bright and sunny, SmartWatch 2 has an impressive sunlight-readable display. Take it anywhere. When you are using a wireless Bluetooth® headset for music, you can use SmartWatch 2 as a phone remote to make or receive calls. When a call comes in, you can see who’s calling in your SmartWatch display, press once to answer and enjoy hands-free calling at its easiest. You can also browse recent calls in your call log and use SmartWatch to initiate a call.", + "description": "Anywhere. Any weather SmartWatch 2 is the wireless accessory that has something for everybody. If you are a busy communicator, you will appreciate being on top of everything. If you like to get out running, you can use SmartWatch as your phone remote. If it rains, you can keep on going. SmartWatch 2 can take the rain. If it's bright and sunny, SmartWatch 2 has an impressive sunlight-readable display. Take it anywhere. When you are using a wireless Bluetooth® headset for music, you can use SmartWatch 2 as a phone remote to make or receive calls. When a call comes in, you can see who’s calling in your SmartWatch display, press once to answer and enjoy hands-free calling at its easiest. You can also browse recent calls in your call log and use SmartWatch to initiate a call.", "attributes": { "display_type": "LCD", "shape": "square", @@ -1434,7 +1434,7 @@ To retrieve general information about an abstract product, send the request: "faxNumber": "+49 30 234567800", "legalInformation": { "terms": "

General Terms

(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.

(2) We do not collect information from visitors of our site or other details to help you with your experience.

Using your Information

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:

To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.

Protecting visitor information

Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.

", - "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", + "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.", "imprint": "

Spryker Systems GmbH

Julie-Wolfthorn-Straße 1
10115 Berlin
DE

Phone: +49 (30) 2084983 50
Email: info@spryker.com

Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310

", "dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data." }, diff --git a/docs/pbc/all/product-information-management/202311.0/marketplace/marketplace-product-options-feature-overview.md b/docs/pbc/all/product-information-management/202311.0/marketplace/marketplace-product-options-feature-overview.md index 3ef9a6ad272..2dabba8b255 100644 --- a/docs/pbc/all/product-information-management/202311.0/marketplace/marketplace-product-options-feature-overview.md +++ b/docs/pbc/all/product-information-management/202311.0/marketplace/marketplace-product-options-feature-overview.md @@ -40,7 +40,7 @@ Currently, you can create and manage general product options via the Back Office Product option groups created by merchants can have the following statuses: * *Waiting for approval*: The product option group was created by a merchant and waits for the Marketplace administrator's approval. This is the default status assigned to all Marketplace product options that do not have a different approval status set. -* *Approved*: The product option group was approved by the Marketplace administrator. Merchants can use it for their products and offers, so if it is [active](/docs/pbc/all/product-information-management/{{page.version}}/marketplace/manage-in-the-back-office/product-options/create-product-options.html#activating-a-product-option), the product option is displayed on the Storefront. +* *Approved*: The product option group was approved by the Marketplace administrator. Merchants can use it for their products and offers, so if it's [active](/docs/pbc/all/product-information-management/{{page.version}}/marketplace/manage-in-the-back-office/product-options/create-product-options.html#activating-a-product-option), the product option is displayed on the Storefront. * *Denied*: The Marketplace administrator rejected the product option, and merchants cannot use it for their products and offers. If they still use it, it will not be applied and will not be displayed on the Storefront. diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/domain-model-and-relationships/measurement-units-feature-module-relations.md b/docs/pbc/all/product-information-management/202404.0/base-shop/domain-model-and-relationships/measurement-units-feature-module-relations.md index b30441c108f..95a79c0687d 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/domain-model-and-relationships/measurement-units-feature-module-relations.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/domain-model-and-relationships/measurement-units-feature-module-relations.md @@ -13,9 +13,9 @@ The following schema illustrates relations between alternative products: ![module-relations](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Packaging+%26+Measurement+Units/Measurement+Units/Measurement+Units+Feature+Overview/product_units_relation.png) -* *conversion*—factor to convert a value from sales to the base unit. If it is *null*, the information is taken from the global conversions (the `MeasurementUnitConverter.php` file). -* *precision*—the ratio between a sales unit and a base unit. For example, a base unit is an *item*, and a user selects *kg* as a sales unit. +* *conversion*—factor to convert a value from sales to the base unit. If it's *null*, the information is taken from the global conversions (the `MeasurementUnitConverter.php` file). +* *precision*—the ratio between a sales unit and a base unit. For example, a base unit's an *item*, and a user selects *kg* as a sales unit. * `is_displayed`—if true, then the value is shown on the Storefront. -* `is_default`—if true, then the unit is shown as the default unit on the Storefront. +* `is_default`—if true, then the unit's shown as the default unit on the Storefront.
diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/alternative-products-feature-overview.md b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/alternative-products-feature-overview.md index f4dbceecb88..3f0eca1555f 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/alternative-products-feature-overview.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/alternative-products-feature-overview.md @@ -19,7 +19,7 @@ redirect_from: Suggesting product alternatives is a great way to ease the user’s product finding process. Instead of browsing the product catalog, product alternatives let customers jump from one product page to the next until they find a relevant item. -For marketplace relations, alternative products are useful because for a marketplace owner it is irrelevant from what merchant a buyer has bought a product. If a merchant does not have this product, the alternative product can be shown on the marketplace. +For marketplace relations, alternative products are useful because for a marketplace owner it's irrelevant from what merchant a buyer has bought a product. If a merchant does not have this product, the alternative product can be shown on the marketplace. A Back Office user can add product alternatives for both abstract and concrete products in **Catalog > Products**. diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/configurable-bundle-feature-overview.md b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/configurable-bundle-feature-overview.md index 1e4e2bc744c..fbc9241a450 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/configurable-bundle-feature-overview.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/configurable-bundle-feature-overview.md @@ -86,7 +86,7 @@ To learn how a Back Office User creates slots, see [Creating slots in configurab When a Storefront user configures a bundle, for each slot, they select a product from the provided product list. ![Slot Base Cabinet](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Product+Management/Configurable+Bundle/Slot+Base+Cabinet.png) -By default, it is not obligatory to select products for all the slots to order a configurable bundle. +By default, it's not obligatory to select products for all the slots to order a configurable bundle. Schematically, a configurable bundle looks as follows: ![Config Bundle Schema](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Product+Management/Configurable+Bundle/slots+scheme.png) @@ -197,7 +197,7 @@ The order looks as follows: * Product B x1 -If a configurable bundle contains non-splittable products and its quantity is above 1, it is not split. +If a configurable bundle contains non-splittable products and its quantity is above 1, it's not split. For example, a Storefront User places the order with the following item: diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/measurement-units-feature-overview.md b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/measurement-units-feature-overview.md index cdf75c42bb9..641d3f97aa6 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/measurement-units-feature-overview.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/measurement-units-feature-overview.md @@ -16,9 +16,9 @@ redirect_from: - /docs/pbc/all/product-information-management/202204.0/base-shop/feature-overviews/measurement-units-feature-overview.html --- -The *Measurement Units* feature lets you sell products by any unit of measure defined by the shop administrator. For example, apples can be offered in "Item" or "Kilogram", cables can be offered in "Centimeter", "Meter" or "Feet". To support alternate units of measure, there must be a base unit value relative to which all the internal conversions and calculations will be made. Such value is referred to as a base unit. The base unit is assigned to abstract products, and by default, it is "item"; however, it can be changed to any other unit. +The *Measurement Units* feature lets you sell products by any unit of measure defined by the shop administrator. For example, apples can be offered in "Item" or "Kilogram", cables can be offered in "Centimeter", "Meter" or "Feet". To support alternate units of measure, there must be a base unit value relative to which all the internal conversions and calculations will be made. Such value is referred to as a base unit. The base unit's assigned to abstract products, and by default, it's "item"; however, it can be changed to any other unit. -Besides the base unit, the shop owner can define *sales units*—alternate units of measure in which items will be offered in the shop. Sales units are assigned to concrete products, but if sales units are not defined, the *base unit* is used as a default sales unit. If there are several sales units and no default sales unit is defined, then the first unit to show will be the first in alphabetical order. +Besides the base unit, the shop owner can define *sales units*—alternate units of measure in which items will be offered in the shop. Sales units are assigned to concrete products, but if sales units are not defined, the *base unit* is used as a default sales unit. If there are several sales units and no default sales unit's defined, then the first unit to show will be the first in alphabetical order. The sales units are displayed on the product details page. You can define the sales units in the Administration Interface but choose not to display them on the webshop. Actually, sales units are only shown on the website but then immediately converted into the base unit, as internally, the system only works with the base units. @@ -30,11 +30,11 @@ For example, you might have bought a quintal of apples, but want to use kilogram {% endinfo_block %} -The shop owner can define if the conversion factor between base and sales units should be displayed on the webshop. If it is set to `true`, then: +The shop owner can define if the conversion factor between base and sales units should be displayed on the webshop. If it's set to `true`, then: | EXAMPLE | DISPLAY VALUE | PRODUCT DETAILS PAGE | | --- | --- | --- | -| The base unit is meter and the sales unit is feet | "**1 meter=3,048 feet**" is displayed under the drop-down field with measuring units on product details page | ![Quantity](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Packaging+%26+Measurement+Units/Measurement+Units/Measurement+Units+Feature+Overview/quantity.png)| +| The base unit's meter and the sales unit's feet | "**1 meter=3,048 feet**" is displayed under the drop-down field with measuring units on product details page | ![Quantity](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Packaging+%26+Measurement+Units/Measurement+Units/Measurement+Units+Feature+Overview/quantity.png)| On the cart page, the user sees quantity both in the base unit and sales unit. diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/packaging-units-feature-overview.md b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/packaging-units-feature-overview.md index 95f0ee39b15..82eb2d7d015 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/packaging-units-feature-overview.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/packaging-units-feature-overview.md @@ -39,7 +39,7 @@ redirect_from: The _Packaging Unit_ feature introduces a *packaging unit* that is a unit of measure used as packaging for a product. It allows including the amount of stock in a product a customer wants to buy. A shop owner can sell the same product in different packaging units—for example, apples can be sold as an "Item", a "Bag", or "Pallet" of apples. The "bag", "pallet", and "box" are referred to as *packaging unit types*. -Each packaging unit is defined on an abstract product level and is represented by one product variant—for example: +Each packaging unit's defined on an abstract product level and is represented by one product variant—for example: | ABSTRACT PRODUCT | CONCRETE PRODUCT / VARIANT | PACKAGING UNIT | | --- | --- | --- | @@ -95,7 +95,7 @@ For example, a packaging unit "bag" can be set to have "item" as a base unit and {% endinfo_block %} -The amount of items contained in a sales unit is referred to as *sales unit amount*. If a customer chooses a sales unit amount, which is in between two available amounts (because of amount restriction settings), a higher or lower amount must be selected. +The amount of items contained in a sales unit's referred to as *sales unit amount*. If a customer chooses a sales unit amount, which is in between two available amounts (because of amount restriction settings), a higher or lower amount must be selected. {% info_block infoBox "Info" %} diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-bundles-feature-overview.md b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-bundles-feature-overview.md index c653b115b8e..92cfda16849 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-bundles-feature-overview.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-bundles-feature-overview.md @@ -15,7 +15,7 @@ redirect_from: With the _Product Bundles_ feature you can tie individual items together and sell them as a package. As opposed to a set, in which products are loosely grouped, the items in a bundle are always sold together. You can choose to create a special bundle price to make the purchase more attractive. Since each bundle's product is still handled like an individual item in the Order Management Process, bundle availability is always calculated and displayed based on the item with the smallest available stock to avoid overselling. -A bundle represents two or more products, sold as a set; it is a distinct product that incorporates other concrete products. +A bundle represents two or more products, sold as a set; it's a distinct product that incorporates other concrete products. Example: ![Product bundle](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Product+Management/Product+Bundles/product_bundles.png) @@ -94,7 +94,7 @@ For example: If bundled items have quantity > 1 then it will be split as separate items in cart. -BundleProduct have price this price, it is distributed to whole bundled items. Overwriting original product price. If bundle have price 100, and there is 3 bundled products, each will get price 33,34,33 distributed, 34 is to cover rounding error. +BundleProduct have price this price, it's distributed to whole bundled items. Overwriting original product price. If bundle have price 100, and there is 3 bundled products, each will get price 33,34,33 distributed, 34 is to cover rounding error. ## Persisting when placing an order, end of checkout diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-feature-overview/discontinued-products-overview.md b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-feature-overview/discontinued-products-overview.md index 27c6fb5abe9..d3f4098b01d 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-feature-overview/discontinued-products-overview.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-feature-overview/discontinued-products-overview.md @@ -16,7 +16,7 @@ redirect_from: - /docs/pbc/all/product-information-management/202204.0/base-shop/feature-overviews/product-feature-overview/discontinued-products-overview.html --- -If a concrete product runs out of stock, it is tagged as out of stock and cannot be added to cart: +If a concrete product runs out of stock, it's tagged as out of stock and cannot be added to cart: ![Discontinued PDP](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Product+Management/Discontinued+Products/Discontinued+Products+Feature+Overview/discontinued-pdp-page.png) diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-feature-overview/product-attributes-overview.md b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-feature-overview/product-attributes-overview.md index d4d31d562a5..7065ac1b34d 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-feature-overview/product-attributes-overview.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-feature-overview/product-attributes-overview.md @@ -24,7 +24,7 @@ A developer can import [product attributes](/docs/pbc/all/product-information-ma ## Product attribute inheritance -A Back Office user can add product attributes to abstract and concrete products. If they add a product attribute to an abstract product, it is added to all its concrete products. If they add it to a concrete product, it's not added to the other concrete products. +A Back Office user can add product attributes to abstract and concrete products. If they add a product attribute to an abstract product, it's added to all its concrete products. If they add it to a concrete product, it's not added to the other concrete products. ## Declared attributes @@ -45,7 +45,7 @@ The Spryker Commerce OS product data model allows the creation of multiple produ For a product variant to be selectable on the Storefront, a value of one of its product attributes must be unique compared to the product attribute values of other variants of the same abstract product. -When creating a product attribute, a Back Office user selects if it is a super attribute. +When creating a product attribute, a Back Office user selects if it's a super attribute. Product variants of the same abstract product can differ by different super attributes. Check the following super attribute examples: diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-labels-feature-overview.md b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-labels-feature-overview.md index 76f2f94f66b..9b0dca3389f 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-labels-feature-overview.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-labels-feature-overview.md @@ -135,7 +135,7 @@ A product label can have the following statuses: * Active * Inactive -If a product label is active, it is displayed on all the product pages it is applied to. If a product label is inactive, it is still applied to the selected product, but it is not displayed on the respective product pages. This might be useful when you want to prepare for an event beforehand. You can create an inactive product label and apply it to the needed products. When the event starts, you just need to activate the label to show it on all the product pages it is applied to. +If a product label is active, it's displayed on all the product pages it's applied to. If a product label is inactive, it's still applied to the selected product, but it's not displayed on the respective product pages. This might be useful when you want to prepare for an event beforehand. You can create an inactive product label and apply it to the needed products. When the event starts, you just need to activate the label to show it on all the product pages it's applied to. To learn how a Back Office user can activate and deactivate product labels in the Back Office, see [Edit product labels](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/manage-in-the-back-office/product-labels/edit-product-labels.html) diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-options-feature-overview.md b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-options-feature-overview.md index e26edac1e7b..084cb1004df 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-options-feature-overview.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/feature-overviews/product-options-feature-overview.md @@ -1,6 +1,6 @@ --- title: Product Options feature overview -description: The document describes the creation process of product options and how it is managed in the Back Office +description: The document describes the creation process of product options and how it's managed in the Back Office last_updated: Jul 26, 2021 template: concept-topic-template originalLink: https://documentation.spryker.com/2021080/docs/product-options-feature-overview diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category-template.csv.md b/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category-template.csv.md index 15a53762bd2..2970eacd286 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category-template.csv.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category-template.csv.md @@ -23,7 +23,7 @@ This document describes the `category_template.csv` file to configure category t | PARAMETER | REQUIRED | TYPE | REQUIREMENTS OR COMMENTS | DESCRIPTION | | --- | --- | --- | --- | --- | | template_name | ✓ | String | | Name of the category template. | -| template_path | ✓ | String | | Must be a valid path to a twig file and it is a unique field, for example, the file cannot have more than one line with the same template path. | Path of the category template. | +| template_path | ✓ | String | | Must be a valid path to a twig file and it's a unique field, for example, the file cannot have more than one line with the same template path. | Path of the category template. | ## Import template file and content example diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category.csv.md b/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category.csv.md index 3947245ecfc..56a6d798773 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category.csv.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/categories-data-import/import-file-details-category.csv.md @@ -33,12 +33,12 @@ This document describes the `category.csv` file to configure [categories](/docs/ | meta_title.{ANY_LOCALE_NAME}
Example value: *meta_title.de_DE* | | String | | Title in the specified location (DE for our example). | | meta_description.{ANY_LOCALE_NAME}
Example value: *meta_description.de_DE* | | String | | Description in the specified location (DE for our example). | | meta_keywords.{ANY_LOCALE_NAME}
Example value: *meta_keywords.de_DE* | | String | | Keywords in the specified location (DE for our example). | -| is_active | | Boolean | True (1), if it is active. False (0), if it is not active. | Indicates if the category is active or not. | -| is_in_menu | | Boolean | True (1), if it is in the menu. False (0), if it is not in the menu. | Indicates if the category is in the menu or not. | -| is_clickable | | Boolean | True (1), if it is clickable. False (0), if it is not clickable. | Indicates if the category is clickable or not. | -| is_searchable | | Boolean | True (1), if it is searchable. False (0), if it is not searchable. | Indicates if it is a searchable category in the menu or not. | -| is_root | | Boolean | True (1), if it is root. False (0), if it is not root. | Indicates if it is a root category or not. | -| is_main | | Boolean | True (1), if it is main. False (0), if it is not main. | Indicates if it is a main category or not. | +| is_active | | Boolean | True (1), if it's active. False (0), if it's not active. | Indicates if the category is active or not. | +| is_in_menu | | Boolean | True (1), if it's in the menu. False (0), if it's not in the menu. | Indicates if the category is in the menu or not. | +| is_clickable | | Boolean | True (1), if it's clickable. False (0), if it's not clickable. | Indicates if the category is clickable or not. | +| is_searchable | | Boolean | True (1), if it's searchable. False (0), if it's not searchable. | Indicates if it's a searchable category in the menu or not. | +| is_root | | Boolean | True (1), if it's root. False (0), if it's not root. | Indicates if it's a root category or not. | +| is_main | | Boolean | True (1), if it's main. False (0), if it's not main. | Indicates if it's a main category or not. | | node_order | | Integer | | Order of the category node. | | template_name | | String | | Template name of the category. | | category_image_name.{ANY_LOCALE_NAME} | | String | | Name of the image for the category in the locale. | diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-abstract.csv.md b/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-abstract.csv.md index 8aaa2ad735b..468d91e5c1a 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-abstract.csv.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-abstract.csv.md @@ -51,7 +51,7 @@ This document describes the `product_abstract.csv` file to configure [Abstract P | new_from | | Date | | To be considered a new product from this presented date. | | new_to | | String | | To be considered a new product until this presented date. | | avalara_tax_code | | String | | [Avalara tax code](/docs/pbc/all/tax-management/{{site.version}}/base-shop/tax-feature-overview.html#avalara-system-for-automated-tax-compliance) for automated tax calculation. Add this field if Avalara is used for tax management. | - @@ -62,7 +62,7 @@ This document describes the `product_abstract.csv` file to configure [Abstract P ## Additional information -For each attribute, where N is a number starting in 1, it is mandatory to have both fields: +For each attribute, where N is a number starting in 1, it's mandatory to have both fields: * `attribute_key_N` * `value_N` diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md b/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md index 92c7de83ffd..e0330a08d6e 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md @@ -22,7 +22,7 @@ This document describes the `product_attribute_key.csv` file to configure [Produ | PARAMETER | REQUIRED | TYPE | REQUIREMENTS OR COMMENTS | DESCRIPTION | | --- | --- | --- | --- | --- | | attribute_key | ✓ | String | Must be unique. | Product attribute key name. | -| is_super | | Boolean | If empty it will be imported as *False* (0).
False = 0 = It is not a super attribute.
True = 1 = It is a super attribute. | Indicates whether it is a super attribute or not. | +| is_super | | Boolean | If empty it will be imported as *False* (0).
False = 0 = It is not a super attribute.
True = 1 = It is a super attribute. | Indicates whether it's a super attribute or not. | ## Import template file and content example diff --git a/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md b/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md index 76dfc9c07b0..d57c5d24ed8 100644 --- a/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md +++ b/docs/pbc/all/product-information-management/202404.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md @@ -39,7 +39,7 @@ This file has the following dependency: [ product_abstract.csv](/docs/pbc/all/pr | description.{ANY_LOCALE_NAME}
Example value: *description.en_US* | | String | | Product description, translated in the specified locale (US for our example). | | is_searchable.{ANY_LOCALE_NAME}
Example value: *is_searchable.en_US*| | Integer | | Indicates if the product is searchable in the specified locale (US for our example). | | bundled | | String | | Products SKUs separated by comas, that are part of the bundle. | -| is_quantity_splittable | | Boolean |If it is empty, will be *False*.
False = 0
True = 1 | Defines if the product is [splittable](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) or not. | +| is_quantity_splittable | | Boolean |If it's empty, will be *False*.
False = 0
True = 1 | Defines if the product is [splittable](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) or not. | @@ -63,7 +63,7 @@ This document describes the `product_abstract.csv` file to configure [Abstract P ## Additional information -For each attribute, where N is a number starting in 1, it is mandatory to have both fields: +For each attribute, where N is a number starting in 1, it's mandatory to have both fields: * `attribute_key_N` * `value_N` diff --git a/docs/pbc/all/product-information-management/202410.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md b/docs/pbc/all/product-information-management/202410.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md index 30f02d5ab38..f93c7e46c62 100644 --- a/docs/pbc/all/product-information-management/202410.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md +++ b/docs/pbc/all/product-information-management/202410.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-attribute-key.csv.md @@ -23,7 +23,7 @@ This document describes the `product_attribute_key.csv` file to configure [Produ | PARAMETER | REQUIRED | TYPE | REQUIREMENTS OR COMMENTS | DESCRIPTION | | --- | --- | --- | --- | --- | | attribute_key | ✓ | String | Must be unique. | Product attribute key name. | -| is_super | | Boolean | If empty it will be imported as *False* (0).
False = 0 = It is not a super attribute.
True = 1 = It is a super attribute. | Indicates whether it is a super attribute or not. | +| is_super | | Boolean | If empty it will be imported as *False* (0).
False = 0 = It is not a super attribute.
True = 1 = It is a super attribute. | Indicates whether it's a super attribute or not. | ## Import template file and content example diff --git a/docs/pbc/all/product-information-management/202410.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md b/docs/pbc/all/product-information-management/202410.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md index 33ef252f8b0..7567222cd8d 100644 --- a/docs/pbc/all/product-information-management/202410.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md +++ b/docs/pbc/all/product-information-management/202410.0/base-shop/import-and-export-data/products-data-import/import-file-details-product-concrete.csv.md @@ -40,7 +40,7 @@ This file has the following dependency: [ product_abstract.csv](/docs/pbc/all/pr | description.{ANY_LOCALE_NAME}
Example value: *description.en_US* | | String | | Product description, translated in the specified locale (US for our example). | | is_searchable.{ANY_LOCALE_NAME}
Example value: *is_searchable.en_US*| | Integer | | Indicates if the product is searchable in the specified locale (US for our example). | | bundled | | String | | Products SKUs separated by comas, that are part of the bundle. | -| is_quantity_splittable | | Boolean |If it is empty, will be *False*.
False = 0
True = 1 | Defines if the product is [splittable](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) or not. | +| is_quantity_splittable | | Boolean |If it's empty, will be *False*.
False = 0
True = 1 | Defines if the product is [splittable](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) or not. |