Field mapping for connector feeds
This page documents how the Adobe Commerce Optimizer Connector transforms Adobe Commerce catalog fields into the format required by the Commerce Optimizer Catalog Data Ingestion API. See the connector reference for the list of supported feeds and their API endpoints.
Products
The products feed sends data to the Products endpoint.
skuskustoreViewCodesource/localenamenameurlKeyslugproductIdexternalIds[0].idorigin to "AdobeCommerce"statusstatusDISABLED if the status is missing or if a configurable or bundle product has no option values.descriptiondescriptionshortDescriptionshortDescriptionvisibilityvisibleInCatalog to CATALOG and Search to SEARCH. Drops other values.metaTitlemetaTags/titlemetaDescriptionmetaTags/descriptionmetaKeywordmetaTags/keywordsinStock, lowStock, weight, weightUnitattributes[].code = "aco_ac_attributes"aco_ac_attributes entry as the first attribute. Its JSON value includes inStock and lowStock as strings. It includes weight and weightType when those values are available.attributes[]attributes[]inStock, lowStock, categories, weight, and weightType. The inventory-related values are included in aco_ac_attributes. Categories are exported as routes.images[]images[]Exports
url, label (empty if missing), and sortOrder (integer, defaults to 0).Sorts images by
sortOrder in ascending order.Maps standard roles:
image to BASE, small_image to SMALL, thumbnail to THUMBNAIL, and swatch_image to SWATCH. Exports other roles as customRoles[].categoryData[].categoryPathroutes[].pathcategoryData[].productPositionroutes[].position0 if the product position is missing.links[].type + links[].skulinks[]type uppercased; entries without sku droppedparents[].productType + parents[].skulinks[]configurable to VARIANT_OF, and bundle or bundle_fixed to IN_BUNDLE. Converts other product types to uppercase. Skips parents without a SKU.configurable optionsconfigurations[]Maps
id to attributeCode. Sets type to SWATCH when swatchType is present, and to CONFIGURABLE otherwise.Uses the ID of the default value as
defaultVariantReferenceId.Maps each value to
variantReferenceId, label, colorHex, and imageUrl.bundle optionsbundles[]Uses the option label as
group, or Bundle group if the label is empty. Copies required to the output.Sets
multiSelect to true for checkbox and multi render types.Lists default SKUs in
defaultItemSkus. Each item includes sku, qty (defaults to 0), and userDefinedQty (from qtyMutability, defaults to false).Product attributes metadata
The productAttributes feed sends data to the Metadata endpoint.
attributeCodecodestoreViewCodesource/localelabellabeldataType + frontendInputdataTypedataType and frontendInputdataTypevisible, visibleInSearch, visibleInListing, visibleInCompareListvisibleIn[]true, adds its corresponding value:visible → PRODUCT_DETAILvisibleInSearch → SEARCH_RESULTSvisibleInListing → PRODUCT_LISTINGvisibleInCompareList → PRODUCT_COMPAREfilterablefilterablesortablesortablesearchablesearchablesearchWeightsearchWeightsearchTypessearchTypesData type conversion
When dataType is int, the connector checks frontendInput. For other data types, frontendInput does not affect the conversion.
dataTypefrontendInputdataTypeintbooleanBOOLEANinttext or selectTEXTintINTEGERdecimalDECIMALtext, varchar, static, datetimeTEXTOBJECTOBJECTTEXTOBJECT data type, the Products API attempts to parse its stored value as JSON. If parsing succeeds, the API returns the value as a nested object. Use OBJECT for structured attribute data that cannot be represented as a single value. For instructions, see Add product attributes dynamically.Price books
The priceBooks feed sends data to the Price books endpoint.
Unlike the other connector feeds, the priceBooks feed is not collected by a SaaS Data Export indexer in Adobe Commerce. The connector generates this feed from the website and customer group configuration in the Admin.
For each website, the connector creates one base price book and one child price book for each customer group.
Use these formulas for priceBookId:
- Base price books for regular prices:
priceBookId = websiteCode. - Child price books for customer groups:
priceBookId = websiteCode::sha1(customerGroupId), wheresha1(customerGroupId)is the SHA-1 hex digest of the customer group’s integer ID.
The prices feed uses the same formula to assign each price entry to a price book. For information about how a storefront resolves priceBookId for a customer session, see Headless storefront integration.
websiteCodeparentIdnameCustomer group name (Website name) for child price books.websiteCodeparentIdcurrencyPrices
The prices feed sends Adobe Commerce data to the Prices endpoint.
skuskuwebsiteCode, customerGroupCodepriceBookIdwebsiteCode with the SHA-1 hash of the customer group ID in customerGroupCode. If customerGroupCode is 0, uses websiteCode alone.regularregulardiscounts[]discounts[]null, exports an empty array.For entries with
code set to special_price and a percentage, sets percentage to 100 - percentage when the value is between 0 and 100. Sets it to 0 at or outside that range.Passes other entries, including price-based special prices, through unchanged.
tierPrices[]tierPrices[]null.Categories
The categories feed sends Adobe Commerce data to the Categories endpoint.
Items with an empty urlPath (logical root categories) are skipped and never submitted.
storeViewCodesource/localenamenameurlPathslugdescriptiondescriptionpositionpositionmetaTitlemetaTags/titlemetaDescriptionmetaTags/descriptionmetaKeywordsmetaTags/keywordsimageimages[].urlroles: ["BASE"]isActive + includeInMenufamilies["top_menu"] when both true, [] otherwise| metaKeywords | metaTags/keywords | Splits newline-delimited keywords into an array and trims whitespace. |
| image | images[].url | When image is present, exports one image with the BASE role. Exports an empty array when the image is empty or missing. |
| isActive + includeInMenu | families | Adds top_menu only when both values are true. Otherwise, exports an empty array. |
| attributes[] | attributes[] | Exports entries with a nonempty attributeCode as {code, values[]}. Converts values to strings. Omits attributes when no eligible entries exist. |