diff --git a/_data/sidebars/pbc_all_sidebar.yml b/_data/sidebars/pbc_all_sidebar.yml index bfd17d7e5ee..6ef5c7b0980 100644 --- a/_data/sidebars/pbc_all_sidebar.yml +++ b/_data/sidebars/pbc_all_sidebar.yml @@ -3549,6 +3549,27 @@ entries: url: /docs/pbc/all/service-point-management/unified-commerce/service-points-customer-account-management-feature-overview.html - title: Service Points + Order Management feature overview url: /docs/pbc/all/service-point-management/unified-commerce/service-points-order-management-feature.html + - title: Click & Collect domains + url: /docs/pbc/all/service-point-management/unified-commerce/click-collect-domains/click-collect-domains.html + nested: + - title: Marketplace Merchant Product Offer Service Point subdomain + url: /docs/pbc/all/service-point-management/unified-commerce/click-collect-domains/click-collect-marketplace-merchant-product-offer-service-point-availability-subdomain.html + - title: Product Offer Service Point Availability subdomain + url: /docs/pbc/all/service-point-management/unified-commerce/click-collect-domains/click-collect-product-offer-service-point-availability-subdomain.html + - title: Product Offer Service Point subdomain + url: /docs/pbc/all/service-point-management/unified-commerce/click-collect-domains/click-collect-product-offer-service-point-subdomain.html + - title: Product Offer Shipment Type Availability subdomain + url: /docs/pbc/all/service-point-management/unified-commerce/click-collect-domains/click-collect-product-offer-shipment-type-availability-subdomain.html + - title: Product Offer Shipment Type subdomain + url: /docs/pbc/all/service-point-management/unified-commerce/click-collect-domains/click-collect-product-offer-shipment-type-subdomain.html + - title: Service Point Cart subdomain + url: /docs/pbc/all/service-point-management/unified-commerce/click-collect-domains/click-collect-service-point-cart-subdomain.html + - title: Service Points domain + url: /docs/pbc/all/service-point-management/unified-commerce/click-collect-domains/click-collect-service-points-domain.html + - title: Shipment Type Service Point subdomain + url: /docs/pbc/all/service-point-management/unified-commerce/click-collect-domains/click-collect-shipment-type-service-point-subdomain.html + - title: Shipment Types domain + url: /docs/pbc/all/service-point-management/unified-commerce/click-collect-domains/click-collect-shipment-types-domain.html - title: Enable Click & Collect url: /docs/pbc/all/service-point-management/unified-commerce/enable-click-collect.html - title: Install features diff --git a/_includes/pbc/all/install-features/202204.0/install-the-navigation-module.md b/_includes/pbc/all/install-features/202204.0/install-the-navigation-module.md index 14434dc733f..54e6f58818a 100644 --- a/_includes/pbc/all/install-features/202204.0/install-the-navigation-module.md +++ b/_includes/pbc/all/install-features/202204.0/install-the-navigation-module.md @@ -56,7 +56,7 @@ class CollectorDependencyProvider extends SprykerCollectorDependencyProvider } ``` -### Data Setup +### Data setup You should now be able to manage navigation menus from Zed UI, and the collectors should also be able to export the navigation menus to the KV storage. This is a good time to implement an installer in your project to install a selection of frequently used navigation menus. diff --git a/_includes/pbc/all/install-features/202212.0/install-the-navigation-module.md b/_includes/pbc/all/install-features/202212.0/install-the-navigation-module.md index 14434dc733f..54e6f58818a 100644 --- a/_includes/pbc/all/install-features/202212.0/install-the-navigation-module.md +++ b/_includes/pbc/all/install-features/202212.0/install-the-navigation-module.md @@ -56,7 +56,7 @@ class CollectorDependencyProvider extends SprykerCollectorDependencyProvider } ``` -### Data Setup +### Data setup You should now be able to manage navigation menus from Zed UI, and the collectors should also be able to export the navigation menus to the KV storage. This is a good time to implement an installer in your project to install a selection of frequently used navigation menus. diff --git a/_includes/pbc/all/install-features/202307.0/install-the-navigation-module.md b/_includes/pbc/all/install-features/202307.0/install-the-navigation-module.md index 14434dc733f..54e6f58818a 100644 --- a/_includes/pbc/all/install-features/202307.0/install-the-navigation-module.md +++ b/_includes/pbc/all/install-features/202307.0/install-the-navigation-module.md @@ -56,7 +56,7 @@ class CollectorDependencyProvider extends SprykerCollectorDependencyProvider } ``` -### Data Setup +### Data setup You should now be able to manage navigation menus from Zed UI, and the collectors should also be able to export the navigation menus to the KV storage. This is a good time to implement an installer in your project to install a selection of frequently used navigation menus. diff --git a/_includes/pbc/all/install-features/202311.0/install-the-navigation-module.md b/_includes/pbc/all/install-features/202311.0/install-the-navigation-module.md index 14434dc733f..54e6f58818a 100644 --- a/_includes/pbc/all/install-features/202311.0/install-the-navigation-module.md +++ b/_includes/pbc/all/install-features/202311.0/install-the-navigation-module.md @@ -56,7 +56,7 @@ class CollectorDependencyProvider extends SprykerCollectorDependencyProvider } ``` -### Data Setup +### Data setup You should now be able to manage navigation menus from Zed UI, and the collectors should also be able to export the navigation menus to the KV storage. This is a good time to implement an installer in your project to install a selection of frequently used navigation menus. diff --git a/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/manage-shipment-types/glue-api-retrieve-shipment-types.md b/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/manage-shipment-types/glue-api-retrieve-shipment-types.md index c99cea8e235..512242493b8 100644 --- a/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/manage-shipment-types/glue-api-retrieve-shipment-types.md +++ b/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/manage-shipment-types/glue-api-retrieve-shipment-types.md @@ -79,7 +79,7 @@ This endpoint lets you retrieve shipment types. } ``` -
+
Storefront: Retrieve shipment types diff --git a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md index 1f401c36443..043dd7ee76c 100644 --- a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md +++ b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md @@ -14,7 +14,7 @@ This endpoint lets you delete push notification providers. ## Retrieve push notification providers *** -`DELETE` **{% raw %}*{{backend_url}}*{% endraw %}/push-notification-providers/*{% raw %}{{push_notification_provider_id}}{% endraw %}*** +`DELETE` **{% raw %}*{{backend_url}}*{% endraw %}/push-notification-providers/*{% raw %}*{{push_notification_provider_id}}*{% endraw %}** *** diff --git a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md index 017e1c6569d..17050dac690 100644 --- a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md +++ b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md @@ -80,7 +80,7 @@ Request sample: `GET https://glue-backend.de.b2c.demo-spryker.com/push-notificat *** -`GET` **{% raw %}*{{backend_url}}*{% endraw %}/push-notification-providers/*{% raw %}{{push_notification_provider_id}}{% endraw %}*** +`GET` **{% raw %}*{{backend_url}}*{% endraw %}/push-notification-providers/*{% raw %}*{{push_notification_provider_id}}{% endraw %}*** *** diff --git a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md index 1e04d87a2b2..4609a22574b 100644 --- a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md +++ b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md @@ -14,7 +14,7 @@ This endpoint lets you update push notification providers. ## Retrieve push notification providers *** -`PATCH` **{% raw %}*{{backend_url}}*{% endraw %}/push-notification-providers/*{% raw %}{{push_notification_provider_id}}{% endraw %}*** +`PATCH` **{% raw %}*{{backend_url}}*{% endraw %}/push-notification-providers/{% raw %}*{{push_notification_provider_id}}*{% endraw %}** *** diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-domains.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-domains.md new file mode 100644 index 00000000000..7c634901a4c --- /dev/null +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-domains.md @@ -0,0 +1,93 @@ +--- +title: Click & Collect domains +last_updated: Sep 26, 2023 +description: Learn about the domain model, database, and other technical details of Click & Collect. +template: concept-topic-template +--- + +Click and Collect business models refers to a retail strategy where customers make purchases online and then collect their ordered products from a physical store or a designated pickup location. This model combines the convenience of online shopping with the immediacy of in-store pickup. + +To implement this functionality effectively, retailers create product offers in service points, ensuring that the inventory reflects available products accurately and that items are ready for customers to pick them up. Furthermore, shipment types need to be configured to manage and streamline both delivery and pickup options. Delivery refers to orders sent directly to the customer's address, while pickup refers to the collection of products by the customers at the service points. + +## Service points + +* A *service point* is a physical location where services are provided. Depending on the services provided, there can be different kinds of service points, like a warehouse or a physical store. The definition of a service point ultimately depends on the services it provides. + +* A *Service point address* is the address of a location where customers can pick up their orders. For example, if a customer selects a locker as a service point to pick up their order, they will be given the address of a specific locker location to pick up their order from. + +* A *service type* is a classification of services that a business offers to its customers. Service types are determined by the nature of the business. Service type examples: + * Pickup service + * Return service + * Rental service + * Repair service + +* A *service* represents a specific service type that is provided at a specific service point. For example, a pickup service at a retail location located at Julie-Wolfthorn-Straße 1, 10115, Berlin. + + +## Shipment type + +A *shipment type* is a way in which a customer receives an order after placing it. Shipment type examples: +* Home delivery: products are delivered to the customer's residence. +* In-store pickup: customer places an order online and picks it up at a selected physical store. +* Curbside pickup: customer places an order online and drives the the selected physical store. They park at a designated area, and the store's associate brings out the order directly to the car. +* Locker pickup: customer places an order online and picks it up from a selected secure locker using a key or code provided by the store. + +## Domain model + +
+ + +The entities and their relationships as they appear in the diagram: + +| ENTITY | RELATIONSHIP | RELATIONSHIP TYPE | +| - | - | - | +| Store | Relates to Service Point | many-to-many | +| Store | Relates to Shipment Type | many-to-many | +| Merchant | Relates to Product Offer | one-to-many | +| Service point | Has a Service Point Address | 1-to-1 | +| Service point | Relates to Sales Order through Sales Order Item | one-to-many | +| Service point | Has a Service | one-to-many | +| Service point | Has a Store | many-to-many | +| Service | Has a Service Type | many-to-one | +| Service | Relates to Product Offer | many-to-many | +| Service type | Relates to a Service | one-to-many | +| Service type | Relates to Shipment Type | one-to-many | +| Shipment | Relates to Shipping Method | one-to-many | +| Shipment | Relates to Product Offer | many-to-many | +| Shipment | Relates to Sales Shipment | one-to-many | +| Shipment | Has a Store | many-to-many | +| Product offer | Relates to Product | many-to-one | +| Product offer | Relates to Stock (Warehouse) | many-to-one | +| Product | Relates to Product Price | one-to-many | +| Product | Relates to Product Stock | one-to-many | +| Product | Has a Product Offer | one-to-many | +| Sales order | Has Sales Order Item | one-to-many | +| Sales order | Relates to Sales Shipment | one-to-many | +| Sales order item | Has a Sales Shipment | many-to-one | +| Stock (warehouse) | Has Product Offer Stock | one-to-many | +| Stock (warehouse) | Has Product Stock | one-to-many | + +The relationships indicate how entities interact with each other. For example, a Store can have multiple Service Points, a Merchant can offer various Product Offers, and each Product Offer can be linked to multiple Products. + +To show the introduced changes and extensions, new entities and relations are painted in green, and existing ones are painted in white. + +## Entity-relationship diagram + +The entity-relationship diagram shows how domain entities are mapped to database tables. + +
+ + + +## Domains and subdomains + +- [Service Point](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/click-collect-domains/click-collect-service-points-domain.html) + - [Service Point Cart](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/click-collect-domains/click-collect-service-point-cart-subdomain.html) +- [Shipment Type](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/click-collect-domains/click-collect-shipment-types-domain.html) + - [Shipment Type Service Point](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/click-collect-domains/click-collect-shipment-type-service-point-subdomain.html) +- Product Offer + - [Product Offer Service Point](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/click-collect-domains/click-collect-product-offer-service-point-subdomain.html) + - [Product Offer Service Point Availability](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/click-collect-domains/click-collect-product-offer-service-point-availability-subdomain.html) + - [Marketplace Merchant Product Offer Service Point Availability](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/click-collect-domains/click-collect-marketplace-merchant-product-offer-service-point-availability-subdomain.html) + - [Product Offer Shipment Type](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/click-collect-domains/click-collect-product-offer-shipment-type-subdomain.html) + - [Product Offer Shipment Type Availability](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/click-collect-domains/click-collect-product-offer-shipment-type-availability-subdomain.html) diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-marketplace-merchant-product-offer-service-point-availability-subdomain.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-marketplace-merchant-product-offer-service-point-availability-subdomain.md new file mode 100644 index 00000000000..b7b0f63994d --- /dev/null +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-marketplace-merchant-product-offer-service-point-availability-subdomain.md @@ -0,0 +1,20 @@ +--- +title: "Click & Collect: Marketplace Merchant Product Offer Service Point subdomain" +last_updated: Nov 02, 2023 +description: The Marketplace Merchant Product Offer Service Point Availability subdomain facilitates the calculation of merchant product availability at service points. +template: concept-topic-template +--- + +The Marketplace Merchant Product Offer Service Point Availability subdomain is used to calculate merchant product availability at service points. + +## Installation + +[Marketplace Merchant Product Offer Service Points Availability feature](/docs/pbc/all/offer-management/{{page.version}}/unified-commerce/install-features/install-the-marketplace-merchant-product-offer-service-points-availability-feature.html) + +## Modules + +| MODULE | EXPECTED DIRECTORY | +|-------------------------------------------------------|------------------------------------------------------------------------------| +| MerchantProductOfferServicePointAvailability | vendor/spryker/merchant-product-offer-service-point-availability | +| MerchantProductOfferServicePointAvailabilitiesRestApi | vendor/spryker/merchant-product-offer-service-point-availabilities-rest-api | +| MerchantProductOfferServicePointAvailabilityWidget | vendor/spryker-shop/merchant-product-offer-service-point-availability-widget | diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-service-point-availability-subdomain.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-service-point-availability-subdomain.md new file mode 100644 index 00000000000..32d109d7870 --- /dev/null +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-service-point-availability-subdomain.md @@ -0,0 +1,38 @@ +--- +title: "Click & Collect: Product Offer Service Point Availability subdomain" +last_updated: Nov 02, 2023 +description: The Product Offer Service Point Availability subdomain provides the extension points for calculating and filtering data related to the availability of a product offer at a service point. +template: concept-topic-template +--- + +The Product Offer Service Point Availability subdomain is used to calculate product availability at service points. + +## Installation + +[Install the Product Offer Service Points Availability feature](/docs/pbc/all/offer-management/{{page.version}}/unified-commerce/install-features/install-the-product-offer-service-points-availability-feature.html) + +## Modules + +| MODULE | EXPECTED DIRECTORY | +|----------------------------------------------------------------|--------------------------------------------------------------------------------------| +| ProductOfferServicePointAvailabilitiesRestApi | vendor/spryker/product-offer-service-point-availabilities-rest-api | +| ProductOfferServicePointAvailability | vendor/spryker/product-offer-service-point-availability | +| ProductOfferServicePointAvailabilityCalculatorStorage | vendor/spryker/product-offer-service-point-availability-calculator-storage | +| ProductOfferServicePointAvailabilityCalculatorStorageExtension | vendor/spryker/product-offer-service-point-availability-calculator-storage-extension | +| ProductOfferServicePointAvailabilityStorage | vendor/spryker/product-offer-service-point-availability-storage | +| ProductOfferServicePointAvailabilityStorageExtension | vendor/spryker/product-offer-service-point-availability-storage-extension | + +## Extension point for calculating the availability of a product offer at a service point + +The plugin is used to calculate product offer availability at the service point based on specific needs: `\Spryker\Client\ProductOfferServicePointAvailabilityCalculatorStorageExtension\Dependency\Plugin\ProductOfferServicePointAvailabilityCalculatorStrategyPluginInterface`. + +The following example plugin calculates product offer availabilities per service point for each item in the request based on the provided conditions: +`\Spryker\Client\ClickAndCollectExample\Plugin\ExampleClickAndCollectProductOfferServicePointAvailabilityCalculatorStrategyPlugin`. + + +## Extension point for filtering data about the availability of a product offer at a service point + +Provides the ability to filter product offer service point availability collection by a provided criteria. The plugin gets executed after a list of `ProductOfferServicePointAvailabilityResponseItemTransfer` is created: `\Spryker\Client\ProductOfferServicePointAvailabilityStorageExtension\Dependency\Plugin\ProductOfferServicePointAvailabilityFilterPluginInterface`. + + +The following example plugin filters product offer availability data at the service point by shipment type if it exists in the criteria of the availability request: `\Spryker\Client\ProductOfferShipmentTypeAvailabilityStorage\Plugin\ProductOfferServicePointAvailabilityStorage\ShipmentTypeProductOfferServicePointAvailabilityFilterPlugin`. diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-service-point-subdomain.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-service-point-subdomain.md new file mode 100644 index 00000000000..dabed62e824 --- /dev/null +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-service-point-subdomain.md @@ -0,0 +1,41 @@ +--- +title: "Click & Collect: Product Offer Service Point subdomain" +last_updated: Nov 02, 2023 +description: The Product Offer Service Point subdomain establishes the connection between product offers and service points. +template: concept-topic-template +--- + + +The Product Offer Service Point subdomain refers to the connection between product offers and service points. + +## Installation + +[Install the Product Offer Service Points feature](/docs/pbc/all/offer-management/{{page.version}}/unified-commerce/install-features/install-the-product-offer-service-points-feature.html) + +## Modules + +| MODULE | EXPECTED DIRECTORY | +|----------------------------------------------------------------|--------------------------------------------------------------------------------------| +| ProductOfferServicePoint | vendor/spryker/product-offer-service-point | +| ProductOfferServicePointAvailabilitiesRestApi | vendor/spryker/product-offer-service-point-availabilities-rest-api | +| ProductOfferServicePointAvailability | vendor/spryker/product-offer-service-point-availability | +| ProductOfferServicePointAvailabilityCalculatorStorage | vendor/spryker/product-offer-service-point-availability-calculator-storage | +| ProductOfferServicePointAvailabilityCalculatorStorageExtension | vendor/spryker/product-offer-service-point-availability-calculator-storage-extension | +| ProductOfferServicePointAvailabilityStorage | vendor/spryker/product-offer-service-point-availability-storage | +| ProductOfferServicePointAvailabilityStorageExtension | vendor/spryker/product-offer-service-point-availability-storage-extension | +| ProductOfferServicePointDataImport | vendor/spryker/product-offer-service-point-data-import | +| ProductOfferServicePointGui | vendor/spryker/product-offer-service-point-gui | +| ProductOfferServicePointMerchantPortalGui | vendor/spryker/product-offer-service-point-merchant-portal-gui | +| ProductOfferServicePointStorage | vendor/spryker/product-offer-service-point-storage | +| ProductOfferServicePointStorageExtension | vendor/spryker/product-offer-service-point-storage-extension | +| ProductOfferServicePointAvailabilityWidget | vendor/spryker-shop/product-offer-service-point-availability-widget | + +## Data setup + +The `ProductOfferServicePointDataImport` module lets you import the relationships between product offers and service points. + +## Extension point for filtering services assigned to the product offers before publishing them to Storage + +This extension point provides the ability to filter the Product Offer Service collection before publishing it to storage: `\Spryker\Zed\ProductOfferServicePointStorageExtension\Dependency\Plugin\ProductOfferServiceCollectionStorageFilterPluginInterface`. + +The following example plugin filters the product offer services collection by active and approved merchants: `\Spryker\Zed\MerchantProductOfferStorage\Communication\Plugin\ProductOfferServicePointStorage\MerchantProductOfferServiceStorageFilterPlugin`. diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-shipment-type-availability-subdomain.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-shipment-type-availability-subdomain.md new file mode 100644 index 00000000000..d17a21433aa --- /dev/null +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-shipment-type-availability-subdomain.md @@ -0,0 +1,19 @@ +--- +title: "Click & Collect: Product Offer Shipment Type Availability subdomain" +last_updated: Nov 02, 2023 +description: The Product Offer Shipment Type Availability subdomain enables the availability calculation. +template: concept-topic-template +--- + +The Product Offer Shipment Type Availability subdomain focuses on the availability calculation. + +## Installation + +[Install the Product Offer Shipment Availability feature](/docs/pbc/all/offer-management/{{page.version}}/marketplace/install-and-upgrade/install-features/install-the-product-offer-shipment-availability-feature.html) + +## Modules + +| MODULE | EXPECTED DIRECTORY | +|---------------------------------------------|-----------------------------------------------------------------| +| ProductOfferShipmentTypeAvailability | vendor/spryker/product-offer-shipment-type-availability | +| ProductOfferShipmentTypeAvailabilityStorage | vendor/spryker/product-offer-shipment-type-availability-storage | diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-shipment-type-subdomain.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-shipment-type-subdomain.md new file mode 100644 index 00000000000..880397e35a5 --- /dev/null +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-product-offer-shipment-type-subdomain.md @@ -0,0 +1,35 @@ +--- +title: "Click & Collect: Product Offer Shipment Type subdomain" +last_updated: Nov 02, 2023 +description: The Product Offer Shipment Type subdomain establishes the connection between product offers and shipment types. + +template: concept-topic-template +--- + +The Product Offer Shipment Type subdomain establishes the connection between product offers and shipment types. + +## Installation + +[Install the Product Offer Shipment feature](/docs/pbc/all/offer-management/{{page.version}}/marketplace/install-and-upgrade/install-features/install-the-product-offer-shipment-feature.html) + +## Modules + +| MODULE | EXPECTED DIRECTORY | +|---------------------------------------------------------|------------------------------------------------------------------------------| +| ProductOfferShipmentType | vendor/spryker/product-offer-shipment-type | +| ProductOfferShipmentTypeAvailability | vendor/spryker/product-offer-shipment-type-availability | +| ProductOfferShipmentTypeDataImport | vendor/spryker/product-offer-shipment-type-data-import | +| ProductOfferShipmentTypeGui | vendor/spryker/product-offer-shipment-type-gui | +| ProductOfferShipmentTypeMerchantPortalGui | vendor/spryker/product-offer-shipment-type-merchant-portal-gui | +| ProductOfferShipmentTypeStorage | vendor/spryker/product-offer-shipment-type-storage | +| ProductOfferShipmentTypeStorageExtension | vendor/spryker/product-offer-shipment-type-storage-extension | + +## Data setup + +The `ProductOfferShipmentTypeDataImport` module lets you import the relationships between shipment types and product offers. + +## Extension point for filtering shipment types assigned to product offers before publishing them to the Storage + +This extension point provides the ability to filter the product offer shipment type collection before publishing it to storage :`\Spryker\Zed\ProductOfferShipmentTypeStorageExtension\Dependency\Plugin\ProductOfferShipmentTypeStorageFilterPluginInterface`. + +The following example plugin filters out `ProductOfferShipmentTypeCollectionTransfer.productOfferShipmentTypes` with product offers from inactive merchants: `\Spryker\Zed\MerchantProductOfferStorage\Communication\Plugin\ProductOfferShipmentTypeStorage\MerchantProductOfferShipmentTypeStorageFilterPlugin`. diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-service-point-cart-subdomain.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-service-point-cart-subdomain.md new file mode 100644 index 00000000000..6efca314238 --- /dev/null +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-service-point-cart-subdomain.md @@ -0,0 +1,120 @@ +--- +title: "Click & Collect: Service Point Cart subdomain" +last_updated: Nov 02, 2023 +description: The Service Point Cart subdomain focuses on the validation of service points and the replacement of line items in shopping carts. +template: concept-topic-template +--- + +The Service Point Cart subdomain enables you to validate service points and replace line items within a shopping cart. + +## Installation + +[Install the Service Points Cart feature](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/install-features/install-the-service-points-cart-feature.html) + +## Modules + +| MODULE | EXPECTED DIRECTORY | +|-----------------------------|------------------------------------------------| +| ServicePointCart | vendor/spryker/service-point-cart | +| ServicePointCartExtension | vendor/spryker/service-point-cart-extension | +| ServicePointCartsRestApi | vendor/spryker/service-point-carts-rest-api | + +## Extension point that allows for the implementation of item replacement strategies in the cart during checkout + +The following extension point is used to implement custom strategies for replacing items in the cart during checkout: `\Spryker\Zed\ServicePointCartExtension\Dependency\Plugin\ServicePointQuoteItemReplaceStrategyPluginInterface`. + +Implementation example: `\Spryker\Zed\ClickAndCollectExample\Communication\Plugin\ServicePointCart\ClickAndCollectExampleServicePointQuoteItemReplaceStrategyPlugin`. + +This example replacement strategy substitutes a product offer with another one based on updated information about the service point and shipment type in the shopping cart. + +At the project level, extend this capability to support more intricate scenarios, such as the following: + +1. Receiving information from external systems about the offer intended for replacement. +2. Implementing diverse algorithms for cart item replacement based on information obtained from customers. + +### Merge cart line items with different product offers but the same SKU and merchant + +The demo replacement strategy works only if a product in cart with same SKU and merchant is represented as a single cart line item. +To enable this behavior, follow the steps: + +1. From `\Pyz\Zed\Cart\CartDependencyProvider::getExpanderPlugins()`, disable the `\Spryker\Zed\ProductOffer\Communication\Plugin\Cart\ProductOfferGroupKeyItemExpanderPlugin` plugin. + This plugin groups cart items with the same product offer. +2. Create a new `ProductOfferGroupKeyItemExpanderPlugin` plugin that implements `\Spryker\Zed\CartExtension\Dependency\Plugin\ItemExpanderPluginInterface` and register it in `\Pyz\Zed\Cart\CartDependencyProvider::getExpanderPlugins()`. +3. Add the following code to the example plugin: + +```php +namespace Pyz\Zed\ProductOffer\Communication\Plugin\Cart; + +use Generated\Shared\Transfer\CartChangeTransfer; +use Generated\Shared\Transfer\ItemTransfer; +use Spryker\Zed\CartExtension\Dependency\Plugin\ItemExpanderPluginInterface +use Spryker\Zed\Kernel\Communication\AbstractPlugin; + +class ProductOfferMerchantGroupKeyItemExpanderPlugin extends AbstractPlugin implements ItemExpanderPluginInterface +{ + protected const GROUP_KEY_DELIMITER = '_'; + + /** + * {@inheritDoc} + * - Expands `CartChangeTransfer.items` group key with the merchant reference. + * - Returns expanded `CartChangeTransfer`. + * - Returns `CartChangeTransfer` without changes if item's merchant reference is empty. + * + * @api + * + * @param \Generated\Shared\Transfer\CartChangeTransfer $cartChangeTransfer + * + * @return \Generated\Shared\Transfer\CartChangeTransfer + */ + public function expandItems(CartChangeTransfer $cartChangeTransfer): CartChangeTransfer + { + $items = $cartChangeTransfer->getItems(); + + foreach ($items as $itemTransfer) { + if (!$itemTransfer->getMerchantReference()) { + continue; + } + + $itemTransfer->setGroupKey($this->buildGroupKey($itemTransfer)); + } + + return $cartChangeTransfer; + } + + /** + * @param \Generated\Shared\Transfer\ItemTransfer $itemTransfer + * + * @return string + */ + protected function buildGroupKey(ItemTransfer $itemTransfer): string + { + $itemGroupKey = $itemTransfer->getGroupKey(); + $merchantReference = $itemTransfer->getMerchantReference(); + + return $itemGroupKey . static::GROUP_KEY_DELIMITER . $merchantReference; + } +} +``` + + +{% info_block warningBox "Verification" %} + + +1. Prepare several product offers for a merchant's product. + For these steps, assume you are creating offer1 and offer2 for product SKU123 and merchant MER123. +2. On the Storefront, log in as a customer. +3. Add a product to cart with the following configuration: + * Quantity: 1 + * SKU: SKU123 + * Merchant: MER123 + * Offer: offer1 + +4. Add the following product to cart: + * Quantity: 1 + * SKU: SKU123 + * Merchant: MER123 + * Offer: offer2 + +Make sure the cart item you've added in step 3 is updated to quantity 2. The number of items in cart remains 1. + +{% endinfo_block %} diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-service-points-domain.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-service-points-domain.md new file mode 100644 index 00000000000..57142efbf12 --- /dev/null +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-service-points-domain.md @@ -0,0 +1,48 @@ +--- +title: "Click & Collect: Service Points domain" +last_updated: Nov 02, 2023 +description: Service Points domain is used to configure service points, addresses, stores, service types, and services. +template: concept-topic-template +--- + + +A Service Point represents a physical location, such as a store, post office, or other designated areas, enabling customers to conveniently pick up their orders or access additional services like returns, exchanges, or customer support. Each service point has the capability to offer one or multiple unique services to customers. + +## Installation + +[Install the Service Points feature](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/install-features/install-the-service-points-feature.html) + +## Modules + +| MODULE | EXPECTED DIRECTORY | +|---------------------------|------------------------------------------------| +| ServicePoint | vendor/spryker/service-point | +| ServicePointCart | vendor/spryker/service-point-cart | +| ServicePointCartExtension | vendor/spryker/service-point-cart-extension | +| ServicePointCartsRestApi | vendor/spryker/service-point-carts-rest-api | +| ServicePointDataImport | vendor/spryker/service-point-data-import | +| ServicePointSearch | vendor/spryker/service-point-search | +| ServicePointsRestApi | vendor/spryker/service-points-rest-api | +| ServicePointsBackendApi | vendor/spryker/service-points-backend-api | +| ServicePointStorage | vendor/spryker/service-point-storage | +| SalesServicePoint | vendor/spryker/sales-service-point | +| SalesServicePointGui | vendor/spryker/sales-service-point-gui | +| SalesServicePointWidget | vendor/spryker-shop/sales-service-point-widget | +| ServicePointWidget | vendor/spryker-shop/service-point-widget | +| ServicePointCartPage | vendor/spryker-shop/service-point-cart-page | + +## Data setup + +The following options let you set up shipment types data: + +| MODULE | IMPORT TYPE | +| - | - | +| `ServicePointsBackendApi` | Backend API | +| `ServicePointDataImport` | Data Import | + + +## Address substitution during checkout + +The `ServicePointWidget` module provides a mechanism for substituting the shipping address with the service point address during checkout. + +The following plugin handles address substitution when the cart item has a service point selected and the shipment type is set to `pickup`: `\SprykerShop\Yves\ServicePointWidget\Plugin\CustomerPage\ServicePointAddressCheckoutAddressCollectionFormExpanderPlugin`. diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-shipment-type-service-point-subdomain.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-shipment-type-service-point-subdomain.md new file mode 100644 index 00000000000..876061cb170 --- /dev/null +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-shipment-type-service-point-subdomain.md @@ -0,0 +1,35 @@ +--- +title: "Click & Collect: Shipment Type Service Point subdomain" +last_updated: Nov 02, 2023 +description: The Shipment Type Service Point subdomain connects shipment types and service points. +template: concept-topic-template +--- + +The Shipment Type Service Point subdomain establishes the connection between shipment types and service points. + +## Installation + +[Install the Shipment Service Points feature](/docs/pbc/all/carrier-management/{{page.version}}/unified-commerce/install-features/install-the-shipment-service-points-feature.html) + +## Modules + +| MODULE | EXPECTED DIRECTORY | +|------------------------------------|---------------------------------------------------------| +| ShipmentTypeServicePoint | vendor/spryker/shipment-type-service-point | +| ShipmentTypeServicePointDataImport | vendor/spryker/shipment-type-service-point-data-import | +| ShipmentTypeServicePointsRestApi | vendor/spryker/shipment-type-service-points-rest-api | +| ShipmentTypeServicePointStorage | vendor/spryker/shipment-type-service-point-storage | + +## Data setup + +Spryker provides import functionality through the `ShipmentTypeServicePointDataImport` module to facilitate the setup of the connection between service points and shipment types. + +## Address substitution during checkout + +The `ShipmentTypeServicePointsRestApi` module provides a mechanism for substituting the shipping address with the service point address during checkout. + +### Plugins + +The following plugin handles address substitution when the shipment type is set to `pickup` and a service point is selected: `\Spryker\Glue\ShipmentTypeServicePointsRestApi\Plugin\CheckoutRestApi\ShipmentTypeServicePointCheckoutRequestExpanderPlugin`. + +Additionally, you can redefine applicable shipment type keys supporting address substitution through module configuration: `\Spryker\Shared\ShipmentTypeServicePointsRestApi\ShipmentTypeServicePointsRestApiConfig::getApplicableShipmentTypeKeysForShippingAddress`. diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-shipment-types-domain.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-shipment-types-domain.md new file mode 100644 index 00000000000..d054454ecb3 --- /dev/null +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/click-collect-domains/click-collect-shipment-types-domain.md @@ -0,0 +1,59 @@ +--- +title: "Click & Collect: Shipment Types domain" +last_updated: Nov 02, 2023 +description: Discover the key extension points for customizing the behavior of shipment types during checkout. +template: concept-topic-template +--- + +Shipment types offer different options for customers to receive their orders. + +## Installation + +[Install the Shipment feature](/docs/pbc/all/carrier-management/{{page.version}}/base-shop/install-and-upgrade/install-features/install-the-shipment-feature.html) + +## Modules + +| MODULE | EXPECTED DIRECTORY | +|-----------------------------------------------------------|----------------------------------------------------------------------------------| +| ShipmentType | vendor/spryker/shipment-type | +| ShipmentTypeCart | vendor/spryker/shipment-type-cart | +| ShipmentTypeDataImport | vendor/spryker/shipment-type-data-import | +| ShipmentTypeProductOfferServicePointAvailabilitiesRestApi | vendor/spryker/shipment-type-product-offer-service-point-availabilities-rest-api | +| ShipmentTypesBackendApi | vendor/spryker/shipment-type-backend-api | +| ShipmentTypeServicePoint | vendor/spryker/shipment-type-service-point | +| ShipmentTypeServicePointDataImport | vendor/spryker/shipment-type-service-point-data-import | +| ShipmentTypeServicePointsRestApi | vendor/spryker/shipment-type-service-points-rest-api | +| ShipmentTypeServicePointStorage | vendor/spryker/shipment-type-service-point-storage | +| ShipmentTypesRestApi | vendor/spryker/shipment-type-rest-api | +| ShipmentTypeStorage | vendor/spryker/shipment-type-storage | +| ShipmentTypeStorageExtension | vendor/spryker/shipment-type-extension | +| ShipmentTypeWidget | vendor/spryker-shop/shipment-type-widget | +| SalesShipmentType | vendor/spryker/sales-shipment-type | + +## Data setup + +The following options let you set up shipment types data: + +| MODULE | IMPORT TYPE | +| - | - | +| `ShipmentTypesBackendApi` | Backend API | +| `ShipmentTypeDataImport` | Data import | + +## Extension point for filtering shipment types for the quote during checkout + +Filter shipment types for the quote during checkout with the following extension point: `\Spryker\Client\ShipmentTypeStorageExtension\Dependency\Plugin\AvailableShipmentTypeFilterPluginInterface`. + +Example of a plugin that filters out shipment types without a product offer shipment type relation: `\Spryker\Client\ClickAndCollectExample\Plugin\ShipmentTypeStorage\ShipmentTypeProductOfferAvailableShipmentTypeFilterPlugin`. + +## Extension point for expanding Shipment Type data before publishing to the Storage + +Expands shipment type storage collection with additional data before publishing to the Storage: `\Spryker\Zed\ShipmentTypeStorageExtension\Dependency\Plugin\ShipmentTypeStorageExpanderPluginInterface`. Use the expanded data after retrieving Shipment Type data from the Storage. + +The following example plugin expands shipment types with a service type: `\Spryker\Zed\ShipmentTypeServicePointStorage\Communication\Plugin\ShipmentTypeStorage\ServiceTypeShipmentTypeStorageExpanderPlugin`. + + +## Extension point for expanding Shipment Type data after retrieving from the Storage + +Expands shipment type storage collection with additional data after retrieving it from the Storage: `\Spryker\Client\ShipmentTypeStorageExtension\Dependency\Plugin\ShipmentTypeStorageExpanderPluginInterface`. + +The following example plugin expands shipment types with a service type: `\Spryker\Client\ShipmentTypeServicePointStorage\Plugin\ShipmentTypeStorage\ServiceTypeShipmentTypeStorageExpanderPlugin`. diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/manage-using-glue-api/manage-service-types/glue-api-retrieve-service-types.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/manage-using-glue-api/manage-service-types/glue-api-retrieve-service-types.md index 7748c9fc2c8..1e5d70fd38e 100644 --- a/docs/pbc/all/service-point-management/202311.0/unified-commerce/manage-using-glue-api/manage-service-types/glue-api-retrieve-service-types.md +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/manage-using-glue-api/manage-service-types/glue-api-retrieve-service-types.md @@ -80,9 +80,9 @@ Request sample: `GET https://glue-backend.mysprykershop.com/service-points` ## Retrieve a service type ---- +*** `GET` {% raw %}**/service-types/*{{service_type_id}}***{% endraw %} ---- +*** | PATH PARAMETER | DESCRIPTION | | --- | --- | diff --git a/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/manage-using-glue-api/glue-api-authenticate-as-a-warehouse-user.md b/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/manage-using-glue-api/glue-api-authenticate-as-a-warehouse-user.md index acb7cacaed6..1631104fff2 100644 --- a/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/manage-using-glue-api/glue-api-authenticate-as-a-warehouse-user.md +++ b/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/manage-using-glue-api/glue-api-authenticate-as-a-warehouse-user.md @@ -9,7 +9,7 @@ This endpoint allows authenticating as a warehouse user. Warehouse users need to ## Installation -For detailed information on the modules that provide the API functionality and related installation instructions, see [Install the Warehouse User Management feature](/docs/pbc/all/warehouse-management-system/{{page.version}}/unified-commerce/install-and-upgrade/install-the-warehouse-user-management-feature.html). +[Install the Warehouse User Management feature](/docs/pbc/all/warehouse-management-system/{{page.version}}/unified-commerce/install-and-upgrade/install-the-warehouse-user-management-feature.html). ## Authenticate as a warehouse user @@ -27,7 +27,7 @@ Request sample: `POST http://glue-backend.mysprykershop.com/warehouse-tokens` ### Response -
Response sample: authenticate as a Back Office user +
Response sample: authenticate as a warehouse user ```json [