fix: populate custom targeting keys when editing products#693
Merged
Conversation
**Problem:** When editing a product with custom targeting keys, the keys weren't showing as pre-selected in the targeting dropdown. The form displayed correctly but the existing values weren't loaded. **Root Cause:** The edit_product function wasn't passing targeting_template to the template. Custom targeting keys were stored in implementation_config but the form expects them in targeting_template.key_value_pairs. **Fix:** - Parse targeting_template from product model - If targeting_template is empty but implementation_config has custom_targeting_keys, populate targeting_template.key_value_pairs from implementation_config - Pass targeting_template to the template so the form can pre-select values **Result:** - Custom targeting keys now show as pre-selected when editing products - Backwards compatible with products that have keys in implementation_config only - Form properly displays existing custom key/value pairs 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
danf-newton
pushed a commit
to Newton-Research-Inc/salesagent
that referenced
this pull request
Nov 24, 2025
**Problem:** When editing a product with custom targeting keys, the keys weren't showing as pre-selected in the targeting dropdown. The form displayed correctly but the existing values weren't loaded. **Root Cause:** The edit_product function wasn't passing targeting_template to the template. Custom targeting keys were stored in implementation_config but the form expects them in targeting_template.key_value_pairs. **Fix:** - Parse targeting_template from product model - If targeting_template is empty but implementation_config has custom_targeting_keys, populate targeting_template.key_value_pairs from implementation_config - Pass targeting_template to the template so the form can pre-select values **Result:** - Custom targeting keys now show as pre-selected when editing products - Backwards compatible with products that have keys in implementation_config only - Form properly displays existing custom key/value pairs 🤖 Generated with Claude Code Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixed issue where custom targeting keys weren't showing as pre-selected when editing a product. The keys were saved correctly but the edit form wasn't displaying them.
Problem
When you:
The custom targeting dropdown was empty instead of showing the previously selected keys.
Root Cause
The
edit_productGET handler wasn't passingtargeting_templateto the template. The custom targeting keys were stored inimplementation_config.custom_targeting_keys, but the form expects them intargeting_template.key_value_pairs.Fix
Added logic to populate
targeting_templatefromimplementation_configwhen loading the edit form:targeting_templateandimplementation_configfrom producttargeting_template.key_value_pairsis empty butimplementation_config.custom_targeting_keysexists, copy the keystargeting_templateto the templateThis provides backwards compatibility for products that have keys stored only in
implementation_config.Test Coverage
Result
🤖 Generated with Claude Code