--- title: 'Custom implementations: Get started without using the Coveo app for Shopify' slug: p2la0422 canonical_url: https://docs.coveo.com/en/p2la0422/ collection: coveo-for-commerce source_format: adoc --- # Custom implementations: Get started without using the Coveo app for Shopify Unless you have a specific reason not to use the [**Coveo AI Search & Discovery**](https://docs.coveo.com/en/p2la0421/) app, we recommend doing so because it handles a lot of the complexity for you, notably regarding [indexing](https://docs.coveo.com/en/oc2d1151/) and [event tracking](https://docs.coveo.com/en/oc2d1152/). If you don't want to use the app and would rather create a custom implementation, refer to the generic [Coveo for Commerce setup guide](https://docs.coveo.com/en/o25a0034/). This article provides recommendations to help you carry out such an implementation in the context of Shopify. ## Index content You'll need to create one or more [sources](https://docs.coveo.com/en/246/) to [index your catalog data](https://docs.coveo.com/en/3448/). Create the following: * One [tracking ID](https://docs.coveo.com/en/n8tg0567/) and [property](https://docs.coveo.com/en/o7vh0012/) per Shopify [market](https://shopify.dev/docs/apps/build/markets). * One [source](https://docs.coveo.com/en/246/) per market and language combination. You should only [index](https://docs.coveo.com/en/204/) using the main market currency, so that you don't create unnecessary [sources](https://docs.coveo.com/en/246/). * One [storefront association](https://docs.coveo.com/en/o48e0216/) per market and country combination. This lets you target each country with a specific commerce experience, without creating unnecessary [sources](https://docs.coveo.com/en/246/). ### Indexing example You have one market in Europe, where you sell to French, Belgian, Italian, Austrian, and German customers. In total, there are five countries and three languages, all using the Euro as currency. * Create one [tracking ID](https://docs.coveo.com/en/o8rb0139/) for the European market: `market_eu`. Also create the `Europe` [property](https://docs.coveo.com/en/p4ue0547/) to register the `market_eu` [tracking ID](https://docs.coveo.com/en/o8rb0139/). * Create one [source](https://docs.coveo.com/en/246/) for each language: ** `products_eu_fr` for French-speaking customers ** `products_eu_it` for Italian-speaking customers ** `products_eu_de` for German-speaking customers * Create one [storefront](https://docs.coveo.com/en/p33g0410/) association for each country: [%header,cols="4"] |=== |Property |Tracking ID |Locale |Catalog source |`Europe` |`market_eu` |`fr-FR-EUR` |`products_eu_fr` |`Europe` |`market_eu` |`be-FR-EUR` |`products_eu_fr` |`Europe` |`market_eu` |`it-IT-EUR` |`products_eu_it` |`Europe` |`market_eu` |`de-DE-EUR` |`products_eu_de` |`Europe` |`market_eu` |`at-DE-EUR` |`products_eu_de` |=== With these five [storefront](https://docs.coveo.com/en/p33g0410/) associations, you can target all five countries with a specific commerce experience while only creating three [sources](https://docs.coveo.com/en/246/). ## Track events The **Coveo AI Search & Discovery** app uses a [web pixel](https://shopify.dev/docs/api/web-pixels-api) to log certain commerce events based on your implementation approach. If you can't use the app, you need to [implement your own web pixel to track events](https://docs.coveo.com/en/p2la0423/). ## Build commerce interfaces You have two options for creating a commerce interface without the **Coveo AI Search & Discovery** app: the [Coveo Atomic library](https://docs.coveo.com/en/lcdf0264/) and the [Coveo Headless library](https://docs.coveo.com/en/lcdf0493/). Headless is faster and more flexible than Atomic, but requires more development effort. ## Coveo Atomic with Shopify Liquid Atomic is a collection of pre-built UI components meant to quickly create product discovery interfaces. These components are compatible with [Shopify Liquid](https://shopify.dev/docs/api/liquid), allowing you to readily integrate them into your Shopify theme. Under the hood, Atomic relies on the [Coveo Headless](https://docs.coveo.com/en/lcdf0493/) library to interface with Coveo and handle the application state. See [Build Atomic commerce interfaces in a Shopify store without the Coveo AI Search & Discovery app](https://docs.coveo.com/en/oc2d1157/). ## Coveo Headless with Shopify Hydrogen Headless is a [Redux-based](https://redux.js.org/) toolset for developing your own search UI component libraries. It's compatible with [Shopify Hydrogen](https://hydrogen.shopify.dev/), allowing you to create a high-performance and customizable search interface. Whether or not you're using the **Coveo AI Search & Discovery** app, the Headless implementation doesn't change. See [Build product discovery interfaces with Coveo Headless and Shopify Hydrogen](https://docs.coveo.com/en/p1oe2163/). :leveloffset!: