> ## Documentation Index
> Fetch the complete documentation index at: https://docs.digifist.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Product Fields

> All product and collection fields synced from Shopify into Galantis — field mapping, storage, and the exclude_from_syncforce flag.

When Galantis syncs a product from Shopify, it maps the Shopify product data to a structured record stored in Galantis. This record is what powers WhatsApp product messages, automation condition evaluations, Back-in-Stock eligibility checks, and segment rules based on purchased collections or brands.

Understanding what is synced — and what each field is used for — helps diagnose issues, build accurate segment rules, and manage which products appear in your WhatsApp catalog.

## What this covers

* All product fields synced from Shopify and their purpose in Galantis
* How collection data is stored and used
* The `exclude_from_syncforce` flag and when to use it
* The full product JSON payload storage

## Product fields

<Tabs>
  <Tab title="Core Fields">
    | Field         | Source  | Purpose in Galantis                                                                                                          |
    | ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
    | `title`       | Shopify | Product name — displayed in SPM and MPM product cards, available as a template variable via `order.product_name`             |
    | `description` | Shopify | Full product description — stored and available for catalog display                                                          |
    | `vendor`      | Shopify | Brand name — used in segment rules (`Purchased brand`) and catalog filtering                                                 |
    | `tags`        | Shopify | Product tags — used in the `PRODUCT_IN_ORDER_HAS_TAG` automation condition                                                   |
    | `images`      | Shopify | Product images — displayed in product message formats and catalog browse; must meet Meta's format requirements for Meta sync |

    Product tags deserve particular attention. They are the mechanism that connects Shopify's product taxonomy to Galantis automation logic — the `PRODUCT_IN_ORDER_HAS_TAG` condition in automation flows evaluates these tags. If product tags are not consistently applied in Shopify, condition-based automation branching on product category will not work reliably.

    <Note>
      Product images must be JPEG or PNG format and at least 500×500px to pass Meta's validation during catalog push. Products with images that do not meet these requirements will fail on the Meta sync step. The images are stored correctly in Galantis regardless — the format requirement applies only to the Meta push. See [Catalog Health](./catalog-health).
    </Note>
  </Tab>

  <Tab title="Pricing & Availability">
    | Field              | Source  | Purpose in Galantis                                                                          |
    | ------------------ | ------- | -------------------------------------------------------------------------------------------- |
    | `price`            | Shopify | Per-variant price — displayed in product message formats and catalog browse                  |
    | `compare_at_price` | Shopify | Original or pre-sale price — displayed alongside `price` in product cards to show a discount |
    | `availability`     | Shopify | In-stock or out-of-stock status — determines Back-in-Stock widget eligibility per variant    |

    Price and availability data are among the most time-sensitive fields in the catalog. Both are updated automatically whenever a change is saved in Shopify. A price change takes effect in Galantis within seconds of the Shopify save.

    Availability is derived from the variant-level `inventory_quantity` field — when `inventory_quantity` drops to `0`, the variant becomes eligible for Back-in-Stock subscriptions. When it returns to a positive value, the `BACK_IN_STOCK` trigger fires. See [Variants & Pricing](./variants-pricing) for the full variant-level data model.
  </Tab>

  <Tab title="Taxonomy & Relations">
    | Field         | Source  | Purpose in Galantis                                                                              |
    | ------------- | ------- | ------------------------------------------------------------------------------------------------ |
    | `collections` | Shopify | Collection memberships — used in segment rules (`Purchased collection`) and catalog organization |
    | `variants`    | Shopify | All variant options for the product — stored with individual pricing and inventory               |
    | `sku`         | Shopify | Stock-keeping unit per variant — stored for catalog reference and product identification         |

    Collection memberships are synced from Shopify collection webhooks and kept current as products are added to or removed from collections in Shopify. This data feeds the `Purchased collection` segment rule — if a customer has purchased any product from a given collection, Galantis knows this from the order history joined against collection membership data.
  </Tab>

  <Tab title="Storage">
    | Field  | Source  | Purpose in Galantis                                                      |
    | ------ | ------- | ------------------------------------------------------------------------ |
    | `data` | Shopify | Full Shopify product JSON payload stored alongside the structured fields |

    Galantis stores the complete Shopify product JSON payload alongside the structured fields. This serves as a source-of-truth backup — if a specific Shopify product attribute is not mapped to a dedicated Galantis field, it is still accessible from the full payload.
  </Tab>
</Tabs>

## The exclude\_from\_syncforce flag

The `exclude_from_syncforce` flag can be set on any individual product record in Galantis. When set, the product is excluded from being pushed to Meta during catalog sync operations.

**What it does:**

* Prevents the product from being included in Meta Catalog pushes (both initial push and incremental sync updates)
* The product remains in Galantis — it is still synced from Shopify, still appears in your Galantis catalog, and still available for segment rules and automation conditions
* The product will not appear in SPM, MPM, or Whole Catalog messages sent via WhatsApp

**What it does not do:**

* It does not remove the product from Shopify
* It does not prevent the product from being synced from Shopify into Galantis
* It does not affect Back-in-Stock widget eligibility for the product's variants

**When to use it:**

* Products that are not ready for customer-facing WhatsApp commerce (draft products, internal SKUs, gift cards)
* Products with images that fail Meta's format requirements and cannot be fixed immediately — exclude them to prevent them from blocking the broader catalog push
* Products that are available on your Shopify store but should not be surfaced in WhatsApp messages for business reasons (wholesale-only items, B2B products)

**How to set it:**

Navigate to **Catalog → \[Product Name]** and toggle the exclude flag on the product record. The flag takes effect on the next Meta sync operation.

## Collection fields

Collections are synced into Galantis as separate records with their own webhook pipeline:

| Field      | Source  | Purpose                                           |
| ---------- | ------- | ------------------------------------------------- |
| `title`    | Shopify | Collection name                                   |
| `products` | Shopify | Products associated with this collection          |
| `handle`   | Shopify | URL handle — used for collection-level deep links |

Collection data is used primarily for segment rule evaluation (`Purchased collection` condition) and for organizing product selections in MPM templates into labeled sections.

## Related guides

* [Shopify Sync](./shopify-sync) — How and when these fields are synced from Shopify
* [Variants & Pricing](./variants-pricing) — Variant-level field detail beyond the product-level fields above
* [Meta Catalog](./meta-catalog) — How synced fields are mapped when pushing to Meta
* [Catalog Health](./catalog-health) — How field-level issues (e.g., image format) affect sync status
* [Automations — Conditions](/whatsapp/automations/conditions) — How `tags` and `collections` are used in condition evaluation
