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 fixed to "AdobeCommerce"statusstatusDISABLED for composite products with no assigned childrendescriptiondescriptionshortDescriptionshortDescriptionvisibilityvisibleInCatalog→CATALOG, Search→SEARCH; unmapped values droppedmetaTitlemetaTags/titlemetaDescriptionmetaTags/descriptionmetaKeywordmetaTags/keywordsinStock, lowStock, weight, weightUnitattributes[].code = "aco_ac_attributes"{inStock, lowStock, weight, weightType}; always present as the first attribute entryattributes[]attributes[]{code, values[], variantReferenceId}; inStock, lowStock, weight, weightType are excluded (they go into aco_ac_attributes)images[]images[]url, label; standard roles mapped: image→BASE, small_image→SMALL, thumbnail→THUMBNAIL, swatch_image→SWATCH; non-standard roles go to customRoles[]categoryData[].categoryPathroutes[].pathcategoryData[].productPositionroutes[].positionlinks[].type + links[].skulinks[]type uppercased; entries without sku droppedparents[].productType + parents[].skulinks[]configurable→VARIANT_OF, bundle/bundle_fixed→IN_BUNDLEconfigurable optionsconfigurations[]id→attributeCode, label; option type SWATCH when swatchType is set, else CONFIGURABLE; default variant from isDefault; values include variantReferenceId, label, colorHex, imageUrlbundle optionsbundles[]label→group; required; renderType checkbox/multi→multiSelect: true; default SKUs from isDefault; items include sku, qty, userDefinedQty (qtyMutability)Product attributes metadata
The productAttributes feed sends data to the Metadata endpoint.
attributeCodecodestoreViewCodesource/localelabellabeldataType + frontendInputdataTypevisiblevisibleIn: "PRODUCT_DETAIL"truevisibleInSearchvisibleIn: "SEARCH_RESULTS"truevisibleInListingvisibleIn: "PRODUCT_LISTING"truevisibleInCompareListvisibleIn: "PRODUCT_COMPARE"truefilterablefilterablesortablesortablesearchablesearchablesearchWeightsearchWeightsearchTypessearchTypesData type conversion
The connector derives the API dataType from the Commerce dataType and frontendInput fields in the mapping table above. The following table shows the conversion rules the connector applies.
dataTypefrontendInputdataTypeintbooleanBOOLEANinttext or selectTEXTintINTEGERdecimalDECIMALtext, varchar, static, datetimeTEXTOBJECTOBJECTTEXTdataType for an attribute is set to OBJECT, the products API treats the attribute value as a structured object rather than a plain string. At query time, the API attempts to parse the stored value as JSON. If parsing succeeds, the result is returned as a nested object in the response. This behavior is particularly useful when you supply custom attributes dynamically—for example, to carry structured or multi-field data that cannot be represented as a scalar 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.
One base price book is created per website, plus one child price book per website-customer group pair.
Price book ID formula:
- Base (regular prices):
priceBookId = websiteCode - Child (customer group or shared catalog):
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 when resolving which price book a price entry belongs to. For how storefronts resolve the priceBookId for a customer session, see Headless storefront integration.
websiteCode, customerGroupIdpriceBookIdname"Group Name (Website Name)"websiteCodeparentIdcurrencyPrices
The prices feed sends data to the Prices endpoint.
skuskuwebsiteCode, customerGroupIdpriceBookIdregularregulardiscounts[]discounts[]tierPrices[]tierPrices[]Categories
The categories feed sends data to the Categories endpoint.
Items with an empty urlPath (logical root categories) are skipped and never submitted.
storeViewCodesource/localenamenameurlPathslugdescriptiondescriptionmetaTitlemetaTags/titlemetaDescriptionmetaTags/descriptionmetaKeywordsmetaTags/keywordsimageimages[].urlroles: ["BASE"]isActive + includeInMenufamilies["top_menu"] when both true, [] otherwise