Blog Sections Open

Using catalogFill to Update Existing Products Instead of Duplicating Them

A practical catalogFill import pattern for stable product synchronization in Evolution CMS.

catalogFill imports work best when one field acts as a stable identifier for matching existing products. Without that, repeated imports tend to create duplicates instead of updating the intended records.

Typical mapping

$cf_config['content_row'] = array(
    array('', array(7, 'category')),
    array('', array('pagetitle', 'content')),
    array('', array('description', 'content')),
    array('', array(8, 'tv')),
    array('Label', array(23, 'tv')),
);

To update rather than duplicate, the import then checks a chosen field:

$cf_config['imp_chk_field'] = 'pagetitle';

Why this matters

If the check field is unstable or non-unique, imports become destructive. If it is stable and meaningful, catalogFill can behave much more like synchronization than blind insertion.

Recommended practice

Choose a field that stays unique across imports, and use that as the record-matching rule. If product titles may change, use a dedicated external ID instead of pagetitle.

This one decision has more impact on import quality than almost any template or mapping detail around it.

Newer post

Translating YAMS URL Rewrite Rules for IIS7

How to adapt a YAMS multilingual URL setup from Apache-style rewrite rules to IIS7 URL Rewrite without breaking context prefixes such as /en and /ru.

Older post

Exporting Products to XML from Evolution CMS

How to think through XML product exports in Evolution CMS so the data structure, field mapping, and downstream consumer format all stay under control.