Component Migration Using the SDK
See SDK overview: Developer Integration SDK
Before (legacy assumptions in custom code)
// Legacy code often assumed one hard-coded format per field.
const raw = item?.fields?.BynderDamSingleFile?.value;
// custom XML parsing or brittle string handling...After (format-safe parsing)
import { parseBynderField, BynderDamImage } from '@neworange/bynder-dam-connector-sitecoreai-sdk';
const rawValue = item?.fields?.BynderDamSingleFile?.value;
const parsed = parseBynderField(rawValue);
export function ProductImage() {
if (!parsed) return null;
return <BynderDamImage asset={parsed} alt="Product image" />;
}Dual-field rendering example (Bynder + Sitecore fallback)
import { parseBynderField, BynderDamImage } from '@neworange/bynder-dam-connector-sitecoreai-sdk';
export function HeroImage({ item }: { item: any }) {
const bynderRaw = item?.fields?.HeroImageBynder?.value;
const bynderAsset = parseBynderField(bynderRaw);
const sitecoreImage = item?.fields?.HeroImageSitecore?.value;
if (bynderAsset) {
return <BynderDamImage asset={bynderAsset} alt="Hero image" />;
}
if (sitecoreImage?.src) {
return <img src={sitecoreImage.src} alt={sitecoreImage.alt || 'Hero image'} />;
}
return null;
}Why this matters
- One parsing path works throughout phased migration.
- Legacy XML and new JSON values can coexist while templates/components are being updated.
- This reduces regression risk from format-specific parsing logic.