# Working with Products and Search using Norce Commerce Product Feed **Overview:** This page explains how to integrate Norce Commerce Product Feed with external search systems. It covers architectural patterns, export strategies, and best practices for maintaining accurate product data and search functionality. ## Two approaches There are two main patterns for working with products and search in Norce Commerce: - **Direct Service Usage:** Use Norce Commerce Services methods and functions. This is not examplained in this page. [See details here.](/developer-portal/app-development/working-with-listing-products-and-variants) - **External Search Engine:** Use an external search engine updated via the Norce Commerce Product Feed (described below). For technical details about the Product Feed Service, see [Building a Norce Commerce Product Feed Receiver](/developer-portal/app-development/building-a-norce-product-feed-receiver). **Product Feed API references:** - [Product Feed Service](/api-reference/feed/productfeed/openapi) - [Product Schema](/api-reference/schemas/channelfeed#product) - [ProductStatus Schema](/api-reference/schemas/channelfeed#productstatus) You can also combine both approaches, for example, using external search for initial queries and Norce Commerce Services for filters or real-time data. ## Logical Architecture: External Search Integration **Description of the logical architecture image:** The architecture involves exporting product data from Norce Commerce to an external search engine. The external search engine indexes the catalog for fast search and navigation. For real-time data such as price and availability, the front-end queries Norce Commerce Services directly to ensure accuracy. ![Logical schema](/assets/logical-architecture-with-an-external-search-new.4c3e1ea75878050e5951bc29b8687ab55736472db49ea8bcf7937b871d58de34.afe294b5.png) When using an external search engine, build its index from the Norce product catalog. For frequently changing data (like price and availability), fetch directly from Norce Commerce Services to ensure up-to-date information. - Export a full product feed regularly (e.g., every morning). - Export delta feeds (changes only) more frequently. - For product listings, supplement search results with real-time data from Norce Commerce Services. ## Product Feed Process for Search Indexing **Description of the process schema image:** The process involves scheduling full and delta exports from Norce Commerce Product Feed to the external search system. Full exports refresh the entire catalog, while delta exports update only changed products. ProductStatus exports provide frequent updates on product status. ![Process schema](/assets/using-a-channel-feed-to-fill-a-search-new.db063a210ee38fb704124ee08f617f3dc032c84373d0b14202a3f9027caee0e3.afe294b5.png) **Recommended steps:** - Schedule full catalog exports during low-traffic periods. - Use delta exports to update changes between full exports. - If a delta import fails, the next full export will correct inconsistencies. - Use `ProductStatus` exports for frequent updates on product status. ## Example Client Scenarios for Product Feed Usage Below are example strategies for different types of clients. Each scenario is self-contained and includes recommended export frequencies and direct service calls. ### Client 1: Standard Catalog (Normal Sensitivity) - **Description:** Assortments change infrequently; prices and availability change, but not critically. - **Full exports:** Every week (e.g., Sunday mornings). - **Delta exports:** Every morning. - **ProductStatus exports:** Hourly. - **Direct calls to Norce Commerce Product Service:** Not needed. ### Client 2: Availability-Sensitive Catalog - **Description:** Assortments change infrequently, but availability changes often and must be accurate to prevent overselling. - **Full exports:** Every week (e.g., Sunday mornings). - **Delta exports:** Every morning. - **ProductStatus exports:** Hourly (provides updates on inactive or out-of-stock products). - **Direct calls to Norce Commerce Product Service:** - For products with stock below a defined threshold (`StockBreakPoint`), check availability directly using: - [GetProductOnHandByPartNo](/api-reference/services/productservice/openapi/onhand/getproductonhandbypartno) - [ListProductOnHandByBasket](/api-reference/services/shoppingservice/openapi/onhand/listproductonhandbybasket) during checkout. ### Client 3: Supplier-Sensitive Catalog - **Description:** Assortments change frequently; many suppliers; supplier-based rules; price accuracy is important. - **Full exports:** Every morning. - **Delta exports:** Hourly. - **ProductStatus exports:** 3–4 times per hour (captures price and supplier changes). - **Direct calls to Norce Commerce Product Service:** Not needed. ### Client 4: Price-Sensitive Catalog - **Description:** Assortments change infrequently; availability is not sensitive; many companies have custom prices. - **Full exports:** Every week (e.g., Sunday mornings). - **Delta exports:** Every morning. - **ProductStatus exports:** Hourly. - **Direct calls to Norce Commerce Product Service:** - For guest users, show standard price from search. - For logged-in users, supplement search results with real-time prices using [ListProductsByIds3](/api-reference/services/productservice/openapi/products/listproductsbyids3). ## Availability and OnHand Functionality > **Note:** For details on using OnHand (availability) functionality in Norce Commerce, see [Availability structures](/solution-portal/detailed-design/availability-structure). ## Tips on how to managing multiple Product Feeds If you have multiple target systems with specific price lists and assortments: - Create a **main feed** for the full product export. - Create **separate feeds** for each specific assortment or price list. - Use smaller ProductStatus exports for frequent updates, and merge additional information from the main export during mapping. ## Further Reading - [Working with listing products and variants](/developer-portal/app-development/working-with-listing-products-and-variants) - [Building a Norce Commerce Product Feed Receiver](/developer-portal/app-development/building-a-norce-product-feed-receiver) - [Availability structures](/solution-portal/detailed-design/availability-structure)