> For the complete documentation index, see [llms.txt](https://docs.fact-finder.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fact-finder.com/shopify-connector/shopify-app/real-time-product-synchronization.md).

# Real-Time Product Synchronization

{% hint style="info" %}
Use real-time synchronization for immediate product changes. Configure a scheduled export for routine full catalog refreshes.
{% endhint %}

### Real-time synchronization

Real-time synchronization is currently available for FactFinder NG only. Enable it for each channel mapping in **Main Settings**.

When disabled, the app ignores Shopify webhooks. No real-time data is synchronized for that mapping.

When enabled, Shopify webhooks queue these events for asynchronous processing:

* `product/create` inserts products and variants.
* `product/update` updates products and adds missing variants.
* `product/delete` removes products and variants.

### When to run a manual export

Run a manual export after **large catalog changes**. It generates a complete product feed.

{% hint style="warning" %}
FactFinder NG runs only one import at a time. While the manual export is importing, you cannot apply Suggest, ranking, or real-time delta updates.
{% endhint %}

#### Markets and catalog changes

Shopify does not send product webhooks for some market, catalog, regional availability, or regional price changes. These changes do not update the product timestamp.

Shopify does not send an instant update when you change a price only in a regional market. This applies when the base product price and variant data remain unchanged.

{% hint style="info" %}
After changing markets, regional availability, or B2B catalogs, run a manual export. It sends a complete product feed and refreshes every affected regional FactFinder channel.
{% endhint %}

Configure a daily or weekly [Scheduled Export](/shopify-connector/shopify-app/schedule-export.md) to refresh these changes routinely.

### Safety and error handling

The app includes safeguards that prevent unwanted synchronization and reduce unnecessary API calls.

#### Product status validation

The app synchronizes only products that are active and published to the selected sales channel. It ignores draft and unpublished products.

#### Bulk operation detection

Mass operations, such as product imports and bulk edits, can trigger hundreds of webhooks.

When the app detects bulk webhook activity, it temporarily pauses Real-Time Sync. It acknowledges the webhooks without processing them.

#### Error handling and retries

Temporary failures, such as timeouts, network errors, and HTTP 5xx responses, are retried automatically.

Permanent failures, such as invalid credentials or configuration errors, are logged and stored in a dedicated error table. After the retry limit is reached, failed products move to the sync error queue.

#### Error notifications

When notifications are configured, permanent failures send an email to the notification address.

The email includes:

* Error description
* Failure reason
* A suggestion to check the configuration


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.fact-finder.com/shopify-connector/shopify-app/real-time-product-synchronization.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
