diff --git a/Rakefile b/Rakefile index 2cd16757ecf..159f99e813d 100644 --- a/Rakefile +++ b/Rakefile @@ -178,6 +178,7 @@ task :check_pbc do /docs\/pbc\/\w+\/[\w-]+\/202204\.0\/.+/, /docs\/pbc\/\w+\/[\w-]+\/202212\.0\/.+/, /docs\/pbc\/\w+\/[\w-]+\/202307\.0\/.+/, + /docs\/pbc\/\w+\/[\w-]+\/202403\.0\/.+/, /docs\/pbc\/\w+\/[\w-]+\/202400\.0\/.+/ ] HTMLProofer.check_directory("./_site", options).run diff --git a/_data/sidebars/pbc_all_sidebar.yml b/_data/sidebars/pbc_all_sidebar.yml index 4ac2559be0c..6ef5c7b0980 100644 --- a/_data/sidebars/pbc_all_sidebar.yml +++ b/_data/sidebars/pbc_all_sidebar.yml @@ -4043,10 +4043,12 @@ entries: include_versions: - "202311.0" nested: - - title: Fulfillment App feature overview - url: /docs/pbc/all/warehouse-management-system/unified-commerce/fulfillment-app-feature-overview.html + - title: Fulfillment App overview + url: /docs/pbc/all/warehouse-management-system/unified-commerce/fulfillment-app-overview.html - title: Warehouse Picking feature overview url: /docs/pbc/all/warehouse-management-system/unified-commerce/warehouse-picking-feature-overview.html + - title: Warehouse User Management feature overview + url: /docs/pbc/all/warehouse-management-system/unified-commerce/warehouse-user-management-feature-overview.html - title: Install and upgrade nested: - title: Install features @@ -4057,6 +4059,8 @@ entries: url: /docs/pbc/all/warehouse-management-system/unified-commerce/install-and-upgrade/install-the-warehouse-picking-product-feature.html - title: Warehouse User Management url: /docs/pbc/all/warehouse-management-system/unified-commerce/install-and-upgrade/install-the-warehouse-user-management-feature.html + - title: Set up Fulfillment App + url: /docs/pbc/all/warehouse-management-system/unified-commerce/set-up-fulfillment-app.html - title: "Back Office: Assign and deassign warehouses from warehouse users" url: /docs/pbc/all/warehouse-management-system/unified-commerce/assign-and-deassign-warehouses-from-warehouse-users.html - title: "Fulfillment App: Fulfill orders" diff --git a/_includes/pbc/all/install-features/202403.0/install-glue-api/install-the-checkout-glue-api.md b/_includes/pbc/all/install-features/202403.0/install-glue-api/install-the-checkout-glue-api.md new file mode 100644 index 00000000000..5f75d608c01 --- /dev/null +++ b/_includes/pbc/all/install-features/202403.0/install-glue-api/install-the-checkout-glue-api.md @@ -0,0 +1,961 @@ +This document describes how to install the [Checkout](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/feature-overviews/checkout-feature-overview/checkout-feature-overview.html) Glue API. + +## Prerequisites + +Install the required features: + +| FEATURE | VERSION | INSTALLATION GUIDE | +|-----------------------------------------|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Glue API: Spryker Core | {{page.version}} | [Install the Spryker Core Glue API](/docs/pbc/all/miscellaneous/{{page.version}}/install-and-upgrade/install-glue-api/install-the-spryker-core-glue-api.html) | +| Glue API: Cart | {{page.version}} | [Install the Cart Glue API](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/install-and-upgrade/install-glue-api/install-the-cart-glue-api.html) | +| Glue API: Customer Account Management | {{page.version}} | [Install the Customer Account Management Glue API](/docs/pbc/all/identity-access-management/{{page.version}}/install-and-upgrade/install-the-customer-account-management-glue-api.html) | +| Glue API: Payments | {{page.version}} | [Install the Payments Glue API](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/install-and-upgrade/install-the-payments-glue-api.html) | +| Glue API: Shipment | {{page.version}} | [Install the Shipment Glue API](/docs/pbc/all/carrier-management/{{page.version}}/base-shop/install-and-upgrade/install-the-shipment-glue-api.html) | + +## 1) Install the required modules + +Install the required modules using Composer: + +```bash +composer require spryker/checkout-rest-api:"3.10.0" spryker/order-payments-rest-api:"^1.0.1" spryker/sales-order-thresholds-rest-api:"^1.0.0" --update-with-dependencies +``` + +{% info_block warningBox "Verification" %} + +Make sure that the following modules have been installed: + +| MODULE | EXPECTED DIRECTORY | +|-----------------------------|------------------------------------------------| +| CheckoutRestApi | vendor/spryker/checkout-rest-api | +| OrderPaymentsRestApi | vendor/spryker/order-payments-rest-api | +| SalesOrderThresholdsRestApi | vendor/spryker/sales-order-thresholds-rest-api | + +{% endinfo_block %} + +## 2) Set up configuration + +1. Add the following configuration: + +| CONFIGURATION | SPECIFICATION | NAMESPACE | +|-------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|--------------------------| +| CheckoutRestApiConfig::shouldExecuteQuotePostRecalculationPlugins() | Defines if a stack of `QuotePostRecalculatePluginStrategyInterface` plugins should be executed after quote recalculation. | Pyz\Zed\CheckoutRestApi | +| CheckoutRestApiConfig::isRecalculationEnabledForQuoteMapperPlugins() | Defines if quote recalculation in a stack of `QuoteMapperPluginInterface` plugins is to be enabled. | Pyz\Zed\CheckoutRestApi | +| CheckoutRestApiConfig::getRequiredCustomerRequestDataForGuestCheckout() | Returns the customer data fields required for checkout as a guest user. | Pyz\Glue\CheckoutRestApi | + +**src/Pyz/Zed/CheckoutRestApi/CheckoutRestApiConfig.php** + +```php + + */ + public function getRequiredCustomerRequestDataForGuestCheckout(): array + { + return array_merge(parent::getRequiredCustomerRequestDataForGuestCheckout(), [ + RestCustomerTransfer::FIRST_NAME, + RestCustomerTransfer::LAST_NAME, + ]); + } +} +``` + + + +2. Add all the payment methods available in the shop to `CheckoutRestApiConfig`—for example: + +
+src/Pyz/Glue/CheckoutRestApi/CheckoutRestApiConfig.php + +```php + ['dummyPaymentInvoice.dateOfBirth'], + 'dummyPaymentCreditCard' => [ + 'dummyPaymentCreditCard.cardType', + 'dummyPaymentCreditCard.cardNumber', + 'dummyPaymentCreditCard.nameOnCard', + 'dummyPaymentCreditCard.cardExpiresMonth', + 'dummyPaymentCreditCard.cardExpiresYear', + 'dummyPaymentCreditCard.cardSecurityCode', + ], + ]; + + /** + * @uses \Spryker\Shared\DummyPayment\DummyPaymentConfig::PROVIDER_NAME + */ + protected const DUMMY_PAYMENT_PROVIDER_NAME = 'DummyPayment'; + + /** + * @uses \Spryker\Shared\DummyPayment\DummyPaymentConfig::PAYMENT_METHOD_NAME_INVOICE + */ + protected const DUMMY_PAYMENT_PAYMENT_METHOD_NAME_INVOICE = 'Invoice'; + + /** + * @uses \Spryker\Shared\DummyPayment\DummyPaymentConfig::PAYMENT_METHOD_NAME_CREDIT_CARD + */ + protected const DUMMY_PAYMENT_PAYMENT_METHOD_NAME_CREDIT_CARD = 'Credit Card'; + + /** + * @uses \Spryker\Shared\DummyPayment\DummyPaymentConfig::PAYMENT_METHOD_INVOICE + */ + protected const PAYMENT_METHOD_INVOICE = 'dummyPaymentInvoice'; + + /** + * @uses \Spryker\Shared\DummyPayment\DummyPaymentConfig::PAYMENT_METHOD_CREDIT_CARD + */ + protected const PAYMENT_METHOD_CREDIT_CARD = 'dummyPaymentCreditCard'; + + protected const IS_PAYMENT_PROVIDER_METHOD_TO_STATE_MACHINE_MAPPING_ENABLED = false; + + /** + * @return array + */ + public function getPaymentProviderMethodToStateMachineMapping(): array + { + return [ + static::DUMMY_PAYMENT_PROVIDER_NAME => [ + static::DUMMY_PAYMENT_PAYMENT_METHOD_NAME_CREDIT_CARD => static::PAYMENT_METHOD_CREDIT_CARD, + static::DUMMY_PAYMENT_PAYMENT_METHOD_NAME_INVOICE => static::PAYMENT_METHOD_INVOICE, + ], + ]; + } + + /** + * @return bool + */ + public function isShipmentMethodsMappedToAttributes(): bool + { + return false; + } + + /** + * @return bool + */ + public function isPaymentProvidersMappedToAttributes(): bool + { + return false; + } + + /** + * @return bool + */ + public function isAddressesMappedToAttributes(): bool + { + return false; + } +} +``` +
+ +{% info_block infoBox "" %} + +* If `CheckoutRestApiConfig::IS_PAYMENT_PROVIDER_METHOD_TO_STATE_MACHINE_MAPPING_ENABLED` is true, make sure that the payment methods and providers of your shop are configured in `CheckoutRestApiConfig::getPaymentProviderMethodToStateMachineMapping()`. + +* Setting `CheckoutRestApiConfig::IS_PAYMENT_PROVIDER_METHOD_TO_STATE_MACHINE_MAPPING_ENABLED` to false ignores the Glue API level configuration. Subsequently, the `checkout-data` endpoint returns all the payment methods. + +* For the `checkout-data` endpoint to keep returning shipment methods, keep `Pyz\Glue\CheckoutRestApi\CheckoutRestApiConfig::isShipmentMethodsMappedToAttributes()` set to true. + + +{% endinfo_block %} + +{% info_block warningBox “Verification” %} + +If `Pyz\Glue\CheckoutRestApi\CheckoutRestApiConfig::isShipmentMethodsMappedToAttributes()` is true, make sure the `checkout-data` endpoint returns shipping methods in the `shipmentMethods` attribute. + +
+Response sample + +```json +{ + "data": { + "type": "checkout-data", + "id": null, + "attributes": { + "addresses": [], + "shipmentMethods": [ + { + "id": 4, + "name": "Air Sonic", + "carrierName": "Spryker Drone Shipment", + "price": 1000, + "taxRate": null, + "deliveryTime": null, + "currencyIsoCode": "EUR" + }, + { + "id": 5, + "name": "Air Light", + "carrierName": "Spryker Drone Shipment", + "price": 1500, + "taxRate": null, + "deliveryTime": null, + "currencyIsoCode": "EUR" + }, + { + "id": 2, + "name": "Express", + "carrierName": "Spryker Dummy Shipment", + "price": 590, + "taxRate": null, + "deliveryTime": null, + "currencyIsoCode": "EUR" + }, + { + "id": 3, + "name": "Air Standard", + "carrierName": "Spryker Drone Shipment", + "price": 500, + "taxRate": null, + "deliveryTime": null, + "currencyIsoCode": "EUR" + }, + { + "id": 1, + "name": "Standard", + "carrierName": "Spryker Dummy Shipment", + "price": 490, + "taxRate": null, + "deliveryTime": null, + "currencyIsoCode": "EUR" + } + ], + ... +} +``` +
+ +{% endinfo_block %} + +{% info_block infoBox "" %} + +For the `checkout-data` endpoint to keep returning payment methods, keep `CheckoutRestApiConfig::isPaymentProvidersMappedToAttributes()` set to true. + +{% endinfo_block %} + +{% info_block warningBox "Verification" %} + +If `Pyz\Glue\CheckoutRestApi\CheckoutRestApiConfig::isPaymentProvidersMappedToAttributes()` is true, make sure the `checkout-data` endpoint returns payment methods in the `paymentProviders` attribute. + +
+Response sample + +```json +{ + "data": { + "type": "checkout-data", + "id": null, + "attributes": { + "addresses": [], + "paymentProviders": [ + { + "paymentProviderName": "DummyPayment", + "paymentMethods": [ + { + "paymentMethodName": "Invoice", + "paymentProviderName": null, + "requiredRequestData": [ + "paymentMethod", + "paymentProvider", + "dummyPaymentInvoice.dateOfBirth" + ] + }, + { + "paymentMethodName": "Credit Card", + "paymentProviderName": null, + "requiredRequestData": [ + "paymentMethod", + "paymentProvider", + "dummyPaymentCreditCard.cardType", + "dummyPaymentCreditCard.cardNumber", + "dummyPaymentCreditCard.nameOnCard", + "dummyPaymentCreditCard.cardExpiresMonth", + "dummyPaymentCreditCard.cardExpiresYear", + "dummyPaymentCreditCard.cardSecurityCode" + ] + } + ] + } + ], + ... +} +``` +
+ +{% endinfo_block %} + +## 3) Set up transfer objects + +Generate transfer changes: + +```bash +console transfer:generate +``` + +{% info_block warningBox "Verification" %} + +Make sure that the following changes have been applied in transfer objects: + +| TRANSFER | TYPE | EVENT | PATH | +|------------------------------------------------------|----------|-------------|------------------------------------------------------------------------------| +| RestCheckoutDataTransfer | class | created | src/Generated/Shared/Transfer/RestCheckoutDataTransfer.php | +| RestCheckoutErrorTransfer | class | created | src/Generated/Shared/Transfer/RestCheckoutErrorTransfer.php | +| RestCheckoutDataResponseTransfer | class | created | src/Generated/Shared/Transfer/RestCheckoutDataResponseTransfer.php | +| RestCheckoutRequestAttributesTransfer | class | created | src/Generated/Shared/Transfer/RestCheckoutRequestAttributesTransfer.php | +| RestCustomerTransfer | class | created | src/Generated/Shared/Transfer/RestCustomerTransfer.php | +| RestAddressTransfer | class | created | src/Generated/Shared/Transfer/RestAddressTransfer.php | +| RestShipmentTransfer | class | created | src/Generated/Shared/Transfer/RestShipmentTransfer.php | +| RestPaymentTransfer | class | created | src/Generated/Shared/Transfer/RestPaymentTransfer.php | +| RestCheckoutDataResponseAttributesTransfer | class | created | src/Generated/Shared/Transfer/RestCheckoutDataResponseAttributesTransfer.php | +| RestPaymentProviderTransfer | class | created | src/Generated/Shared/Transfer/RestPaymentProviderTransfer.php | +| RestPaymentMethodTransfer | class | created | src/Generated/Shared/Transfer/RestPaymentMethodTransfer.php | +| RestShipmentMethodTransfer | class | created | src/Generated/Shared/Transfer/RestShipmentMethodTransfer.php | +| RestCheckoutResponseAttributesTransfer | class | created | src/Generated/Shared/Transfer/RestCheckoutResponseAttributesTransfer.php | +| CheckoutResponseTransfer | class | created | src/Generated/Shared/Transfer/CheckoutResponseTransfer.php | +| SaveOrderTransfer | class | created | src/Generated/Shared/Transfer/SaveOrderTransfer.php | +| CheckoutErrorTransfer | class | created | src/Generated/Shared/Transfer/CheckoutErrorTransfer.php | +| AddressesTransfer | class | created | src/Generated/Shared/Transfer/AddressesTransfer.php | +| AddressTransfer | class | created | src/Generated/Shared/Transfer/AddressTransfer.php | +| ShipmentMethodTransfer | class | created | src/Generated/Shared/Transfer/ShipmentMethodTransfer.php | +| ShipmentMethodsCollectionTransfer | class | created | src/Generated/Shared/Transfer/ShipmentMethodsCollectionTransfer.php | +| PaymentProviderCollectionTransfer | class | created | src/Generated/Shared/Transfer/PaymentProviderCollectionTransfer.php | +| PaymentProviderTransfer | class | created | src/Generated/Shared/Transfer/PaymentProviderTransfer.php | +| PaymentMethodsTransfer | class | created | src/Generated/Shared/Transfer/PaymentMethodsTransfer.php | +| PaymentMethodTransfer | class | created | src/Generated/Shared/Transfer/PaymentMethodTransfer.php | +| QuoteTransfer | class | created | src/Generated/Shared/Transfer/QuoteTransfer.php | +| StoreTransfer | class | created | src/Generated/Shared/Transfer/StoreTransfer.php | +| MoneyValueTransfer | class | created | src/Generated/Shared/Transfer/MoneyValueTransfer.php | +| CurrencyTransfer | class | created | src/Generated/Shared/Transfer/CurrencyTransfer.php | +| QuoteResponseTransfer | class | created | src/Generated/Shared/Transfer/QuoteResponseTransfer.php | +| QuoteErrorTransfer | class | created | src/Generated/Shared/Transfer/QuoteErrorTransfer.php | +| ShipmentTransfer | class | created | src/Generated/Shared/Transfer/ShipmentTransfer.php | +| RestErrorCollectionTransfer | class | created | src/Generated/Shared/Transfer/RestErrorCollectionTransfer.php | +| CheckoutDataTransfer | class | created | src/Generated/Shared/Transfer/CheckoutDataTransfer.php | +| ItemTransfer | class | created | src/Generated/Shared/Transfer/ItemTransfer.php | +| RestCheckoutResponseTransfer | class | created | src/Generated/Shared/Transfer/RestCheckoutResponseTransfer.php | +| RestErrorMessageTransfer | class | created | src/Generated/Shared/Transfer/RestErrorMessageTransfer.php | +| RestCheckoutDataTransfer.quote | property | added | src/Generated/Shared/Transfer/RestCheckoutDataTransfer.php | +| RestCheckoutResponseTransfer.checkoutData | property | added | src/Generated/Shared/Transfer/RestCheckoutResponseTransfer.php | +| CheckoutDataTransfer.quote | property | added | src/Generated/Shared/Transfer/CheckoutDataTransfer.php | +| RestCheckoutDataResponseAttributesTransfer.addresses | property | deprecated | src/Generated/Shared/Transfer/RestCheckoutDataResponseAttributesTransfer.php | +| QuoteTransfer.salesOrderThresholdValues | property | added | src/Generated/Shared/Transfer/QuoteTransfer.php | +| RestCartsAttributesTransfer | class | created | src/Generated/Shared/Transfer/RestCartsAttributesTransfer.php | +| SalesOrderThresholdTypeTransfer | class | created | src/Generated/Shared/Transfer/SalesOrderThresholdTypeTransfer.php | +| SalesOrderThresholdValueTransfer | class | created | src/Generated/Shared/Transfer/SalesOrderThresholdValueTransfer.php | +| RestCartsThresholdsTransfer | class | created | src/Generated/Shared/Transfer/RestCartsThresholdsTransfer.php | + +{% endinfo_block %} + +## 4) Set up behavior + +Set up the following behaviors. + +### Enable resources and relationships + +Activate the following plugins: + +| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | +|-------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------| +| CheckoutDataResourcePlugin | Registers the `checkout-data` resource. | None | Spryker\Glue\CheckoutRestApi\Plugin\GlueApplication | +| CheckoutResourcePlugin | Registers the `checkout` resource. | None | Spryker\Glue\CheckoutRestApi\Plugin\GlueApplication | +| OrderRelationshipByOrderReferencePlugin | Adds a relationship to the `order` entity by order reference. | None | Spryker\Glue\OrdersRestApi\Plugin | +| OrderPaymentsResourceRoutePlugin | Registers the `order-payments` resource. | None | Spryker\Glue\OrderPaymentsRestApi\Plugin | +| CartByRestCheckoutDataResourceRelationshipPlugin | Adds `carts` resource as a relationship by `RestCheckoutDataTransfer.quote`. Applies only to registered customers. | None | Spryker\Glue\CartsRestApi\Plugin\GlueApplication | +| GuestCartByRestCheckoutDataResourceRelationshipPlugin | Adds `guest-carts` resource as the relationship by `RestCheckoutDataTransfer.quote`. Applies only to guest customers. | None | Spryker\Glue\CartsRestApi\Plugin\GlueApplication | + +
+src/Pyz/Glue/GlueApplication/GlueApplicationDependencyProvider.php + +```php +addRelationship( + CheckoutRestApiConfig::RESOURCE_CHECKOUT, + new OrderRelationshipByOrderReferencePlugin() + ); + $resourceRelationshipCollection->addRelationship( + CheckoutRestApiConfig::RESOURCE_CHECKOUT_DATA, + new CartByRestCheckoutDataResourceRelationshipPlugin(), + ); + $resourceRelationshipCollection->addRelationship( + CheckoutRestApiConfig::RESOURCE_CHECKOUT_DATA, + new GuestCartByRestCheckoutDataResourceRelationshipPlugin(), + ); + + return $resourceRelationshipCollection; + } +} +``` +
+ +{% info_block warningBox "Verification" %} + +Make sure that the following plugins have been activated: + +| PLUGIN | TEST | +|-------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| CheckoutDataResourcePlugin | Check if you get a valid response by sending the `POST https://glue.mysprykershop.com/checkout-data` request. +| CheckoutResourcePlugin | Check if you get a valid response by sending the `POST https://glue.mysprykershop.com/checkout` request. | +| OrderRelationshipByOrderReferencePlugin | Check if you get order information from the `orders` resource by sending the `POST https://glue.mysprykershop.com/checkout?include=orders` request. | +| CartByRestCheckoutDataResourceRelationshipPlugin | Check if you get cart data as a relationship from the `checkout-data` resource by sending the `POST https://glue.mysprykershop.com/checkout-data?include=carts` request. | +| GuestCartByRestCheckoutDataResourceRelationshipPlugin | Check if you get guest cart data as a relationship from the `checkout-data` resource by sending the `POST https://glue.mysprykershop.com/checkout?include=guest-carts` request. | + +{% endinfo_block %} + +{% info_block warningBox "Verification" %} + +To make sure that `OrderPaymentsResourceRoutePlugin` has been activated, check if you get a valid response by sending the following request: + +`POST https://glue.mysprykershop.com/order-payments` +```json +{ + "data": { + "type": "order-payments", + "attributes": { + "paymentIdentifier": {% raw %}{{{% endraw %}paymentIdentifier{% raw %}}}{% endraw %}, + "dataPayload": {% raw %}{{{% endraw %}dataPayload{% raw %}}}{% endraw %} + } + } +} +``` + +{% endinfo_block %} + +{% info_block warningBox "Verification" %} + +Make sure `CartByRestCheckoutDataResourceRelationshipPlugin` has been activated: + +1. Send the request: + +`POST https://glue.mysprykershop.com/checkout-data?include=carts` +```json +{ + "data": { + "type": "checkout-data", + "attributes": { + "idCart": "_cart_id", + "shipment": { + "idShipmentMethod": 1 + } + } + } +} +``` + +2. Check that the cart data is returned as a relationship and contains `shipmentTotal` in cart totals: + +```json +{ + "data": { + "type": "checkout-data", + ... + }, + ... + "relationships": { + "carts": { + "data": [ + { + "type": "carts", + "id": "_cart_id" + } + ] + } + } + }, + "included": [ + { + "type": "carts", + "id": "_cart_id", + "attributes": { + ... + "totals": { + ... + "shipmentTotal": ... + } + } + } + ] +} +``` + +{% endinfo_block %} + +{% info_block warningBox "Verification" %} + +Make sure `GuestCartByRestCheckoutDataResourceRelationshipPlugin` has been activated: + +1. Send the following request with an anonymous customer ID: + +`POST https://glue.mysprykershop.com/checkout-data?include=guest-carts` + +```json +{"data": + {"type": "checkout-data", + "attributes": + { + "idCart": "_cart_id", + "shipment": { + "idShipmentMethod": 1 + } + } + } +} +``` + +2. Check that the guest cart data is returned as a relationship and contains `shipmentTotal` in cart totals: + +```json +{ + "data": { + "type": "checkout-data", + ... + }, + ... + "relationships": { + "guest-carts": { + "data": [ + { + "type": "guest-carts", + "id": "_cart_id" + } + ] + } + } + }, + "included": [ + { + "type": "guest-carts", + "id": "_cart_id", + "attributes": { + ... + "totals": { + ... + "shipmentTotal": ... + } + } + } + ] +} +``` + +{% endinfo_block %} + +For more details, see [Interact with third party payment providers using Glue API](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/interact-with-third-party-payment-providers-using-glue-api.html). + +### Configure mapping + +On the project level, configure the following mappers to map the data from the request to `QuoteTransfer`: + + +| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE | +|---------------------------|--------------------------------------------------------------------------------------|---------------|-------------------------------------------------------------------| +| CustomerQuoteMapperPlugin | Adds a mapper that maps customer information to `QuoteTransfer`. | | Spryker\Zed\CustomersRestApi\Communication\Plugin\CheckoutRestApi | +| AddressQuoteMapperPlugin | Adds a mapper that maps billing and shipping address information to `QuoteTransfer`. | | Spryker\Zed\CustomersRestApi\Communication\Plugin\CheckoutRestApi | + + +**src/Pyz/Zed/CheckoutRestApi/CheckoutRestApiDependencyProvider.php** + +```php + + */ + protected function getRestCartAttributesMapperPlugins(): array + { + return [ + new SalesOrderThresholdRestCartAttributesMapperPlugin(), + ]; + } +} +``` + +**src/Pyz/Zed/Cart/CartDependencyProvider.php** + +```php + + */ + protected function getTerminationPlugins(Container $container): array + { + return [ + new SalesOrderThresholdCartTerminationPlugin(), + ]; + } +} +``` + +**src/Pyz/Zed/CartsRestApi/CartsRestApiDependencyProvider.php** + +```php + + */ + protected function getQuoteExpanderPlugins(): array + { + return [ + new SalesOrderThresholdQuoteExpanderPlugin(), + ]; + } +} +``` + +**src/Pyz/Zed/CheckoutRestApi/CheckoutRestApiDependencyProvider.php** + +```php + + */ + protected function getReadCheckoutDataValidatorPlugins(): array + { + return [ + new SalesOrderThresholdReadCheckoutDataValidatorPlugin(), + ]; + } +} +``` + + +{% info_block warningBox "Verification" %} + +Ensure that the plugins work correctly: + +1. [Set up a minimum hard threshold](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-in-the-back-office/define-global-thresholds.html#define-a-minimum-hard-threshold.html). +2. Add a product to cart with a price lower than the threshold you've set. +3. Send the request: `GET https://glue.mysprykershop.com/carts/{cart-uuid}` + Make sure the message about threshold conditions not being met is returned. Example: + + Response sample with threshold conditions not met + +```json +{ + "data": { + "type": "carts", + "id": "1ce91011-8d60-59ef-9fe0-4493ef3628b2", + "attributes": { + "priceMode": "GROSS_MODE", + "currency": "EUR", + "store": "DE", + "name": "My Cart", + "isDefault": true, + "totals": { + "expenseTotal": 0, + "discountTotal": 0, + "taxTotal": 4151, + "subtotal": 26000, + "grandTotal": 26000, + "priceToPay": 26000 + }, + "discounts": [], + "thresholds": [ + { + "type": "hard-minimum-threshold", + "threshold": 200000, + "fee": null, + "deltaWithSubtotal": 174000, + "message": "You need to add items for €2,000.00 to pass a recommended threshold, but if you want can proceed to checkout." + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/carts/1ce91011-8d60-59ef-9fe0-4493ef3628b2" + } + } +} +``` + + + +4. Send the `POST https://glue.mysprykershop.com/checkout-data` request and check that the following error is returned. + +```json +{ + "errors": [ + { + "code": "1101", + "status": 422, + "detail": "You need to add items for €2,000.00 to pass a recommended threshold, but if you want can proceed to checkout." + } + ] +} +``` + +5. Add more products to cart to satisfy the minimum threshold you've set. +6. To check that the cart meets the threshold conditions, send the following request: `GET https://glue.mysprykershop.com/carts/{cart-uuid}`. + The threshold message shouldn't be displayed in the response: + +
+ Response sample with threshold conditions met +```json +{ + "data": { + "type": "carts", + "id": "1ce91011-8d60-59ef-9fe0-4493ef3628b2", + "attributes": { + "priceMode": "GROSS_MODE", + "currency": "EUR", + "store": "DE", + "name": "My Cart", + "isDefault": true, + "totals": { + "expenseTotal": 0, + "discountTotal": 0, + "taxTotal": 45664, + "subtotal": 286000, + "grandTotal": 286000, + "priceToPay": 286000 + }, + "discounts": [], + "thresholds": [] + }, + "links": { + "self": "https://glue.mysprykershop.com/carts/1ce91011-8d60-59ef-9fe0-4493ef3628b2" + } + } +} +``` + +7. To check that the cart meets threshold conditions, send the following request: `POST https://glue.mysprykershop.com/checkout-data`. + You should get a regular response without any errors: + +```json +{ + "data": { + "type": "checkout-data", + "id": null, + "attributes": { + "addresses": [], + "paymentProviders": [], + "shipmentMethods": [], + "selectedShipmentMethods": [], + "selectedPaymentMethods": [] + }, + "links": { + "self": "https://glue.mysprykershop.com/checkout-data" + } + } +} +``` + +{% endinfo_block %} + +## Install related features + +| FEATURE | REQUIRED FOR THE CURRENT FEATURE | INSTALLATION GUIDE | +|--------------------|----------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Glue API: Shipment | ✓ | [Install the Shipment Glue API](/docs/pbc/all/carrier-management/{{page.version}}/base-shop/install-and-upgrade/install-the-shipment-glue-api.html) | +| Glue API: Payments | ✓ | [Install the Payments Glue API](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/install-and-upgrade/install-the-payments-glue-api.html) | diff --git a/docs/pbc/all/carrier-management/202311.0/base-shop/shipment-feature-overview.md b/docs/pbc/all/carrier-management/202311.0/base-shop/shipment-feature-overview.md index 994bf142005..4786be4e93e 100644 --- a/docs/pbc/all/carrier-management/202311.0/base-shop/shipment-feature-overview.md +++ b/docs/pbc/all/carrier-management/202311.0/base-shop/shipment-feature-overview.md @@ -71,6 +71,12 @@ Each shipment method has a dedicated price and tax set in the various currencies You can give shipment discounts based on the carrier, shipment method, or cart value. Intricate calculations let you freely define a set of rules to be applied to the various discount options. +## Current constraints + +* Product catalog can't be filtered by a shipment type. +* Customers can't add products with preselected shipment types to cart. They can select shipment types only during checkout. +* If a product is added to cart without a product offer attached to it, this product can be purchased only with the *Delivery* shipment type. + ## Related Business User documents diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/checkout-feature-overview.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/checkout-feature-overview.md index 313a215b1de..9f273aff848 100644 --- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/checkout-feature-overview.md +++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/checkout-feature-overview.md @@ -43,4 +43,4 @@ With order thresholds, you can do the following: | INSTALLATION GUIDES | UPGRADE GUIDES| DATA IMPORT | |---------|---------|---------| | [Install the Checkout feature](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/install-and-upgrade/install-features/install-the-checkout-feature.html) | [Upgrade the Checkout module](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/install-and-upgrade/upgrade-modules/upgrade-the-checkout-module.html) | [File details: sales_order_threshold.csv](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/import-and-export-data/import-file-details-sales-order-threshold.csv.html) | -| [Merchant feature integration](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/install-and-upgrade/install-the-merchant-feature.html) | [Upgrade the CheckoutPage module](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/install-and-upgrade/upgrade-modules/upgrade-the-checkoutpage-module.html) | | +| [Install the Merchant feature](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/install-and-upgrade/install-the-merchant-feature.html) | [Upgrade the CheckoutPage module](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/install-and-upgrade/upgrade-modules/upgrade-the-checkoutpage-module.html) | | diff --git a/docs/pbc/all/cart-and-checkout/202403.0/base-shop/feature-overviews/checkout-feature-overview/checkout-feature-overview.md b/docs/pbc/all/cart-and-checkout/202403.0/base-shop/feature-overviews/checkout-feature-overview/checkout-feature-overview.md new file mode 100644 index 00000000000..eab90f7e96b --- /dev/null +++ b/docs/pbc/all/cart-and-checkout/202403.0/base-shop/feature-overviews/checkout-feature-overview/checkout-feature-overview.md @@ -0,0 +1,47 @@ +--- +title: Checkout feature overview +description: The checkout workflow is a multi-step process that can be fullly customized to fit your needs. +last_updated: Nov 24, 2023 +template: concept-topic-template +originalLink: https://documentation.spryker.com/2021080/docs/checkout +originalArticleId: 7dcc5635-2a15-410c-9a0b-bc62a13dd3a1 +redirect_from: + - /docs/scos/user/features/202311.0/checkout-feature-overview/checkout-feature-overview.html + - /docs/scos/dev/feature-walkthroughs/202311.0/checkout-feature-walkthrough.html + - /docs/pbc/all/cart-and-checkout/202311.0/checkout-feature-overview/checkout-feature-overview.html + - /docs/pbc/all/cart-and-checkout/202311.0/base-shop/checkout-feature-overview/checkout-feature-overview.html +--- + +Offer customers a smooth shopping experience by customizing the checkout workflow. Add, delete, and configure any checkout step, like customer account login, shipment and payment methods, or checkout overview. + +The *Checkout* feature lets customers select single or multiple products and add wishlist items to their cart, as well as integrate different carriers and delivery methods. + +Control the values of the orders that your customers place by defining order thresholds. + +Fulfilling small orders is not always worthwhile for the business because operating costs, time, and effort spent on processing them often overweight the profit gained. In such cases, implementing a minimum threshold might be the solution to prevent orders that are too small from being made. The *[Order Thresholds](/docs/scos/user/features/{{page.version}}/checkout-feature-overview/order-thresholds-overview.html)* feature provides you with multiple options for defining thresholds. You can define a minimum threshold and disallow placing orders with smaller values or request customers to pay a fee. + +Per your business requirements, you can also set up a maximum threshold to disallow placing orders above a defined threshold. + +In a B2B scenario, you can define any type of threshold for each [merchant relation](/docs/pbc/all/merchant-management/{{page.version}}/base-shop/merchant-b2b-contracts-feature-overview.html) separately. + +With order thresholds, you can do the following: + +* Ensure buyers place bigger orders, which can increase your sales. +* Prevent the waste of resources on small orders. +* Ensure that the cost of items sold is not too high for each transaction, which, in the long run, can make your business more profitable. +* Support promotional campaigns, by offering free shipping for orders above a threshold and other perks. + +## Related Business User documents + +| OVERVIEWS | BACK OFFICE USER GUIDES | +|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------| +| [Multi-step Checkout](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/feature-overviews/checkout-feature-overview/multi-step-checkout-overview.html) | [Define global thresholds](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-in-the-back-office/define-global-thresholds.html) | +| [Order Thresholds](/docs/scos/user/features/{{page.version}}/checkout-feature-overview/order-thresholds-overview.html) | [Manage threshold settings](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-in-the-back-office/manage-threshold-settings.html) | + +## Related Developer documents + +| INSTALLATION GUIDES | UPGRADE GUIDES | DATA IMPORT | +|--------------------|---------------------------|--------------------------------------------------| +| [Install the Checkout feature](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/install-and-upgrade/install-features/install-the-checkout-feature.html) | [Upgrade the Checkout module](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/install-and-upgrade/upgrade-modules/upgrade-the-checkout-module.html) | [File details: sales_order_threshold.csv](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/import-and-export-data/import-file-details-sales-order-threshold.csv.html) | +| [Install the Checkout Glue API](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/install-and-upgrade/install-glue-api/install-the-checkout-glue-api.html) | [Upgrade the CheckoutPage module](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/install-and-upgrade/upgrade-modules/upgrade-the-checkoutpage-module.html) | | +| [Install the Merchant feature](/docs/pbc/all/merchant-management/{{page.version}}/base-shop/install-and-upgrade/install-the-merchant-feature.html) | | | diff --git a/docs/pbc/all/cart-and-checkout/202403.0/base-shop/install-and-upgrade/install-glue-api/install-the-checkout-glue-api.md b/docs/pbc/all/cart-and-checkout/202403.0/base-shop/install-and-upgrade/install-glue-api/install-the-checkout-glue-api.md new file mode 100644 index 00000000000..2f7e94b5926 --- /dev/null +++ b/docs/pbc/all/cart-and-checkout/202403.0/base-shop/install-and-upgrade/install-glue-api/install-the-checkout-glue-api.md @@ -0,0 +1,18 @@ +--- +title: Install the Checkout Glue API +template: feature-integration-guide-template +originalLink: https://documentation.spryker.com/2021080/docs/glue-api-checkout-feature-integration +originalArticleId: f44bd963-7af3-4ce8-8b7a-3c1477880728 + - /docs/pbc/all/cart-and-checkout/202311.0/install-and-upgrade/install-glue-api/install-the-checkout-glue-api.html +related: + - title: Checkout feature integration + link: docs/scos/dev/feature-integration-guides/page.version/checkout-feature-integration.html + - title: Check out purchases + link: docs/scos/dev/glue-api-guides/page.version/checking-out/checking-out-purchases.html + - title: Update payment data + link: docs/pbc/all/cart-and-checkout/page.version/base-shop/manage-using-glue-api/check-out/glue-api-update-payment-data.html + - title: Submit checkout data + link: docs/scos/dev/glue-api-guides/page.version/checking-out/submitting-checkout-data.html +--- + +{% include pbc/all/install-features/202403.0/install-glue-api/install-the-checkout-glue-api.md %} diff --git a/docs/pbc/all/order-management-system/202307.0/base-shop/import-and-export-data/orders-data-export/orders-data-export.md b/docs/pbc/all/order-management-system/202307.0/base-shop/import-and-export-data/orders-data-export/orders-data-export.md index 28b7609bb15..61c2b37d67c 100644 --- a/docs/pbc/all/order-management-system/202307.0/base-shop/import-and-export-data/orders-data-export/orders-data-export.md +++ b/docs/pbc/all/order-management-system/202307.0/base-shop/import-and-export-data/orders-data-export/orders-data-export.md @@ -8,6 +8,8 @@ originalArticleId: 0a38b991-f10c-4f6c-90db-247a62cda2e7 redirect_from: - /docs/scos/dev/data-import/202212.0/data-export.html - /docs/scos/dev/sdk/data-export.html + - /docs/scos/dev/data-export/202307.0/data-export.html + - /docs/scos/dev/data-export/202307.0/data-export-orders-.csv-files-format.html related: - title: Install the Sales Data Export feature link: docs/pbc/all/order-management-system/page.version/base-shop/install-and-upgrade/install-features/install-the-sales-data-export-feature.html diff --git a/docs/pbc/all/order-management-system/202311.0/base-shop/manage-in-the-back-office/orders/change-the-state-of-order-items.md b/docs/pbc/all/order-management-system/202311.0/base-shop/manage-in-the-back-office/orders/change-the-state-of-order-items.md index 76c930da7e5..67753be5741 100644 --- a/docs/pbc/all/order-management-system/202311.0/base-shop/manage-in-the-back-office/orders/change-the-state-of-order-items.md +++ b/docs/pbc/all/order-management-system/202311.0/base-shop/manage-in-the-back-office/orders/change-the-state-of-order-items.md @@ -60,8 +60,8 @@ The following table describes the states you can select for order items. | Cancel | Select this state to cancel the order on the customer’s behalf. | | Skip Timeout | Select this status to end the time period during which the customer can cancel the order. | | Generate invoice | Select this state to generate the invoice and send it to the customer. If invoice BCC is configured for your project, the copy of the invoice will be sent to the specified email address as well. You can trigger the invoice-generate only for the whole order. Even if you selected just some of the order items, the invoice is generated for the whole order.| -| Picking list generation schedule | Select this state to generate a picklist. Available with the [Fulfillment App feature](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-feature-overview.html). | -| Prepare for picking | Makes the picklist available in the Fulfillment App. Available with the [Fulfillment App feature](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-feature-overview.html). | +| Picking list generation schedule | Select this state to generate a picklist. Available with the [Fulfillment App](/docs/pbc/all/warehouse-management-system/{{page.version}}/unified-commerce/fulfillment-app-overview.html). | +| Prepare for picking | Makes the picklist available in the Fulfillment App. Available with the [Fulfillment App](/docs/pbc/all/warehouse-management-system/{{page.version}}/unified-commerce/fulfillment-app-overview.html). | | Ship | Select this state once the order is shipped.| | Stock-update | Select this state when you update the number of available products of products in **Products > Availability**. | | Close| Select this state when your customer has successfully received the ordered items and is satisfied with their quality.| diff --git a/docs/pbc/all/order-management-system/202311.0/marketplace/manage-in-the-back-office/manage-marketplace-orders.md b/docs/pbc/all/order-management-system/202311.0/marketplace/manage-in-the-back-office/manage-marketplace-orders.md index 233867d60d2..b78714e05be 100644 --- a/docs/pbc/all/order-management-system/202311.0/marketplace/manage-in-the-back-office/manage-marketplace-orders.md +++ b/docs/pbc/all/order-management-system/202311.0/marketplace/manage-in-the-back-office/manage-marketplace-orders.md @@ -132,8 +132,8 @@ You can set different states for your order by clicking the action buttons. The | ORDER STATE | DESCRIPTION | |---|---| | Pay | Click this button once you receive the payment for the order from your customer. | -| Picking list generation schedule | Select this state to generate a picklist. Available with the [Fulfillment App feature](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-feature-overview.html). | -| Prepare for picking | Makes the picklist available in the Fulfillment App. Available with the [Fulfillment App feature](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-feature-overview.html). | +| Picking list generation schedule | Select this state to generate a picklist. Available with the [Fulfillment App](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-overview.html). | +| Prepare for picking | Makes the picklist available in the Fulfillment App. Available with the [Fulfillment App](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-overview.html). | | Cancel | Click this button to cancel the order on the customer’s behalf. | | Close | Click this button when your customer has successfully received the ordered items and is satisfied with their quality. | | Refund | Click this button in case of a refund. | diff --git a/docs/pbc/all/search/202403.0/base-shop/manage-using-glue-api/glue-api-search-the-product-catalog.md b/docs/pbc/all/search/202403.0/base-shop/manage-using-glue-api/glue-api-search-the-product-catalog.md new file mode 100644 index 00000000000..f147f697353 --- /dev/null +++ b/docs/pbc/all/search/202403.0/base-shop/manage-using-glue-api/glue-api-search-the-product-catalog.md @@ -0,0 +1,6704 @@ +--- +title: "Glue API: Search the product catalog" +description: This article provides a bunch of sample requests to be used to achieve the implementation of search options and gives explanations of request values. +last_updated: Dec 19, 2023 +template: glue-api-storefront-guide-template +originalLink: https://documentation.spryker.com/2021080/docs/searching-the-product-catalog +originalArticleId: d8d530bf-7cb2-473f-a7cb-0db96957700e +redirect_from: + - /docs/scos/dev/glue-api-guides/202311.0/searching-the-product-catalog.html + - /docs/pbc/all/search/202311.0/manage-using-glue-api/glue-api-search-the-product-catalog.html +related: + - title: Retrieving autocomplete and search suggestions + link: docs/scos/dev/glue-api-guides/page.version/searching-the-product-catalog.html + - title: Glue API - Catalog feature integration + link: docs/pbc/all/search/page.version/base-shop/install-and-upgrade/install-features-and-glue-api/install-the-catalog-glue-api.html + - title: Catalog feature overview + link: docs/scos/user/features/page.version/catalog-feature-overview.html +--- + +The implementation of the search API offers you the same search experience as in the Spryker Demo Shops. The search engine used is Elasticsearch, and search results go beyond the simple listing of products in the results section. The list of search results is paginated according to your configuration, and spelling suggestions are offered when needed. In addition, sorting and facets are supported to narrow down the search results. + +In your development, this endpoint can help you to: + +* Implement catalog search functionality, including the category tree, facets, and pagination. +* Retrieve a list of products to be displayed anywhere you want. + +## Installation + +For detailed information on the modules that provide the API functionality and related installation instructions, see [Glue API: Catalog feature integration](/docs/pbc/all/search/{{page.version}}/base-shop/install-and-upgrade/install-features-and-glue-api/install-the-catalog-glue-api.html). + +## Search by products + +To search by products, send the request: + +*** +`GET` **/catalog-search** +*** + +### Request + +| QUERY PARAMETER | DESCRIPTION | POSSIBLE VALUES | +|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| include | Adds resource relationships to the request | abstract-products | +| q | Restricts the returned items to the values of the provided parameters | | +| price[min] | Restricts the returned items to products with prices matching or above the provided value. `price[min]=10` equals to 1000 cents or 10 monetary units | {% raw %}{{{% endraw %}minimum_price{% raw %}}}{% endraw %} | +| price[max] | Restricts the returned items to products with prices matching or below the provided value. `price[max]=10` equals to 1000 cents or 10 monetary units | {% raw %}{{{% endraw %}maximum_price{% raw %}}}{% endraw %} | +| priceMode | Returns the prices defined for the price mode value provided. Useful if your store is configured with multiple price modes. | {% raw %}{{{% endraw %}price_mode_name{% raw %}}}{% endraw %}
Spryker provides two price modes by default: `GROSS_MODE` and `NET_MODE`. For more information, see [Configuration of price modes and types](/docs/pbc/all/price-management/{{page.version}}/base-shop/extend-and-customize/configuration-of-price-modes-and-types.html). | +| brand | Specifies the product brand | {% raw %}{{{% endraw %}brand_name{% raw %}}}{% endraw %} | +| label | Specifies the product label | {% raw %}{{{% endraw %}label{% raw %}}}{% endraw %} | +| weight | Specifies the product weight | {% raw %}{{{% endraw %}weight{% raw %}}}{% endraw %} | +| color | Specifies the product color | {% raw %}{{{% endraw %}color{% raw %}}}{% endraw %} | +| storage_capacity[] | Specifies the storage capacity of a product | {% raw %}{{{% endraw %}storage_capacity{% raw %}}}{% endraw %} | +| rating[min] | Specifies the minimum rating of a product | {% raw %}{{{% endraw %}rating{% raw %}}}{% endraw %} | +| category | Specifies the category to search the products in | {% raw %}{{{% endraw %}category_node_id{% raw %}}}{% endraw %}
For the category node IDs, [retrieve the category tree](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/manage-using-glue-api/categories/glue-api-retrieve-category-trees.html). | +| currency | Sets a currency | {% raw %}{{{% endraw %}currency{% raw %}}}{% endraw %} | +| sort | Sorts the search results | For the list of possible values, run the catalog search request and find the list in the `sortParamNames` array.
For the default Spryker Demo Shop sorting parameters, see [Sorting parameters](#sorting). | +| page | Sets the number of the search results page from which the results are retrieved | {% raw %}{{{% endraw %}page_number{% raw %}}}{% endraw %} | +| ipp | Sets the number of products per page | {% raw %}{{{% endraw %}number_of_products{% raw %}}}{% endraw %} | + +| REQUEST | USAGE | +|----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| +| `GET https://glue.mysprykershop.com/catalog-search` | Search for all available products. | +| `GET https://glue.mysprykershop.com/catalog-search?q=` | Search for all available products. | +| `GET https://glue.mysprykershop.com/catalog-search?q=058` | Search for an abstract product by SKU *058*. | +| `GET https://glue.mysprykershop.com/catalog-search?q=058&include=abstract-products` | Search for an abstract product by SKU *058* with the included product details. | +| `GET https://glue.mysprykershop.com/catalog-search?q=Acer Liquid Jade` | Search for an abstract product by *Acer Liquid Jade* name. | +| `GET https://glue.mysprykershop.com/catalog-search?q=058_261755504` | Search for a concrete product by SKU *058_261755504*. | +| `GET https://glue.mysprykershop.com/catalog-search?q=sony+red` | Search for products by multiple attributes (brand *Sony* and *red* color). | +| `GET https://glue.mysprykershop.com/catalog-search?q=sony&price%5Bmin%5D=99.99&price%5Bmax%5D=150` | Search for products within a minimum (*99.99*) and maximum (*150*) price range. | +| `GET https://glue.mysprykershop.com/catalog-search?q=sony` | Search for products of the *Sony* brand. | +| `GET https://glue.mysprykershop.com/catalog-search?priceMode=NET_MODE` | Specify that you want returned only prices defined in `NET_MODE`. | +| `GET https://glue.mysprykershop.com/catalog-search?label[]=NEW&label[]=SALE %` | Search for products with the *NEW* and *SALE* labels. | +| `GET https://glue.mysprykershop.com/catalog-search?weight[]=45 g` | Search for products by the *45 g* weight. | +| `GET https://glue.mysprykershop.com/catalog-search?color[]=Blue` | Search for products by the *Blue* color. | +| `GET https://glue.mysprykershop.com/catalog-search?storage_capacity[]=32 GB` | Search for products by the *32 GB* storage capacity. | +| `GET https://glue.mysprykershop.com/catalog-search?rating[min]=4` | Search for products by the rating *4*. | +| `GET https://glue.mysprykershop.com/catalog-search?category=6` | Search for products by the category node ID *6*. | +| `GET https://glue.mysprykershop.com/catalog-search?currency=CHF` | Define the *CHF* currency for the search result products. | +| `GET https://glue.mysprykershop.com/catalog-search?q=Sony&sort=name_asc` | Set sorting order ascending. | +| `GET https://glue.mysprykershop.com/catalog-search?q=Sony&sort=name_desc` | Set sorting order descending. | +| `GET https://glue.mysprykershop.com/catalog-search?q=Sony&sort=rating` | Sort found products by rating. | +| `GET https://glue.mysprykershop.com/catalog-search?q=Sony&sort=price_asc` | Sort found products by price ascending. | +| `GET https://glue.mysprykershop.com/catalog-search?q=Sony&sort=popularity` | Sort found products by popularity.
Available only in the [Master Suite](/docs/scos/user/intro-to-spryker/master-suite.html) for now. | +| `GET https://glue.mysprykershop.com/catalog-search?q=Sony&page=3` | Set a page to retrieve the search results from. | +| `GET https://glue.mysprykershop.com/catalog-search?q=Sony&ipp=24` | Set number of products per page. | +| `GET https://glue.mysprykershop.com/catalog-search?merchant_name=Spryker` | Filter the results by Merchant name.
Available only with the Marketplace.** | + +### Response + +
+Response sample: empty search criteria + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 224, + "currentPage": 1, + "maxPage": 23, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "073", + "price": 43458, + "abstractName": "Samsung Galaxy Note 3", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 43458, + "DEFAULT": 43458 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21927455-7956.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21927455-7956.jpg" + } + ] + }, + ... + { + "abstractSku": "154", + "price": 22240, + "abstractName": "Lenovo Yoga 500 14", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 22240, + "DEFAULT": 22240 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_lows/31980499_9888.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery/31980499_9888.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 224 + }, + { + "value": 5, + "doc_count": 72 + }, + { + "value": 18, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 66 + }, + { + "value": "New", + "doc_count": 5 + }, + { + "value": "Discontinued", + "doc_count": 2 + }, + { + "value": "Alternatives available", + "doc_count": 1 + } + ... + ], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "Black", + "doc_count": 82 + }, + { + "value": "White", + "doc_count": 38 + }, + ... + ], + "activeValue": null, + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + { + "name": "storage_capacity", + "localizedName": "Storage Capacity", + "docCount": null, + "values": [ + { + "value": "32 GB", + "doc_count": 5 + }, + { + "value": "128 GB", + "doc_count": 3 + }, + ... + ], + "activeValue": null, + "config": { + "parameterName": "storage_capacity", + "isMultiValued": true + } + }, + { + "name": "brand", + "localizedName": "Brand", + "docCount": null, + "values": [ + { + "value": "Samsung", + "doc_count": 46 + }, + { + "value": "Sony", + "doc_count": 43 + }, + ... + ], + "activeValue": null, + "config": { + "parameterName": "brand", + "isMultiValued": false + } + }, + { + "name": "touchscreen", + "localizedName": "Touchscreen", + "docCount": null, + "values": [ + { + "value": "Yes", + "doc_count": 5 + }, + { + "value": "No", + "doc_count": 3 + } + ], + "activeValue": null, + "config": { + "parameterName": "touchscreen", + "isMultiValued": false + } + }, + { + "name": "weight", + "localizedName": "Weight", + "docCount": null, + "values": [ + { + "value": "132 g", + "doc_count": 7 + }, + { + "value": "118 g", + "doc_count": 4 + }, + ... + ], + "activeValue": null, + "config": { + "parameterName": "weight", + "isMultiValued": true + } + }, + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 111 + }, + ... + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 0, + "max": 345699, + "activeMin": 0, + "activeMax": 345699, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 5, + "activeMin": 4, + "activeMax": 5, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 72, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 24, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 20, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 28, + "children": [] + } + ] + }, + { + "nodeId": 2, + "name": "Cameras & Camcorders", + "docCount": 67, + "children": [ + { + "nodeId": 4, + "name": "Digital Cameras", + "docCount": 41, + "children": [] + }, + { + "nodeId": 3, + "name": "Camcorders", + "docCount": 26, + "children": [] + } + ] + }, + ... + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=", + "last": "https://glue.mysprykershop.com/catalog-search?q=&page[offset]=216&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?q=&page[offset]=12&page[limit]=12" + } +} +``` +
+ + +
+Response sample: search for an abstract product + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 1, + "currentPage": 1, + "maxPage": 1, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "058", + "price": 26432, + "abstractName": "Acer Liquid Jade", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 26432, + "DEFAULT": 26432 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/img_24245592_medium_1483521161_4318_9985.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24245592-2688.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 1 + }, + { + "value": 11, + "doc_count": 1 + }, + { + "value": 12, + "doc_count": 1 + }, + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "White", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + { + "name": "storage_capacity", + "localizedName": "Storage Capacity", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "storage_capacity", + "isMultiValued": true + } + }, + { + "name": "brand", + "localizedName": "Brand", + "docCount": null, + "values": [ + { + "value": "Acer", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "brand", + "isMultiValued": false + } + }, + { + "name": "touchscreen", + "localizedName": "Touchscreen", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "touchscreen", + "isMultiValued": false + } + }, + { + "name": "weight", + "localizedName": "Weight", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "weight", + "isMultiValued": true + } + }, + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 26432, + "max": 26432, + "activeMin": 26432, + "activeMax": 26432, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 0, + "max": 0, + "activeMin": 0, + "activeMax": 0, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 0, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 0, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=058" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=058", + "last": "https://glue.mysprykershop.com/catalog-search?q=058&page[offset]=0&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=058&page[offset]=0&page[limit]=12" + } +} +``` +
+ + +
+Response sample: search for an abstract product with the included abstract product details + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 1, + "currentPage": 1, + "maxPage": 1, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "058", + "price": 26432, + "abstractName": "Acer Liquid Jade", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 26432, + "DEFAULT": 26432 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/img_24245592_medium_1483521161_4318_9985.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24245592-2688.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 1 + }, + { + "value": 11, + "doc_count": 1 + }, + { + "value": 12, + "doc_count": 1 + }, + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "White", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + { + "name": "storage_capacity", + "localizedName": "Storage Capacity", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "storage_capacity", + "isMultiValued": true + } + }, + { + "name": "brand", + "localizedName": "Brand", + "docCount": null, + "values": [ + { + "value": "Acer", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "brand", + "isMultiValued": false + } + }, + { + "name": "touchscreen", + "localizedName": "Touchscreen", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "touchscreen", + "isMultiValued": false + } + }, + { + "name": "weight", + "localizedName": "Weight", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "weight", + "isMultiValued": true + } + }, + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 26432, + "max": 26432, + "activeMin": 26432, + "activeMax": 26432, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 0, + "max": 0, + "activeMin": 0, + "activeMax": 0, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 0, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 0, + "children": [] + } + ] + }, + { + "nodeId": 2, + "name": "Cameras & Camcorders", + "docCount": 0, + "children": [ + { + "nodeId": 4, + "name": "Digital Cameras", + "docCount": 0, + "children": [] + }, + { + "nodeId": 3, + "name": "Camcorders", + "docCount": 0, + "children": [] + } + ] + }, + { + "nodeId": 15, + "name": "Cables", + "docCount": 0, + "children": [] + }, + { + "nodeId": 11, + "name": "Telecom & Navigation", + "docCount": 1, + "children": [ + { + "nodeId": 12, + "name": "Smartphones", + "docCount": 1, + "children": [] + } + ] + }, + { + "nodeId": 9, + "name": "Smart Wearables", + "docCount": 0, + "children": [ + { + "nodeId": 10, + "name": "Smartwatches", + "docCount": 0, + "children": [] + } + ] + }, + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=058&include=abstract-products" + }, + "relationships": { + "abstract-products": { + "data": [ + { + "type": "abstract-products", + "id": "058" + } + ] + } + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=058&include=abstract-products", + "last": "https://glue.mysprykershop.com/catalog-search?q=058&include=abstract-products&page[offset]=0&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=058&include=abstract-products&page[offset]=0&page[limit]=12" + }, + "included": [ + { + "type": "abstract-products", + "id": "058", + "attributes": { + "sku": "058", + "averageRating": null, + "reviewCount": 0, + "name": "Acer Liquid Jade", + "description": "Edge Handle Assign a colour and place on People Edge to five of your favourite contacts. Reach out to them at any time by simply swiping inwards from the Edge Handle. When words aren’t enough, send a poke or an emoticon to your People Edge contacts. OnCircle lets you communicate in ways that really count. When it comes to your favourite tracks, sound quality matters. Enjoy rich, balanced audio with Bluetooth audio accessories that support UHQ Audio. Celebrations are always better when you are sharing. Livestream the fun straight from your Galaxy S6 edge+ using the camera’s Live Broadcast function. 4GB RAM and LTE Cat.9 support ensure uninterrupted streaming. No more shaky handheld videos. Video Digital Imaging Stabilisation meets Optical Image Stabilisation to ensure you get clear and steady footage every time.", + "attributes": { + "form_factor": "Bar", + "sim_card_type": "NanoSIM", + "display_type": "IPS", + "internal_ram": "2048 MB", + "brand": "Acer", + "color": "White" + }, + "superAttributesDefinition": [ + "form_factor", + "color" + ], + "superAttributes": { + "series": [ + "Jade Plus", + "Jade Z" + ] + }, + "attributeMap": { + "product_concrete_ids": [ + "058_24245592", + "058_26175504" + ], + "super_attributes": { + "series": [ + "Jade Plus", + "Jade Z" + ] + }, + "attribute_variants": { + "series:Jade Plus": { + "id_product_concrete": "058_24245592" + }, + "series:Jade Z": { + "id_product_concrete": "058_26175504" + } + } + }, + "metaTitle": "Acer Liquid Jade", + "metaKeywords": "Acer,Communication Electronics", + "metaDescription": "Edge Handle Assign a colour and place on People Edge to five of your favourite contacts. Reach out to them at any time by simply swiping inwards from the E", + "attributeNames": { + "form_factor": "Form factor", + "sim_card_type": "SIM card type", + "display_type": "Display type", + "internal_ram": "Internal RAM", + "brand": "Brand", + "color": "Color", + "series": "Series" + }, + "url": "/en/acer-liquid-jade-58" + }, + "links": { + "self": "https://glue.mysprykershop.com/abstract-products/058" + } + } + ] +} +``` +
+ + +
+Response sample: search for a concrete product + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 1, + "currentPage": 1, + "maxPage": 1, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "058", + "price": 26432, + "abstractName": "Acer Liquid Jade", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 26432, + "DEFAULT": 26432 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/img_24245592_medium_1483521161_4318_9985.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24245592-2688.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 1 + }, + { + "value": 11, + "doc_count": 1 + }, + { + "value": 12, + "doc_count": 1 + }, + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "White", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + { + "name": "storage_capacity", + "localizedName": "Storage Capacity", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "storage_capacity", + "isMultiValued": true + } + }, + { + "name": "brand", + "localizedName": "Brand", + "docCount": null, + "values": [ + { + "value": "Acer", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "brand", + "isMultiValued": false + } + }, + { + "name": "touchscreen", + "localizedName": "Touchscreen", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "touchscreen", + "isMultiValued": false + } + }, + { + "name": "weight", + "localizedName": "Weight", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "weight", + "isMultiValued": true + } + }, + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 26432, + "max": 26432, + "activeMin": 26432, + "activeMax": 26432, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 0, + "max": 0, + "activeMin": 0, + "activeMax": 0, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 0, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 0, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=058_26175504" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=058_26175504", + "last": "https://glue.mysprykershop.com/catalog-search?q=058_26175504&page[offset]=0&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=058_26175504&page[offset]=0&page[limit]=12" + } +} +``` +
+ + +
+Response sample: search for n item using multiple product attributes in search request + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 70, + "currentPage": 1, + "maxPage": 7, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "108", + "price": 17774, + "abstractName": "Sony SW2 SmartWatch", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 17774, + "DEFAULT": 17774 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/img_21047360_medium_1482828045_101_30852.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21047360-4814.jpg" + } + ] + }, + { + "abstractSku": "027", + "price": 4900, + "abstractName": "Sony Cyber-shot DSC-WX500", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 4900, + "DEFAULT": 4900 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 5200, + "ORIGINAL": 5200 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/low/7822599-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/medium/7822599-Sony.jpg" + } + ] + }, + { + "abstractSku": "001", + "price": 9999, + "abstractName": "Canon IXUS 160", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 9999, + "DEFAULT": 9999 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 12564, + "ORIGINAL": 12564 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/25904006-8438.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/25904006-8438.jpg" + } + ] + }, + ... + { + "abstractSku": "196", + "price": 24940, + "abstractName": "Sony HDR-AS20", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 24940, + "DEFAULT": 24940 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/23120327-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/23120327-Sony.jpg" + } + ] + }, + { + "abstractSku": "197", + "price": 23010, + "abstractName": "Sony HDR-AS20", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 23010, + "DEFAULT": 23010 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21421718-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21421718-Sony.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 70 + }, + { + "value": 2, + "doc_count": 32 + }, + { + "value": 4, + "doc_count": 20 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 21 + } + ], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "Black", + "doc_count": 26 + }, + { + "value": "White", + "doc_count": 15 + }, + { + "value": "Red", + "doc_count": 8 + } + ], + "activeValue": null, + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + { + "name": "storage_capacity", + "localizedName": "Storage Capacity", + "docCount": null, + "values": [ + { + "value": "8 GB", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "storage_capacity", + "isMultiValued": true + } + }, + { + "name": "brand", + "localizedName": "Brand", + "docCount": null, + "values": [ + { + "value": "Sony", + "doc_count": 43 + } + ], + "activeValue": null, + "config": { + "parameterName": "brand", + "isMultiValued": false + } + }, + { + "name": "touchscreen", + "localizedName": "Touchscreen", + "docCount": null, + "values": [ + { + "value": "Yes", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "touchscreen", + "isMultiValued": false + } + }, + { + "name": "weight", + "localizedName": "Weight", + "docCount": null, + "values": [ + { + "value": "45 g", + "doc_count": 4 + }, + { + "value": "58 g", + "doc_count": 2 + } + ], + "activeValue": null, + "config": { + "parameterName": "weight", + "isMultiValued": true + } + }, + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 38 + }, + { + "value": "Video King", + "doc_count": 35 + }, + { + "value": "Sony Experts", + "doc_count": 29 + }, + { + "value": "Budget Cameras", + "doc_count": 20 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 1250, + "max": 345699, + "activeMin": 1250, + "activeMax": 345699, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 19, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony Red" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony Red", + "last": "https://glue.mysprykershop.com/catalog-search?q=Sony Red&page[offset]=60&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=Sony Red&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?q=Sony Red&page[offset]=12&page[limit]=12" + } +} +``` +
+ + +
+Response sample: search for an item with minimum and maximum price range + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 7, + "currentPage": 1, + "maxPage": 1, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "200", + "price": 13865, + "abstractName": "Sony HXR-MC50E", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 13865, + "DEFAULT": 13865 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/5787536_8636.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery/5787536_8636.jpg" + } + ] + }, + { + "abstractSku": "077", + "price": 14554, + "abstractName": "Sony Xperia Z3 Compact", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 14554, + "DEFAULT": 14554 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 15000, + "ORIGINAL": 15000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/24584210-216.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24584210-216.jpg" + } + ] + }, + { + "abstractSku": "016", + "price": 9999, + "abstractName": "Sony Cyber-shot DSC-W800", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 9999, + "DEFAULT": 9999 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21748907-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21748907-Sony.jpg" + } + ] + } + ... + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 7 + }, + ... + { + "value": 12, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 2 + } + ], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "Black", + "doc_count": 3 + }, + { + "value": "Blue", + "doc_count": 1 + }, + { + "value": "Purple", + "doc_count": 1 + }, + { + "value": "Silver", + "doc_count": 1 + }, + { + "value": "White", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + { + "name": "storage_capacity", + "localizedName": "Storage Capacity", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "storage_capacity", + "isMultiValued": true + } + }, + { + "name": "brand", + "localizedName": "Brand", + "docCount": null, + "values": [ + { + "value": "Sony", + "doc_count": 7 + } + ], + "activeValue": null, + "config": { + "parameterName": "brand", + "isMultiValued": false + } + }, + { + "name": "touchscreen", + "localizedName": "Touchscreen", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "touchscreen", + "isMultiValued": false + } + }, + { + "name": "weight", + "localizedName": "Weight", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "weight", + "isMultiValued": true + } + }, + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 6 + }, + { + "value": "Sony Experts", + "doc_count": 5 + }, + { + "value": "Video King", + "doc_count": 5 + }, + { + "value": "Budget Cameras", + "doc_count": 4 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 3000, + "max": 345699, + "activeMin": 9999, + "activeMax": 15000, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 0, + "max": 0, + "activeMin": 0, + "activeMax": 0, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 0, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 0, + "children": [] + } + ] + }, + { + "nodeId": 2, + "name": "Cameras & Camcorders", + "docCount": 5, + "children": [ + { + "nodeId": 4, + "name": "Digital Cameras", + "docCount": 4, + "children": [] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&price[min]=99.99&price[max]=150" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&price[min]=99.99&price[max]=150", + "last": "https://glue.mysprykershop.com/catalog-search?q=Sony&price[min]=99.99&price[max]=150&page[offset]=0&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=Sony&price[min]=99.99&price[max]=150&page[offset]=0&page[limit]=12" + } +} +``` +
+ + +
+Response sample: search for an item by brand + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 43, + "currentPage": 1, + "maxPage": 5, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "210", + "price": 100000, + "abstractName": "Sony Bundle", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 100000, + "DEFAULT": 100000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/23120327-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/23120327-Sony.jpg" + } + ] + }, + ... + { + "abstractSku": "093", + "price": 24899, + "abstractName": "Sony SmartWatch 3", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 24899, + "DEFAULT": 24899 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/24495843-7844.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24495843-7844.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 43 + }, + ... + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 10 + } + ], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "Black", + "doc_count": 14 + }, + ... + { + "value": "Purple", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + { + "name": "storage_capacity", + "localizedName": "Storage Capacity", + "docCount": null, + "values": [ + { + "value": "8 GB", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "storage_capacity", + "isMultiValued": true + } + }, + { + "name": "brand", + "localizedName": "Brand", + "docCount": null, + "values": [ + { + "value": "Samsung", + "doc_count": 46 + }, + ... + { + "value": "Toshiba", + "doc_count": 5 + } + ], + "activeValue": "Sony", + "config": { + "parameterName": "brand", + "isMultiValued": false + } + }, + { + "name": "touchscreen", + "localizedName": "Touchscreen", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "touchscreen", + "isMultiValued": false + } + }, + { + "name": "weight", + "localizedName": "Weight", + "docCount": null, + "values": [ + { + "value": "45 g", + "doc_count": 4 + }, + { + "value": "58 g", + "doc_count": 2 + }, + { + "value": "63.5 g", + "doc_count": 2 + } + ], + "activeValue": null, + "config": { + "parameterName": "weight", + "isMultiValued": true + } + }, + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 30 + }, + ... + { + "value": "Budget Cameras", + "doc_count": 14 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 3000, + "max": 345699, + "activeMin": 3000, + "activeMax": 345699, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 1, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "glue.mysprykershop.com/catalog-search?brand=Sony" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?brand=Sony", + "last": "https://glue.mysprykershop.com/catalog-search?brand=Sony&page[offset]=36&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?brand=Sony&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?brand=Sony&page[offset]=12&page[limit]=12" + } +} +``` +
+ + +
+Response sample: search for an item by labels + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 66, + "currentPage": 1, + "maxPage": 7, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "060", + "price": 41837, + "abstractName": "Acer Liquid Jade", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 41837, + "DEFAULT": 41837 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/26027598-6953.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/26027598-6953.jpg" + } + ] + }, + ... + { + "abstractSku": "031", + "price": 40024, + "abstractName": "Canon PowerShot G9 X", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 40024, + "DEFAULT": 40024 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 41000, + "ORIGINAL": 41000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/30021637_4678.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery/30021637_4678.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 66 + }, + ... + { + "value": 15, + "doc_count": 3 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 66 + }, + ... + { + "value": "Alternatives available", + "doc_count": 1 + } + ], + "activeValue": [ + "NEW", + "SALE %" + ], + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "Black", + "doc_count": 20 + }, + ... + { + "value": "Gold", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + ... + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 33 + }, + { + "value": "Video King", + "doc_count": 18 + }, + { + "value": "Budget Cameras", + "doc_count": 12 + }, + { + "value": "Sony Experts", + "doc_count": 9 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 162, + "max": 95000, + "activeMin": 162, + "activeMax": 95000, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 0, + "max": 0, + "activeMin": 0, + "activeMax": 0, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 20, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 4, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 8, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 8, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?label[0]=NEW&label[1]=SALE %" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?label[0]=NEW&label[1]=SALE %", + "last": "https://glue.mysprykershop.com/catalog-search?label[0]=NEW&label[1]=SALE %&page[offset]=60&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?label[0]=NEW&label[1]=SALE %&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?label[0]=NEW&label[1]=SALE %&page[offset]=12&page[limit]=12" + } +} +``` +
+ + +
+Response sample: search for an item by weight + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 4, + "currentPage": 1, + "maxPage": 1, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "090", + "price": 20160, + "abstractName": "Sony SmartWatch 3", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 20160, + "DEFAULT": 20160 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery/26219658_3401.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery_mediums/img_26219658_medium_1483953936_4642_16454.jpg" + } + ] + }, + ... + { + "abstractSku": "093", + "price": 24899, + "abstractName": "Sony SmartWatch 3", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 24899, + "DEFAULT": 24899 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/24495843-7844.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24495843-7844.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 4 + }, + { + "value": 9, + "doc_count": 4 + }, + { + "value": 10, + "doc_count": 4 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "Silver", + "doc_count": 2 + }, + { + "value": "Black", + "doc_count": 1 + }, + { + "value": "White", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + { + "name": "storage_capacity", + "localizedName": "Storage Capacity", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "storage_capacity", + "isMultiValued": true + } + }, + { + "name": "brand", + "localizedName": "Brand", + "docCount": null, + "values": [ + { + "value": "Sony", + "doc_count": 4 + } + ], + "activeValue": null, + "config": { + "parameterName": "brand", + "isMultiValued": false + } + }, + { + "name": "touchscreen", + "localizedName": "Touchscreen", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "touchscreen", + "isMultiValued": false + } + }, + { + "name": "weight", + "localizedName": "Weight", + "docCount": null, + "values": [ + { + "value": "132 g", + "doc_count": 7 + }, + ... + { + "value": "22.39 oz", + "doc_count": 2 + } + ], + "activeValue": [ + "45 g" + ], + "config": { + "parameterName": "weight", + "isMultiValued": true + } + }, + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 4 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 17459, + "max": 24899, + "activeMin": 17459, + "activeMax": 24899, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 0, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 0, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?weight[0]=45 g" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?weight[0]=45 g", + "last": "https://glue.mysprykershop.com/catalog-search?weight[0]=45 g&page[offset]=0&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?weight[0]=45 g&page[offset]=0&page[limit]=12" + } +} +``` +
+ + +
+Response sample: search for an item by color + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 10, + "currentPage": 1, + "maxPage": 1, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "068", + "price": 8005, + "abstractName": "Samsung Galaxy S5", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 8005, + "DEFAULT": 8005 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 9000, + "ORIGINAL": 9000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21927453-1632.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21927453-1632.jpg" + } + ] + }, + ... + { + "abstractSku": "005", + "price": 7000, + "abstractName": "Canon IXUS 175", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 7000, + "DEFAULT": 7000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/30663301_9631.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery/30663301_9631.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 10 + }, + ... + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 2 + }, + { + "value": "New", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "Black", + "doc_count": 82 + }, + { + "value": "White", + "doc_count": 38 + }, + { + "value": "Silver", + "doc_count": 20 + }, + { + "value": "Blue", + "doc_count": 10 + }, + ... + ], + "activeValue": [ + "Blue" + ], + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + { + "name": "storage_capacity", + "localizedName": "Storage Capacity", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "storage_capacity", + "isMultiValued": true + } + }, + { + "name": "brand", + "localizedName": "Brand", + "docCount": null, + "values": [ + { + "value": "Samsung", + "doc_count": 3 + }, + ... + { + "value": "TomTom", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "brand", + "isMultiValued": false + } + }, + { + "name": "touchscreen", + "localizedName": "Touchscreen", + "docCount": null, + "values": [ + { + "value": "Yes", + "doc_count": 2 + } + ], + "activeValue": null, + "config": { + "parameterName": "touchscreen", + "isMultiValued": false + } + }, + { + "name": "weight", + "localizedName": "Weight", + "docCount": null, + "values": [ + { + "value": "18 g", + "doc_count": 2 + }, + { + "value": "132 g", + "doc_count": 1 + }, + { + "value": "20 g", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "weight", + "isMultiValued": true + } + }, + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 9 + }, + { + "value": "Budget Cameras", + "doc_count": 2 + }, + { + "value": "Video King", + "doc_count": 2 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 6277, + "max": 39353, + "activeMin": 6277, + "activeMax": 39353, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 1, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 1, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 0, + "children": [] + } + ] + }, + ... + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?color[0]=Blue" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?color[0]=Blue", + "last": "https://glue.mysprykershop.com/catalog-search?color[0]=Blue&page[offset]=0&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?color[0]=Blue&page[offset]=0&page[limit]=12" + } +} +``` +
+ + +
+Response: search for an item by storage capacity + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 5, + "currentPage": 1, + "maxPage": 1, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "051", + "price": 12428, + "abstractName": "Samsung Galaxy S6 edge", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 12428, + "DEFAULT": 12428 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 13000, + "ORIGINAL": 13000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/29567823_6321.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery/29567823_6321.jpg" + } + ] + }, + ... + { + "abstractSku": "053", + "price": 40651, + "abstractName": "Samsung Galaxy S6 edge", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 40651, + "DEFAULT": 40651 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/30614390_2538.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery/30614390_2538.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 5 + }, + { + "value": 11, + "doc_count": 5 + }, + { + "value": 14, + "doc_count": 5 + }, + { + "value": 12, + "doc_count": 4 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + ... + { + "name": "storage_capacity", + "localizedName": "Storage Capacity", + "docCount": null, + "values": [ + { + "value": "32 GB", + "doc_count": 5 + }, + { + "value": "128 GB", + "doc_count": 3 + }, + { + "value": "64 GB", + "doc_count": 3 + }, + { + "value": "16 GB", + "doc_count": 2 + }, + { + "value": "8 GB", + "doc_count": 1 + } + ], + "activeValue": [ + "32 GB" + ], + "config": { + "parameterName": "storage_capacity", + "isMultiValued": true + } + }, + ... + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 4 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 9002, + "max": 43458, + "activeMin": 9002, + "activeMax": 43458, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 0, + "max": 0, + "activeMin": 0, + "activeMax": 0, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 0, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 0, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?storage_capacity[0]=32 GB" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?storage_capacity[0]=32 GB", + "last": "https://glue.mysprykershop.com/catalog-search?storage_capacity[0]=32 GB&page[offset]=0&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?storage_capacity[0]=32 GB&page[offset]=0&page[limit]=12" + } +} +``` +
+ + +
+Response sample: search for an item by rating + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 5, + "currentPage": 1, + "maxPage": 1, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "139", + "price": 3454, + "abstractName": "Asus Transformer Book T200TA", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 3454, + "DEFAULT": 3454 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/24699831-1991.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24699831-1991.jpg" + } + ] + }, +... + { + "abstractSku": "093", + "price": 24899, + "abstractName": "Sony SmartWatch 3", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 24899, + "DEFAULT": 24899 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/24495843-7844.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24495843-7844.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 5 + }, + ... + { + "value": 10, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + ... + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 4 + }, + { + "value": "Budget Cameras", + "doc_count": 1 + }, + { + "value": "Sony Experts", + "doc_count": 1 + }, + { + "value": "Video King", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 3454, + "max": 39353, + "activeMin": 3454, + "activeMax": 39353, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 5, + "activeMin": 4, + "activeMax": 5, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 1, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 1, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 0, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?rating[min]=4" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?rating[min]=4", + "last": "https://glue.mysprykershop.com/catalog-search?rating[min]=4&page[offset]=0&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?rating[min]=4&page[offset]=0&page[limit]=12" + } +} +``` +
+ + +
+Response sample: search for an item by category + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 24, + "currentPage": 1, + "maxPage": 3, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "134", + "price": 1879, + "abstractName": "Acer Aspire S7", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 1879, + "DEFAULT": 1879 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 2000, + "ORIGINAL": 2000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/29759322_2351.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery_raw/29759322_2351.png" + } + ] + }, + ... + { + "abstractSku": "142", + "price": 21192, + "abstractName": "Asus Zenbook US303UB", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 21192, + "DEFAULT": 21192 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_lows/30943081_4685.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery/30943081_4685.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + ... + { + "value": 6, + "doc_count": 24 + }, + ... + { + "value": 18, + "doc_count": 1 + } + ], + "activeValue": "6", + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + ... + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 1879, + "max": 44182, + "activeMin": 1879, + "activeMax": 44182, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 24, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 24, + "children": [] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?category=6" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?category=6", + "last": "https://glue.mysprykershop.com/catalog-search?category=6&page[offset]=12&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?category=6&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?category=6&page[offset]=12&page[limit]=12" + } +} +``` +
+ + +
+Response sample: set the search results currency + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 220, + "currentPage": 1, + "maxPage": 22, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "060", + "price": 48113, + "abstractName": "Acer Liquid Jade", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "CHF", + "symbol": "CHF", + "name": "Swiss Franc" + }, + "grossAmount": 48113, + "DEFAULT": 48113 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/26027598-6953.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/26027598-6953.jpg" + } + ] + }, + ... + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "CHF", + "symbol": "CHF", + "name": "Swiss Franc" + }, + "grossAmount": 47150, + "ORIGINAL": 47150 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/30021637_4678.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery/30021637_4678.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 220 + }, + ... + { + "value": 17, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + ... + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 110 + }, + { + "value": "Video King", + "doc_count": 66 + }, + { + "value": "Budget Cameras", + "doc_count": 37 + }, + { + "value": "Sony Experts", + "doc_count": 26 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-CHF-GROSS_MODE", + "localizedName": "Price range", + "min": 0, + "max": 397554, + "activeMin": 0, + "activeMax": 397554, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 5, + "activeMin": 4, + "activeMax": 5, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 72, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 24, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 20, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 28, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?currency=CHF" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?currency=CHF", + "last": "https://glue.mysprykershop.com/catalog-search?currency=CHF&page[offset]=216&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?currency=CHF&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?currency=CHF&page[offset]=12&page[limit]=12" + } +} +``` +
+ + +
+Response sample: sort the results in ascending order + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": "name_asc", + "currentSortOrder": "asc" + }, + "pagination": { + "numFound": 43, + "currentPage": 1, + "maxPage": 5, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "210", + "price": 100000, + "abstractName": "Sony Bundle", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 100000, + "DEFAULT": 100000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/23120327-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/23120327-Sony.jpg" + } + ] + }, + { + "abstractSku": "016", + "price": 9999, + "abstractName": "Sony Cyber-shot DSC-W800", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 9999, + "DEFAULT": 9999 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21748907-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21748907-Sony.jpg" + } + ] + }, + { + "abstractSku": "017", + "price": 345699, + "abstractName": "Sony Cyber-shot DSC-W800", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 345699, + "DEFAULT": 345699 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21748906-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21748906-Sony.jpg" + } + ] + }, + { + "abstractSku": "020", + "price": 10580, + "abstractName": "Sony Cyber-shot DSC-W830", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 10580, + "DEFAULT": 10580 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 10599, + "ORIGINAL": 10599 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21081478-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21081478-Sony.jpg" + } + ] + }, + { + "abstractSku": "019", + "price": 9999, + "abstractName": "Sony Cyber-shot DSC-W830", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 9999, + "DEFAULT": 9999 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21081473-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21081473-Sony.jpg" + } + ] + }, + { + "abstractSku": "021", + "price": 10680, + "abstractName": "Sony Cyber-shot DSC-W830", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 10680, + "DEFAULT": 10680 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21081475-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21081475-Sony.jpg" + } + ] + }, + ... + { + "abstractSku": "024", + "price": 44500, + "abstractName": "Sony Cyber-shot DSC-WX350", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 44500, + "DEFAULT": 44500 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 45500, + "ORIGINAL": 45500 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21987578-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21987578-Sony.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 43 + }, + ... + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 10 + } + ], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "Black", + "doc_count": 14 + }, + ... + { + "value": "Purple", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + { + "name": "storage_capacity", + "localizedName": "Storage Capacity", + "docCount": null, + "values": [ + { + "value": "8 GB", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "storage_capacity", + "isMultiValued": true + } + }, + ... + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 29 + }, + { + "value": "Sony Experts", + "doc_count": 26 + }, + { + "value": "Video King", + "doc_count": 26 + }, + { + "value": "Budget Cameras", + "doc_count": 14 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 3000, + "max": 345699, + "activeMin": 3000, + "activeMax": 345699, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 1, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 1, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=name_asc" + } + } + ], + "links": { + "self": "glue.mysprykershop.com/catalog-search?q=Sony&sort=name_asc", + "last": "glue.mysprykershop.comc/atalog-search?q=Sony&sort=name_asc&page[offset]=36&page[limit]=12", + "first": "glue.mysprykershop.com/catalog-search?q=Sony&sort=name_asc&page[offset]=0&page[limit]=12", + "next": "glue.mysprykershop.comc/atalog-search?q=Sony&sort=name_asc&page[offset]=12&page[limit]=12" + } +} +``` +
+ + +
+Response sample: sort the results in descending order + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": "name_desc", + "currentSortOrder": "desc" + }, + "pagination": { + "numFound": 43, + "currentPage": 1, + "maxPage": 5, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "077", + "price": 14554, + "abstractName": "Sony Xperia Z3 Compact", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 14554, + "DEFAULT": 14554 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 15000, + "ORIGINAL": 15000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/24584210-216.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24584210-216.jpg" + } + ] + }, + { + "abstractSku": "076", + "price": 35711, + "abstractName": "Sony Xperia Z3 Compact", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 35711, + "DEFAULT": 35711 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/24394207-3552.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24394207-3552.jpg" + } + ] + }, + ... + { + "abstractSku": "080", + "price": 25214, + "abstractName": "Sony Xperia Z3", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 25214, + "DEFAULT": 25214 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 26000, + "ORIGINAL": 26000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/24394206-8583.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24394206-8583.jpg" + } + ] + }, + ... + { + "abstractSku": "090", + "price": 20160, + "abstractName": "Sony SmartWatch 3", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 20160, + "DEFAULT": 20160 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery/26219658_3401.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery_mediums/img_26219658_medium_1483953936_4642_16454.jpg" + } + ] + }, + ... + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 43 + }, + ююю + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 10 + } + ], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + ... + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 29 + }, + { + "value": "Sony Experts", + "doc_count": 26 + }, + { + "value": "Video King", + "doc_count": 26 + }, + { + "value": "Budget Cameras", + "doc_count": 14 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 3000, + "max": 345699, + "activeMin": 3000, + "activeMax": 345699, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 1, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 1, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=name_desc" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=name_desc", + "last": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=name_desc&page[offset]=36&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=name_desc&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=name_desc&page[offset]=12&page[limit]=12" + } +} +``` +
+ + +
+Response sample: sort the search results by rating + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": "rating", + "currentSortOrder": "desc" + }, + "pagination": { + "numFound": 43, + "currentPage": 1, + "maxPage": 5, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "093", + "price": 24899, + "abstractName": "Sony SmartWatch 3", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 24899, + "DEFAULT": 24899 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/24495843-7844.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24495843-7844.jpg" + } + ] + }, + { + "abstractSku": "078", + "price": 25584, + "abstractName": "Sony Xperia Z3 Compact", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 25584, + "DEFAULT": 25584 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/24602396-8292.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24602396-8292.jpg" + } + ] + }, + { + "abstractSku": "020", + "price": 10580, + "abstractName": "Sony Cyber-shot DSC-W830", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 10580, + "DEFAULT": 10580 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 10599, + "ORIGINAL": 10599 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21081478-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21081478-Sony.jpg" + } + ] + }, + { + "abstractSku": "024", + "price": 44500, + "abstractName": "Sony Cyber-shot DSC-WX350", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 44500, + "DEFAULT": 44500 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 45500, + "ORIGINAL": 45500 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21987578-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21987578-Sony.jpg" + } + ] + }, + ... + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 43 + }, + ... + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + ... + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 29 + }, + { + "value": "Sony Experts", + "doc_count": 26 + }, + { + "value": "Video King", + "doc_count": 26 + }, + { + "value": "Budget Cameras", + "doc_count": 14 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 3000, + "max": 345699, + "activeMin": 3000, + "activeMax": 345699, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 1, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 1, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=rating" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=rating", + "last": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=rating&page[offset]=36&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=rating&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=rating&page[offset]=12&page[limit]=12" + } +} +``` +
+ + +
+Response sample: sort search results by price ascending + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": "price_asc", + "currentSortOrder": "asc" + }, + "pagination": { + "numFound": 43, + "currentPage": 1, + "maxPage": 5, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "028", + "price": 3000, + "abstractName": "Sony Cyber-shot DSC-WX500", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 3000, + "DEFAULT": 3000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/low/7822598-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/medium/7822598-Sony.jpg" + } + ] + }, + { + "abstractSku": "202", + "price": 3918, + "abstractName": "Sony NEX-VG20EH", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 3918, + "DEFAULT": 3918 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 5000, + "ORIGINAL": 5000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/5782479-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/5782479-Sony.jpg" + } + ] + }, + ... + { + "abstractSku": "020", + "price": 10580, + "abstractName": "Sony Cyber-shot DSC-W830", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 10580, + "DEFAULT": 10580 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 10599, + "ORIGINAL": 10599 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21081478-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21081478-Sony.jpg" + } + ] + }, + { + "abstractSku": "021", + "price": 10680, + "abstractName": "Sony Cyber-shot DSC-W830", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 10680, + "DEFAULT": 10680 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21081475-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21081475-Sony.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 43 + }, + ... + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 10 + } + ], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + ... + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 29 + }, + { + "value": "Sony Experts", + "doc_count": 26 + }, + { + "value": "Video King", + "doc_count": 26 + }, + { + "value": "Budget Cameras", + "doc_count": 14 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 3000, + "max": 345699, + "activeMin": 3000, + "activeMax": 345699, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 1, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 1, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=price_asc" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=price_asc", + "last": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=price_asc&page[offset]=36&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=price_asc&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=price_asc&page[offset]=12&page[limit]=12" + } +} +``` +
+ +
Response sample: sort the search results by popularity (This is valid for Master Suite only and has not been integrated into B2B/B2C Suites yet.) + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": "popularity", + "currentSortOrder": "desc" + }, + "pagination": { + "numFound": 43, + "currentPage": 3, + "maxPage": 4, + "currentItemsPerPage": 12, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 12, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "195", + "price": 39467, + "abstractName": "Sony FDR-AXP33", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "\u20ac", + "name": "Euro" + }, + "grossAmount": 39467, + "DEFAULT": 39467 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/25904159_6059.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/gallery/25904159_6059.jpg" + } + ] + }, + { + "abstractSku": "196", + "price": 24940, + "abstractName": "Sony HDR-AS20", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "\u20ac", + "name": "Euro" + }, + "grossAmount": 24940, + "DEFAULT": 24940 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/23120327-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/23120327-Sony.jpg" + } + ] + }, + { + "abstractSku": "197", + "price": 23010, + "abstractName": "Sony HDR-AS20", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "\u20ac", + "name": "Euro" + }, + "grossAmount": 23010, + "DEFAULT": 23010 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21421718-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21421718-Sony.jpg" + } + ] + }, + { + "abstractSku": "199", + "price": 32909, + "abstractName": "Sony HXR-MC2500", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "\u20ac", + "name": "Euro" + }, + "grossAmount": 32909, + "DEFAULT": 32909 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/24788780-2045.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/24788780-2045.jpg" + } + ] + }, + ... + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 43 + }, + ... + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 10 + } + ], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + ... + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 3000, + "max": 345699, + "activeMin": 3000, + "activeMax": 345699, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 1, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc\u0027s/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 1, + "children": [] + } + ] + }, + ... + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=popularity&page=3" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=popularity&page=3", + "last": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=popularity&page[offset]=36&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=popularity&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?q=Sony&sort=popularity&page[offset]=12&page[limit]=12" + } +} +``` +
+ +
+Response sample: set a page of search for results + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 43, + "currentPage": 3, + "maxPage": 5, + "currentItemsPerPage": 10, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "029", + "price": 41024, + "abstractName": "Sony Cyber-shot DSC-WX500", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 41024, + "DEFAULT": 41024 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 42000, + "ORIGINAL": 42000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/low/7822600-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/medium/7822600-Sony.jpg" + } + ] + }, + ... + { + "abstractSku": "111", + "price": 19568, + "abstractName": "Sony SmartWatch", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 19568, + "DEFAULT": 19568 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/gallery_mediums/img_12295890_medium_1481715683_8105_13110.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/15743_12295890-6463.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 43 + }, + ... + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 10 + } + ], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + ... + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 29 + }, + { + "value": "Sony Experts", + "doc_count": 26 + }, + { + "value": "Video King", + "doc_count": 26 + }, + { + "value": "Budget Cameras", + "doc_count": 14 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 3000, + "max": 345699, + "activeMin": 3000, + "activeMax": 345699, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 1, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 1, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&page=3" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&page=3", + "last": "https://glue.mysprykershop.com/catalog-search?q=Sony&page[offset]=36&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=Sony&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?q=Sony&page[offset]=12&page[limit]=12" + } +} +``` +
+ + +
+Response sample: set a number of products per page in results + +```json +{ + "data": [ + { + "type": "catalog-search", + "id": null, + "attributes": { + "spellingSuggestion": null, + "sort": { + "sortParamNames": [ + "rating", + "name_asc", + "name_desc", + "price_asc", + "price_desc", + "popularity" + ], + "sortParamLocalizedNames": { + "rating": "Sort by product ratings", + "name_asc": "Sort by name ascending", + "name_desc": "Sort by name descending", + "price_asc": "Sort by price ascending", + "price_desc": "Sort by price descending", + "popularity": "Sort by popularity" + }, + "currentSortParam": null, + "currentSortOrder": null + }, + "pagination": { + "numFound": 43, + "currentPage": 1, + "maxPage": 2, + "currentItemsPerPage": 24, + "config": { + "parameterName": "page", + "itemsPerPageParameterName": "ipp", + "defaultItemsPerPage": 10, + "validItemsPerPageOptions": [ + 12, + 24, + 36 + ] + } + }, + "abstractProducts": [ + { + "abstractSku": "202", + "price": 3918, + "abstractName": "Sony NEX-VG20EH", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 3918, + "DEFAULT": 3918 + }, + { + "priceTypeName": "ORIGINAL", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 5000, + "ORIGINAL": 5000 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/5782479-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/5782479-Sony.jpg" + } + ] + }, + ... + { + "abstractSku": "023", + "price": 26723, + "abstractName": "Sony Cyber-shot DSC-WX220", + "prices": [ + { + "priceTypeName": "DEFAULT", + "currency": { + "code": "EUR", + "symbol": "€", + "name": "Euro" + }, + "grossAmount": 26723, + "DEFAULT": 26723 + } + ], + "images": [ + { + "externalUrlSmall": "https://images.icecat.biz/img/norm/medium/21758366-Sony.jpg", + "externalUrlLarge": "https://images.icecat.biz/img/norm/high/21758366-Sony.jpg" + } + ] + } + ], + "valueFacets": [ + { + "name": "category", + "localizedName": "Categories", + "docCount": null, + "values": [ + { + "value": 1, + "doc_count": 43 + }, + ... + { + "value": 14, + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "category", + "isMultiValued": false + } + }, + { + "name": "label", + "localizedName": "Product Labels", + "docCount": null, + "values": [ + { + "value": "SALE %", + "doc_count": 10 + } + ], + "activeValue": null, + "config": { + "parameterName": "label", + "isMultiValued": true + } + }, + { + "name": "color", + "localizedName": "Color", + "docCount": null, + "values": [ + { + "value": "Black", + "doc_count": 14 + }, + { + "value": "White", + "doc_count": 11 + }, + { + "value": "Silver", + "doc_count": 5 + }, + { + "value": "Grey", + "doc_count": 2 + }, + { + "value": "Pink", + "doc_count": 2 + }, + { + "value": "Red", + "doc_count": 2 + }, + { + "value": "Blue", + "doc_count": 1 + }, + { + "value": "Gold", + "doc_count": 1 + }, + { + "value": "Purple", + "doc_count": 1 + } + ], + "activeValue": null, + "config": { + "parameterName": "color", + "isMultiValued": true + } + }, + ... + { + "name": "merchant_name", + "localizedName": "Merchant", + "docCount": null, + "values": [ + { + "value": "Spryker", + "doc_count": 29 + }, + { + "value": "Sony Experts", + "doc_count": 26 + }, + { + "value": "Video King", + "doc_count": 26 + }, + { + "value": "Budget Cameras", + "doc_count": 14 + } + ], + "activeValue": null, + "config": { + "parameterName": "merchant_name", + "isMultiValued": true + } + } + ], + "rangeFacets": [ + { + "name": "price-DEFAULT-EUR-GROSS_MODE", + "localizedName": "Price range", + "min": 3000, + "max": 345699, + "activeMin": 3000, + "activeMax": 345699, + "docCount": null, + "config": { + "parameterName": "price", + "isMultiValued": false + } + }, + { + "name": "rating", + "localizedName": "Product Ratings", + "min": 4, + "max": 4, + "activeMin": 4, + "activeMax": 4, + "docCount": null, + "config": { + "parameterName": "rating", + "isMultiValued": false + } + } + ], + "categoryTreeFilter": [ + { + "nodeId": 5, + "name": "Computer", + "docCount": 1, + "children": [ + { + "nodeId": 6, + "name": "Notebooks", + "docCount": 0, + "children": [] + }, + { + "nodeId": 7, + "name": "Pc's/Workstations", + "docCount": 0, + "children": [] + }, + { + "nodeId": 8, + "name": "Tablets", + "docCount": 1, + "children": [] + } + ] + }, + ... + { + "nodeId": 16, + "name": "Fish", + "docCount": 0, + "children": [ + { + "nodeId": 18, + "name": "Vegetables", + "docCount": 0, + "children": [] + } + ] + } + ] + }, + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&ipp=24" + } + } + ], + "links": { + "self": "https://glue.mysprykershop.com/catalog-search?q=Sony&ipp=24", + "last": "https://glue.mysprykershop.com/catalog-search?q=Sony&ipp=24&page[offset]=36&page[limit]=12", + "first": "https://glue.mysprykershop.com/catalog-search?q=Sony&ipp=24&page[offset]=0&page[limit]=12", + "next": "https://glue.mysprykershop.com/catalog-search?q=Sony&ipp=24&page[offset]=12&page[limit]=12" + } +} +``` +
+ + + + +**Sorting parameters** + +| ATTRIBUTE | TYPE | DESCRIPTION | +|-------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| sortParamNames | Array | List of the possible sorting parameters. The default Spryker Demo Shop parameters: | +| sortParamLocalizedNames | Object | Localized names of the sorting parameters. | +| currentSortParam | String | The currently applied sorting parameter. | +| currentSortOrder | String | The current sorting order. | + +**Pagination** + +| ATTRIBUTE | TYPE | DESCRIPTION | +|---------------------------|---------|------------------------------------------------------| +| numFound | Integer | Number of the search results found. | +| currentPage | Integer | The current search results page. | +| maxPage | Integer | Total number of the search results pages. | +| currentItemsPerPage | Integer | Current number of the search results per page. | +| parameterName | String | Parameter name for setting the page number. | +| itemsPerPageParameterName | String | Parameter name for setting number of items per page. | +| defaultItemsPerPage | Integer | Default number of items per one search results page. | +| validItemsPerPageOptions | Array | Options for numbers per search results page. | + +**Abstract products** + +| ATTRIBUTE | TYPE | DESCRIPTION | +|--------------|--------|-------------------------------| +| abstractSku | String | SKU of the abstract product. | +| abstractName | String | Name of the abstract product. | +| images | Array | Links to product images. | + +For other abstract product attributes, see: + +* [Retrieving abstract products](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/manage-using-glue-api/abstract-products/glue-api-retrieve-abstract-products.html) +* [Retrieving abstract product prices](/docs/pbc/all/price-management/{{page.version}}/base-shop/manage-using-glue-api/glue-api-retrieve-abstract-product-prices.html) + +**Value facets** + +| ATTRIBUTE | TYPE | DESCRIPTION | +|---------------|---------|-----------------------------------------------------------------| +| name | String | Name of the value facet. | +| localizedName | String | Localized name of the value facet. | +| values | Array | Values of the facet for the found items. | +| activeValue | Integer | Value of the facet specified in the current search request. | +| parameterName | String | Parameter name. | +| isMultiValued | Boolean | Indicates whether several values of the facet can be specified. | + +**Range facets** + +| ATTRIBUTE | TYPE | DESCRIPTION | +|---------------|---------|---------------------------------------------------------------------| +| name | String | Name of the range facet. | +| localizedName | String | Localized name of the range facet. | +| min | Integer | Minimum value of the range for the found items. | +| max | Integer | Maximum value of the range for the found items. | +| activeMin | Integer | Minimum value of the range specified in the current search request. | +| activeMax | Integer | Maximum value of the range specified in the current search request. | +| parameterName | String | Parameter name. | +| isMultiValued | Boolean | Indicates whether several values of the facet can be specified. | + +**Category tree filter** + +| ATTRIBUTE | TYPE | DESCRIPTION | +|-------------|---------|------------------------------------------------------------| +| nodeId | Integer | Category node ID. | +| name | String | Category name. | +| docCount | Integer | Number of the found items in the category. | +| children | Array | Array of node elements nested within the current category. | + +## Possible errors + +| CODE | REASON | +|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 313 | Currency is invalid. | +| 314 | Price mode is invalid. | +| 503 | Invalid type (non-integer) of one of the request parameters: | + +For generic Glue Application errors that can also occur, see [Reference information: GlueApplication errors](/docs/scos/dev/glue-api-guides/{{page.version}}/old-glue-infrastructure/reference-information-glueapplication-errors.html). diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/enable-click-collect.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/enable-click-collect.md index 3d73da3a4ca..c484bdb2830 100644 --- a/docs/pbc/all/service-point-management/202311.0/unified-commerce/enable-click-collect.md +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/enable-click-collect.md @@ -31,7 +31,7 @@ Install the following features: ## 1. Add service points and their addresses -To add service points and addresses using Glue API, see [Backend API Marketplace B2C Demo Shop reference](/docs/scos/dev/glue-api-guides/{{page.version}}/backend-glue-infrastructure/backend-api-marketplace-b2c-demo-shop-reference.html). +To add service points and addresses using Glue API, see [Add service point addresses](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/manage-using-glue-api/manage-service-point-addresses/glue-api-add-service-point-addresses.html). To import service points, see [Import file details: service_point.csv](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/import-and-export-data/import-file-details-service-point.csv.html). @@ -41,7 +41,7 @@ To import service point addresses, see [Import file details: service_point_addre For Click & Collect, you most probably need the pickup service type. -To add service types using Glue API, see [Backend API Marketplace B2C Demo Shop reference](/docs/scos/dev/glue-api-guides/{{page.version}}/backend-glue-infrastructure/backend-api-marketplace-b2c-demo-shop-reference.html). +To add service types using Glue API, see [Add service types](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/manage-using-glue-api/manage-service-types/glue-api-add-service-types.html). To import service types, see [Import file details: service_type.csv](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/import-and-export-data/import-file-details-service-type.csv.html). @@ -50,16 +50,41 @@ To import service types, see [Import file details: service_type.csv](/docs/pbc/a You need to add services per service point based on the service types you've added. -To add services using Glue API, see [Backend API Marketplace B2C Demo Shop reference](/docs/scos/dev/glue-api-guides/{{page.version}}/backend-glue-infrastructure/backend-api-marketplace-b2c-demo-shop-reference.html). +To add services using Glue API, see [Add services](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/manage-using-glue-api/manage-services/glue-api-add-services.html). To import service types, see [Import file details: service.csv](/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/import-and-export-data/import-file-details-service.csv.html). -## 4. Assign the service type to shipment type +## 4. Assign service types to shipment types To import service to shipment type assignments, see [Import file details: shipment_type_service_type.csv](/docs/pbc/all/carrier-management/{{page.version}}/unified-commerce/file-details-shipment-type-service-type.csv.html). ## 5. Assign product offers to shipment types -To import offers to shipment type assignments, see [Import file details: product_offer_shipment_type](/docs/pbc/all/offer-management/{{page.version}}/marketplace/import-and-export-data/import-file-details-product-offer-shipment-type.csv.html). +To import offers to shipment type assignments, see [Import file details: product_offer_shipment_type.csv](/docs/pbc/all/offer-management/{{page.version}}/marketplace/import-and-export-data/import-file-details-product-offer-shipment-type.csv.html). + + +## 6. Assign product offers to services + + +To import offers to services assignments, see [Import file details: product_offer_service.csv](https://docs.spryker.com/docs/pbc/all/offer-management/{{page.version}}/unified-commerce/import-file-details-product-offer-service.csv.html). + + +## Recommended customizations for Click & Collect + +Since the product catalog and the product details page (PDP) do not support Click & Collect, we recommend customizing the PDP as follows: + +1. To display a specific offer in the first position of the offers section, implement the Default Product Offer Reference Strategy. For more details, see [Install the Marketplace Product Offer feature](https://docs.spryker.com/docs/pbc/all/offer-management/{{page.version}}/marketplace/install-and-upgrade/install-features/install-the-marketplace-product-offer-feature.html#set-up-behavior). + +2. To show only one product offer in the offers section, override the Merchant Product Offer Widget behavior with a filter. This filter should display one product offer with an empty service and shipment type set to _empty_ or _Delivery_. When adding products to cart, the delivery shipment type applies by default, and the customer can change it to pickup during checkout if needed. For more details on the product offers widget, see [Render merchant product offers on the Storefront](/docs/pbc/all/offer-management/{{page.version}}/marketplace/render-merchant-product-offers-on-the-storefront.html). + +3. To show information about product availability in the service point locations, add the Service Point Widget to the PDP. For instructions, see [Install the Service Points feature](https://docs.spryker.com/docs/pbc/all/service-point-management/{{page.version}}/unified-commerce/install-features/install-the-service-points-feature.html). + +As a result, customers have the following user journey with Click & Collect: +1. Go to the PDP. +2. Discover possible shipment options: delivery and pickup. +3. Add the product to cart. +4. Go to checkout and select the pickup shipment type. +5. Discover product availability in the retail locations and select one. +6. Place the order. diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/service-points-cart-checkout-feature-overview.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/service-points-cart-checkout-feature-overview.md index 254e3c206fe..5cee72f9f4d 100644 --- a/docs/pbc/all/service-point-management/202311.0/unified-commerce/service-points-cart-checkout-feature-overview.md +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/service-points-cart-checkout-feature-overview.md @@ -6,10 +6,35 @@ template: concept-topic-template This feature provides an example of a replacement strategy used by Click & Collect. The strategy is needed to replace a product offer with another product offer after a customer changes a service point or a shipment type in cart. +The default replacement strategy works as follows: +* When a customer changes a shipment type, a service point, or both, the replacement strategy is triggered. +* All available product offers are parsed based on the product SKU, merchant of the original offer, the updated shipment type and service point. +* If one or more product offers with the selected shipment type and service point are found, the product offer with the lowest price replaces the product offer in the cart. The offer must be active and have enough stock to fulfill the order. + +## Example of a replacement strategy execution + +A product sold by a merchant has the following product offers: + +| PRODUCT OFFER REFERENCE | SERVICE | SHIPMENT TYPE | +| - | - | +| Offer1 | Pickup at Munich Main Store | Pickup | +| Offer2 | Pickup at Berlin Main Store | Pickup | +| Offer3 | | Delivery | + +A customer has a product with the *Offer3* in cart. During checkout, the customer changes the *Delivery* shipment type to *Pickup* and select the *Berlin Main Store* as a pickup location. +Then, *Offer3* is replaced with *Offer2*. + +## Creating other scenarios + On the project level, you can extend this feature to support more complex scenarios, like the following: * Getting information from external systems about the offer you want to replace the current offer with. * Have different algorithms for replacement based on information obtained from a customer. +## Current constraints + +* The example strategy does not support a use case where the same product SKU from the same merchant is added to the shopping cart as two separate cart line items. If you are going to use the example strategy in production, we recommend implementing the following logic: when a product is added to cart, if the same product from the same merchant is already in cart, the quantity is updated regardless of the specific product offer. +* The example replacement strategy supports only concrete products. Product bundles and configurable products are not supported. + ## Related Developer documents | INSTALLATION GUIDES | diff --git a/docs/pbc/all/service-point-management/202311.0/unified-commerce/service-points-feature-overview.md b/docs/pbc/all/service-point-management/202311.0/unified-commerce/service-points-feature-overview.md index d3f07816ade..8a26305c470 100644 --- a/docs/pbc/all/service-point-management/202311.0/unified-commerce/service-points-feature-overview.md +++ b/docs/pbc/all/service-point-management/202311.0/unified-commerce/service-points-feature-overview.md @@ -31,7 +31,7 @@ To import service types, see [Import file details: service_type.csv](/docs/pbc/a ## 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. +A *service* represents a specific service type that is provided at a specific service point. Because each service is unique, if two service points provide services with the same service type, like pickup, those services are represented as two separate entities and are managed accordingly. For example, a pickup service at a retail location at Julie-Wolfthorn-Straße 1, 10115, Berlin is a unique service. To add services using Glue API, see [Backend API Marketplace B2C Demo Shop reference](/docs/scos/dev/glue-api-guides/{{page.version}}/backend-glue-infrastructure/backend-api-marketplace-b2c-demo-shop-reference.html). @@ -41,10 +41,11 @@ To import services, see [Import file details: service.csv](/docs/pbc/all/service ## Service points use cases -With the help of service points, types, and services, a merchant can model different use cases depending on their business needs. Examples of services that can be implemented on a project level are as follows: +With the help of service points, types, and services, a store operator can model different use cases depending on their business needs. Here are some examples of services that can be implemented at the project level: * Ship from store -* Request product demo in the retail location -* Request a repair service +* Car maintenance or installations services +* Product demonstration at the retail location +* Repair service at the retail location ## Service points on the Storefront @@ -64,6 +65,16 @@ After placing an order, the customer can see the selected service point on the O ![Storefront order with a service point](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/service-point-management/unified-commerce/service-points-feature-overview.md/storefront-order-service-point.png) + +## Current constraints + +* Services can be configured only for product offers. +* Product catalog can't be filtered by a service type or a service provided in a specific service point. +* The product offer widget on the product details page is not supported. It doesn't show the differences between product offers based on the services assigned to them. As a result, differnt product offers are displayed as duplicates. +* Customers can't add products with preselected service points to cart. They can select service points only during checkout. +* If a product is added to cart without a product offer attached to it, this product can be purchased only with the *Delivery* shipment type. + + ## Related Business User documents | FEATURE OVERVIEWS | MERCHANT PORTAL GUIDES | diff --git a/docs/pbc/all/user-management/202311.0/base-shop/manage-in-the-back-office/manage-users/create-users.md b/docs/pbc/all/user-management/202311.0/base-shop/manage-in-the-back-office/manage-users/create-users.md index a6a9b8e5bd4..663ac639927 100644 --- a/docs/pbc/all/user-management/202311.0/base-shop/manage-in-the-back-office/manage-users/create-users.md +++ b/docs/pbc/all/user-management/202311.0/base-shop/manage-in-the-back-office/manage-users/create-users.md @@ -57,5 +57,5 @@ This opens the **Users** page with the success message displayed. The created us | LAST NAME | User's last name. | | ASSIGNED GROUPS | User groups to assign this user to. User groups define what areas and actions the user will have access to. To learn how to create user groups, see [Create user groups](/docs/pbc/all/user-management/{{page.version}}/base-shop/manage-in-the-back-office/manage-user-groups/create-user-groups.html). | | AGENT | Defines if this user is an [agent assist](/docs/pbc/all/user-management/{{page.version}}/base-shop/agent-assist-feature-overview.html) | -| WAREHOUSE USER| Defines if this user works in a warehouse to [fulfill orders](/docs/pbc/all/warehouse-management-system/{{page.version}}/unified-commerce/fulfillment-app-feature-overview.html). | +| WAREHOUSE USER| Defines if this user works in a warehouse to [fulfill orders](/docs/pbc/all/warehouse-management-system/{{page.version}}/unified-commerce/fulfillment-app-overview.html). | | INTERFACE LANGUAGE | Defines the interface language of the Back Office for this user. | diff --git a/docs/pbc/all/user-management/202311.0/base-shop/manage-in-the-back-office/manage-users/edit-users.md b/docs/pbc/all/user-management/202311.0/base-shop/manage-in-the-back-office/manage-users/edit-users.md index d7527e69278..f61f075f8d8 100644 --- a/docs/pbc/all/user-management/202311.0/base-shop/manage-in-the-back-office/manage-users/edit-users.md +++ b/docs/pbc/all/user-management/202311.0/base-shop/manage-in-the-back-office/manage-users/edit-users.md @@ -54,6 +54,6 @@ The following table describes the attributes you enter and select when editing u | LAST NAME | User's last name. | | ASSIGNED GROUPS | The user groups this user is assigned to. User groups define what areas and actions the user has access to. To learn how to create user groups, see [Create user groups](/docs/pbc/all/user-management/{{page.version}}/base-shop/manage-in-the-back-office/manage-user-groups/create-user-groups.html). | | AGENT | Defines if this user is an [agent assist](/docs/pbc/all/user-management/{{page.version}}/base-shop/agent-assist-feature-overview.html) | -| WAREHOUSE USER| Defines if this user works in a warehouse to [fulfill orders](/docs/pbc/all/warehouse-management-system/{{page.version}}/unified-commerce/fulfillment-app-feature-overview.html). | +| WAREHOUSE USER| Defines if this user works in a warehouse to [fulfill orders](/docs/pbc/all/warehouse-management-system/{{page.version}}/unified-commerce/fulfillment-app-overview.html). | | INTERFACE LANGUAGE | Defines the interface language of the Back Office for this user. | | STATUS | Defines if the user can access the Back Office. | diff --git a/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-feature-overview.md b/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-overview.md similarity index 88% rename from docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-feature-overview.md rename to docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-overview.md index 501ccff5a6d..b8beea51c55 100644 --- a/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-feature-overview.md +++ b/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-overview.md @@ -1,16 +1,16 @@ --- -title: Fulfillment App feature overview +title: Fulfillment App overview description: Fulfillment App streamlines the process of fulfilling orders. last_updated: Oct 3, 2023 template: concept-topic-template --- -The *Fulfillment App* feature streamlines the process of fulfilling orders by introducing the Fulfillment App and the warehouse user. +*Fulfillment App* streamlines the process of fulfilling orders. ## Warehouse user -A *warehouse user* is a person that works in one or more warehouses to fulfill orders. They are a regular Back Office user. However, they don't have access to the Back Office. Instead, they are using the Fulfillment App. +A *warehouse user* is a person that works in one or more warehouses to fulfill orders. They are a regular Back Office user. However, they don't have access to the Back Office. Instead, they are using Fulfillment App. In the Back Office, to create a warehouse user, you need to select a respective option when [creating](/docs/pbc/all/user-management/{{page.version}}/base-shop/manage-in-the-back-office/manage-users/create-users.html) or [editing](/docs/pbc/all/user-management/{{page.version}}/base-shop/manage-in-the-back-office/manage-users/edit-users.html) a regular Back Office user. @@ -43,7 +43,7 @@ Warehouse allocation shouldn't be confused with the reservation process, meaning ## Warehouse picklists -A *warehouse picklist* is a document available in the Fulfillment App that contains a list of items to be picked and shipped to fulfill and order. It includes the following information: +A *warehouse picklist* is a document available in Fulfillment App that contains a list of items to be picked and shipped to fulfill and order. It includes the following information: * Product name * Product image * Quantity to be picked @@ -76,7 +76,7 @@ Picking is semi-automated and follows the steps: ## Fulfillment App state machine -The feature is shipped with exemplary picking subprocesses for the state machine. You can check them in the Back Office >**Administration** >**OMS**. +The Warehouse Picking feature is shipped with exemplary picking subprocesses for the state machine. You can check them in the Back Office >**Administration** >**OMS**. | Demo Shop | Subprocess | | - | - | @@ -85,11 +85,11 @@ The feature is shipped with exemplary picking subprocesses for the state machine ## Push notifications -The Fulfillment App supports push notifications. This lets warehouse users receive new picklists without having to refresh the application. +Fulfillment App supports push notifications. This lets warehouse users receive new picklists without having to refresh the application. ## Offline mode -To reduce costs and improve flexibility, Fulfillment App support offline mode. Warehouse users can perform picking tasks when regardless of internet connectivity. Any changes performed in offline mode are synchronized when you get online. This is relevant for warehouses in remote areas or big warehouses that do not have full network coverage. +To reduce costs and improve flexibility, Fulfillment App support offline mode. Warehouse users can perform picking tasks even without internet connectivity. Any changes performed in offline mode are synchronized when they get online. This is relevant for warehouses in remote areas or big warehouses that do not have full network coverage. The offline mode is enabled by the [Push Notification](/docs/pbc/all/miscellaneous/{{page.version}}/push-notification-feature-overview.html) feature. diff --git a/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/set-up-fulfillment-app.md b/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/set-up-fulfillment-app.md new file mode 100644 index 00000000000..7086707bb2b --- /dev/null +++ b/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/set-up-fulfillment-app.md @@ -0,0 +1,32 @@ +--- +title: Set up Fulfillment App +description: Learn how to install and configure Fulfillment App +last_updated: Nov 23, 2023 +template: howto-guide-template +--- + +This document describes how to install Fulfillment App and connect it to your project. + +## Install the required features + +To enable the support of Fulfillment App in your project, install the following features: + +| NAME | VERSION | INSTALLATION GUIDE | +|----------|------------------|--------------------| +| Warehouse picking | {{page.version}} | [Install the Warehouse picking feature](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/install-and-upgrade/install-the-warehouse-picking-feature.html) | +| Warehouse User Management | {{page.version}} | [Install the Warehouse User Management feature](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/install-and-upgrade/install-the-warehouse-user-management-feature.html) | +| Warehouse picking + Product | {{page.version}} | [Install the Warehouse picking + Product feature](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/install-and-upgrade/install-the-warehouse-picking-product-feature.html) | + +## Install Fulfillment App + +For instructions on installing Fulfillment App, see [Set up Oryx](/docs/scos/dev/front-end-development/{{page.version}}/oryx/getting-started/set-up-oryx.html). + +## Connect Fulfillment App + +To connect Fulfillment App to your project using Glue API, set the URL of your Glue Backend API in the environment configuration: + +```text +... +SCOS_BASE_URL={GLUE_BACKEND_API_URL} +... +``` diff --git a/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/warehouse-picking-feature-overview.md b/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/warehouse-picking-feature-overview.md index 68d67db1aa6..e5dc5ac2228 100644 --- a/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/warehouse-picking-feature-overview.md +++ b/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/warehouse-picking-feature-overview.md @@ -3,17 +3,22 @@ title: Warehouse Picking feature overview description: General overview of the Warehouse Picking feature last_updated: Oct 3, 2023 template: concept-topic-template +related: + - title: Fulfillment App overview + link: docs/pbc/all/warehouse-management-system/page.version/unified-commerce/fulfillment-app-overview.html + - title: Install the Warehouse Picking feature + link: docs/pbc/all/warehouse-management-system/page.version/unified-commerce/install-and-upgrade/install-the-warehouse-picking-feature.html --- -The *Warehouse Picking* feature adds the following: -* The *picking list* entity -* `picking-lists` and `picking-list-items` Glue API resources -* Support for [push notifications](/docs/pbc/all/miscellaneous/202311.0/push-notification-feature-overview.html) -* OMS example -* Picklist generation strategies -* OAuth +The *Warehouse Picking* feature enables [Fulfillment App](/docs/pbc/all/warehouse-management-system/{{page.version}}/unified-commerce/fulfillment-app-overview.html) by adding the following: +* The *picking list* entity. +* `picking-lists` and `picking-list-items` Glue API resources. +* Support for [push notifications](/docs/pbc/all/miscellaneous/{{page.version}}/push-notification-feature-overview.html). +* An OMS example. +* Picklist generation strategies. +* OAuth. ## Example of a picklist generation strategy @@ -25,4 +30,4 @@ You can extend this strategy or create custom strategies on the project level. E ## Fulfillment App OAuth -Fulfillment App's early access OAuth authorization supports the Authorization Code Grant flow. The flow is customized to meet the needs of Fulfillment App. +Fulfillment App's early access OAuth supports the Authorization Code Grant flow. The flow is customized to meet the needs of Fulfillment App. diff --git a/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/warehouse-user-management-feature-overview.md b/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/warehouse-user-management-feature-overview.md new file mode 100644 index 00000000000..6d6e13167ec --- /dev/null +++ b/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/warehouse-user-management-feature-overview.md @@ -0,0 +1,24 @@ +--- +title: Warehouse User Management feature overview +description: General overview of the Warehouse User Management feature +last_updated: Nov 23, 2023 +template: concept-topic-template +related: + - title: Fulfillment App overview + link: docs/pbc/all/warehouse-management-system/page.version/unified-commerce/fulfillment-app-overview.html + - title: Install the Warehouse User Management feature + link: docs/pbc/all/warehouse-management-system/page.version/unified-commerce/install-and-upgrade/install-the-warehouse-user-management-feature.html +--- + +The *Warehouse User Management* feature enables [Fulfillment App](/docs/pbc/all/warehouse-management-system/{{page.version}}/unified-commerce/fulfillment-app-overview.html) by providing all the functionalities for creating and managing warehouse users. + + +## Warehouse user and warehouse assignment + +Back Office users can create warehouse users and assign warehouses to them. + +## Warehouse Glue API resources + +Using the `warehouse-tokens` Backend Glue API, warehouse users can log in to fulfill orders. This feature provides only the authorization capability. + +Using the `warehouse-user-assignments` Backend Glue API, Back Office users can assign and deassign warehouses from warehouse users. diff --git a/docs/scos/dev/front-end-development/202212.0/oryx/getting-started/oryx-boilerplate.md b/docs/scos/dev/front-end-development/202212.0/oryx/getting-started/oryx-boilerplate.md index 033eb026c3a..dfb8b0cccee 100644 --- a/docs/scos/dev/front-end-development/202212.0/oryx/getting-started/oryx-boilerplate.md +++ b/docs/scos/dev/front-end-development/202212.0/oryx/getting-started/oryx-boilerplate.md @@ -104,7 +104,7 @@ While `index.html` can have a few more details, the following is the required ba ```html - + diff --git a/docs/scos/dev/front-end-development/202212.0/oryx/getting-started/oryx-packages.md b/docs/scos/dev/front-end-development/202212.0/oryx/getting-started/oryx-packages.md index b63c3bace9e..bdc006eca48 100644 --- a/docs/scos/dev/front-end-development/202212.0/oryx/getting-started/oryx-packages.md +++ b/docs/scos/dev/front-end-development/202212.0/oryx/getting-started/oryx-packages.md @@ -25,13 +25,14 @@ While the package layering might be irrelevant during your development, it might The template layer contains packages that can be used as quick starters for demos and projects. Templated packages follow semantic versioning and ensure upgradability. Some packages in the template layer, like presets, are opinionated and might not be used inside your final setup. Their main purpose is to quickly get up and running a standard frontend application. -| PACKAGES | LOCATION | -| ------------------------------------------------------------------------ | ----------------------------------------------------------------------- | -| | | -| [Application](https://www.npmjs.com/package/@spryker-oryx/application) | `@spryker-oryx/oryx-application-orchestration/oryx-applicationlication` | -| [Presets](https://www.npmjs.com/package/@spryker-oryx/oryx-presets.html) | `@spryker-oryx/oryx-presets` | -| [Labs ](https://www.npmjs.com/package/@spryker-oryx/labs) | `@spryker-oryx/labs` | -| [Themes ](https://www.npmjs.com/package/@spryker-oryx/themes) | `@spryker-oryx/themes` | +| PACKAGES | LOCATION | +| ---------------------------------------------------------------------- | --------------------------- | +| | | +| [Application](https://www.npmjs.com/package/@spryker-oryx/application) | `@spryker-oryx/application` | +| [Presets](https://www.npmjs.com/package/@spryker-oryx/presets) | `@spryker-oryx/presets` | +| [Labs](https://www.npmjs.com/package/@spryker-oryx/labs) | `@spryker-oryx/labs` | +| [Themes](https://www.npmjs.com/package/@spryker-oryx/themes) | `@spryker-oryx/themes` | +| [Resources](https://www.npmjs.com/package/@spryker-oryx/resources) | `@spryker-oryx/resources` | {% info_block infoBox %} @@ -50,7 +51,7 @@ Domain packages provide components and service logic for certain domains. Organi | [Checkout](https://www.npmjs.com/package/@spryker-oryx/checkout) | `@spryker-oryx/checkout` | | [Content](https://www.npmjs.com/package/@spryker-oryx/content) | `@spryker-oryx/content` | | [Order](https://www.npmjs.com/package/@spryker-oryx/order) | `@spryker-oryx/order` | -| [picking](https://www.npmjs.com/package/@spryker-oryx/picking) | `@spryker-oryx/picking` | +| [Picking](https://www.npmjs.com/package/@spryker-oryx/picking) | `@spryker-oryx/picking` | | [Product](https://www.npmjs.com/package/@spryker-oryx/product) | `@spryker-oryx/product` | | [Search](https://www.npmjs.com/package/@spryker-oryx/search) | `@spryker-oryx/search` | | [Site](https://www.npmjs.com/package/@spryker-oryx/site) | `@spryker-oryx/site` | @@ -66,9 +67,9 @@ The platform layer contains the core packages of the Oryx framework. They provid | [Experience](https://www.npmjs.com/package/@spryker-oryx/experience) | `@spryker-oryx/experience` | | [I18n](https://www.npmjs.com/package/@spryker-oryx/I18n) | `@spryker-oryx/i18n` | | [Indexed-db](https://www.npmjs.com/package/@spryker-oryx/indexed-db) | `@spryker-oryx/indexed-db` | -| [offline](https://www.npmjs.com/package/@spryker-oryx/offline) | `@spryker-oryx/offline` | -| [push-notification](https://www.npmjs.com/package/@spryker-oryx/push-notification) | `@spryker-oryx/push-notification` | -| [router](https://www.npmjs.com/package/@spryker-oryx/router) | `@spryker-oryx/router` | +| [Offline](https://www.npmjs.com/package/@spryker-oryx/offline) | `@spryker-oryx/offline` | +| [Push-notification](https://www.npmjs.com/package/@spryker-oryx/push-notification) | `@spryker-oryx/push-notification` | +| [Router](https://www.npmjs.com/package/@spryker-oryx/router) | `@spryker-oryx/router` | ## Base packages diff --git a/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/oryx-boilerplate.md b/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/oryx-boilerplate.md index 6504ad58d79..2375c6f817a 100644 --- a/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/oryx-boilerplate.md +++ b/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/oryx-boilerplate.md @@ -105,7 +105,7 @@ While `index.html` can have a few more details, the following is the required ba ```html - + diff --git a/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/oryx-packages.md b/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/oryx-packages.md index 14eb7bc13db..77316733809 100644 --- a/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/oryx-packages.md +++ b/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/oryx-packages.md @@ -34,6 +34,7 @@ The template layer contains packages that can be used as quick starters for demo | [Presets](https://www.npmjs.com/package/@spryker-oryx/presets) | `@spryker-oryx/presets` | | [Labs ](https://www.npmjs.com/package/@spryker-oryx/labs) | `@spryker-oryx/labs` | | [Themes ](https://www.npmjs.com/package/@spryker-oryx/themes) | `@spryker-oryx/themes` | +| [Resources](https://www.npmjs.com/package/@spryker-oryx/resources) | `@spryker-oryx/resources` | {% info_block infoBox %} @@ -51,7 +52,7 @@ Domain packages provide components and service logic for certain domains. Organi | [Checkout](https://www.npmjs.com/package/@spryker-oryx/checkout) | `@spryker-oryx/checkout` | | [Content](https://www.npmjs.com/package/@spryker-oryx/content) | `@spryker-oryx/content` | | [Order](https://www.npmjs.com/package/@spryker-oryx/order) | `@spryker-oryx/order` | -| [picking](https://www.npmjs.com/package/@spryker-oryx/picking) | `@spryker-oryx/picking` | +| [Picking](https://www.npmjs.com/package/@spryker-oryx/picking) | `@spryker-oryx/picking` | | [Product](https://www.npmjs.com/package/@spryker-oryx/product) | `@spryker-oryx/product` | | [Search](https://www.npmjs.com/package/@spryker-oryx/search) | `@spryker-oryx/search` | | [Site](https://www.npmjs.com/package/@spryker-oryx/site) | `@spryker-oryx/site` | @@ -69,9 +70,9 @@ The platform layer contains the core packages of the Oryx framework. They provid | [Form](https://www.npmjs.com/package/@spryker-oryx/form) | `@spryker-oryx/form` | | [I18n](https://www.npmjs.com/package/@spryker-oryx/I18n) | `@spryker-oryx/i18n` | | [Indexed-db](https://www.npmjs.com/package/@spryker-oryx/indexed-db) | `@spryker-oryx/indexed-db` | -| [offline](https://www.npmjs.com/package/@spryker-oryx/offline) | `@spryker-oryx/offline` | -| [push-notification](https://www.npmjs.com/package/@spryker-oryx/push-notification) | `@spryker-oryx/push-notification` | -| [router](https://www.npmjs.com/package/@spryker-oryx/router) | `@spryker-oryx/router` | +| [Offline](https://www.npmjs.com/package/@spryker-oryx/offline) | `@spryker-oryx/offline` | +| [Push-notification](https://www.npmjs.com/package/@spryker-oryx/push-notification) | `@spryker-oryx/push-notification` | +| [Router](https://www.npmjs.com/package/@spryker-oryx/router) | `@spryker-oryx/router` | ## Base packages diff --git a/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/set-up-oryx.md b/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/set-up-oryx.md index 6ce8887f41b..d493294add8 100644 --- a/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/set-up-oryx.md +++ b/docs/scos/dev/front-end-development/202307.0/oryx/getting-started/set-up-oryx.md @@ -24,20 +24,6 @@ cd composable-frontend && \ npm i ``` - -2. Optional: To install [Fulfillment App](/docs/pbc/all/warehouse-management-system/{{site.version}}/unified-commerce/fulfillment-app-feature-overview.html) instead of Composable Storefront, checkout the `fulfillment` branch from the boilerplate: - -```shell -git checkout fulfillment -``` - -{% info_block infoBox "Fulfillment App" %} - -Fulfillment App is a PWA that comes with an additional build process for the service worker to support offline mode and background sync. - -{% endinfo_block %} - - 2. Run the application: ```shell diff --git a/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/oryx-boilerplate.md b/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/oryx-boilerplate.md index 463b3611e3f..10b80c611bf 100644 --- a/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/oryx-boilerplate.md +++ b/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/oryx-boilerplate.md @@ -105,7 +105,7 @@ While `index.html` can have a few more details, the following is the required ba ```html - + diff --git a/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/oryx-packages.md b/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/oryx-packages.md index 6c2580bb96e..b521965bb93 100644 --- a/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/oryx-packages.md +++ b/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/oryx-packages.md @@ -32,8 +32,9 @@ The template layer contains packages that can be used as quick starters for demo | | | | [Application](https://www.npmjs.com/package/@spryker-oryx/application) | `@spryker-oryx/application` | | [Presets](https://www.npmjs.com/package/@spryker-oryx/presets) | `@spryker-oryx/presets` | -| [Labs ](https://www.npmjs.com/package/@spryker-oryx/labs) | `@spryker-oryx/labs` | -| [Themes ](https://www.npmjs.com/package/@spryker-oryx/themes) | `@spryker-oryx/themes` | +| [Labs](https://www.npmjs.com/package/@spryker-oryx/labs) | `@spryker-oryx/labs` | +| [Themes](https://www.npmjs.com/package/@spryker-oryx/themes) | `@spryker-oryx/themes` | +| [Resources](https://www.npmjs.com/package/@spryker-oryx/resources) | `@spryker-oryx/resources` | {% info_block infoBox %} @@ -51,7 +52,7 @@ Domain packages provide components and service logic for certain domains. Organi | [Checkout](https://www.npmjs.com/package/@spryker-oryx/checkout) | `@spryker-oryx/checkout` | | [Content](https://www.npmjs.com/package/@spryker-oryx/content) | `@spryker-oryx/content` | | [Order](https://www.npmjs.com/package/@spryker-oryx/order) | `@spryker-oryx/order` | -| [picking](https://www.npmjs.com/package/@spryker-oryx/picking) | `@spryker-oryx/picking` | +| [Picking](https://www.npmjs.com/package/@spryker-oryx/picking) | `@spryker-oryx/picking` | | [Product](https://www.npmjs.com/package/@spryker-oryx/product) | `@spryker-oryx/product` | | [Search](https://www.npmjs.com/package/@spryker-oryx/search) | `@spryker-oryx/search` | | [Site](https://www.npmjs.com/package/@spryker-oryx/site) | `@spryker-oryx/site` | @@ -69,9 +70,9 @@ The platform layer contains the core packages of the Oryx framework. They provid | [Form](https://www.npmjs.com/package/@spryker-oryx/form) | `@spryker-oryx/form` | | [I18n](https://www.npmjs.com/package/@spryker-oryx/I18n) | `@spryker-oryx/i18n` | | [Indexed-db](https://www.npmjs.com/package/@spryker-oryx/indexed-db) | `@spryker-oryx/indexed-db` | -| [offline](https://www.npmjs.com/package/@spryker-oryx/offline) | `@spryker-oryx/offline` | -| [push-notification](https://www.npmjs.com/package/@spryker-oryx/push-notification) | `@spryker-oryx/push-notification` | -| [router](https://www.npmjs.com/package/@spryker-oryx/router) | `@spryker-oryx/router` | +| [Offline](https://www.npmjs.com/package/@spryker-oryx/offline) | `@spryker-oryx/offline` | +| [Push-notification](https://www.npmjs.com/package/@spryker-oryx/push-notification) | `@spryker-oryx/push-notification` | +| [Router](https://www.npmjs.com/package/@spryker-oryx/router) | `@spryker-oryx/router` | ## Base packages diff --git a/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/set-up-oryx.md b/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/set-up-oryx.md index 61e214a6b13..06c5c251a95 100644 --- a/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/set-up-oryx.md +++ b/docs/scos/dev/front-end-development/202311.0/oryx/getting-started/set-up-oryx.md @@ -7,7 +7,7 @@ redirect_from: - /docs/scos/dev/front-end-development/202311.0/oryx/set-up-oryx.html --- -This document describes how to set up an environment for developing in the Oryx framework. We provide a [boilerplate project](https://github.com/spryker/oryx-starter) that helps you quickstart the development. It contains minimum dependencies and configuration to install a standard Oryx application. +This document describes how to set up an environment for developing in the Oryx framework. We provide a [boilerplate project](https://github.com/spryker/composable-frontend) that helps you quickstart the development. It contains minimum dependencies and configuration to install a standard Oryx application. ## Prerequisites @@ -16,14 +16,28 @@ This document describes how to set up an environment for developing in the Oryx ## Install Oryx with the boilerplate project -1. Download the boilerplate project and install dependencies: +1. Clone the boilerplate project and install dependencies. ```shell -git clone https://github.com/spryker/oryx-starter && \ -cd oryx-starter && \ +git clone https://github.com/spryker/composable-frontend && \ +cd composable-frontend && \ npm i ``` + +2. Optional: To install [Fulfillment App](/docs/pbc/all/warehouse-management-system/{{site.version}}/unified-commerce/fulfillment-app-overview.html) instead of Composable Storefront, checkout the `fulfillment` branch from the boilerplate: + +```shell +git checkout fulfillment +``` + +{% info_block infoBox "Fulfillment App" %} + +Fulfillment App is a PWA that comes with an additional build process for the service worker to support offline mode and background sync. + +{% endinfo_block %} + + 2. Run the application: ```shell diff --git a/docs/scos/user/intro-to-spryker/docs-updates.md b/docs/scos/user/intro-to-spryker/docs-updates.md index a511a881859..270827ae692 100644 --- a/docs/scos/user/intro-to-spryker/docs-updates.md +++ b/docs/scos/user/intro-to-spryker/docs-updates.md @@ -13,7 +13,7 @@ In November 2023, we have added and updated the following pages: ### New pages -- [Fulfillment App feature overview](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-feature-overview.html). +- [Fulfillment App overview](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-overview.html). - [Warehouse Picking feature overview](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/warehouse-picking-feature-overview.html). - [Assign and deassign warehouses from warehouse users](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/assign-and-deassign-warehouses-from-warehouse-users.html): Learn how to assign and deasign warehouses from warehouse users in the Back Office. - [Fulfillment App: Fulfill orders](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-fulfill-orders.html). diff --git a/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md b/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md index d43bb9da652..44786afb79f 100644 --- a/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md +++ b/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md @@ -26,7 +26,7 @@ The fulfillment App includes the following features: - Rapidly customize and scale with a flexibly built app. ### Documentation -[Fulfillment App feature overview](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-feature-overview.html) +[Fulfillment App overview](/docs/pbc/all/warehouse-management-system/202311.0/unified-commerce/fulfillment-app-overview.html) ## ![core-commerce](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/icon_Spryker+Commerce+OS_128.png) Click&Collect ![feature](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/feature.png) diff --git a/docs/scos/user/intro-to-spryker/whats-new/supported-versions-of-php.md b/docs/scos/user/intro-to-spryker/whats-new/supported-versions-of-php.md index d0b42825f89..98c004ef805 100644 --- a/docs/scos/user/intro-to-spryker/whats-new/supported-versions-of-php.md +++ b/docs/scos/user/intro-to-spryker/whats-new/supported-versions-of-php.md @@ -26,7 +26,7 @@ redirect_from: ## PHP 8 -Since November 2023, Spryker has been compatible with PHP 8.1. Support for PHP 8.2 was added in December 2022. +Since July 2022, Spryker has been compatible with PHP 8.1. Support for PHP 8.2 was added in December 2023. Currently, we *recommend* using *PHP 8.2*. If you are using version 8.1, we encourage you to migrate at the beginning of 2024 to ensure a smooth upgrade path. More and more libraries deliver releases, including bug fixes and security updates, only for 8.2+, so this becomes an increasing risk factor for any business.