Skip to main content

Industries

DealerCenter inventory feed integration

A DealerCenter inventory feed integration connects an inventory export to the records, images, search results, and vehicle detail pages on a dealership website. The documented mechanics for this method are a CSV arriving over SFTP, cp1252 decoding where observed, and a VIN keyed upsert. This page explains those mechanics and the implementation decisions around them. It describes a technical method; it does not present a client result or establish that every DealerCenter export uses the same configuration.

If search work is part of the scope, our website rule applies. We only do SEO on a site we built.

Establish the export contract before importing inventory

Start with a representative export and an agreed field map. Identify the columns carrying VIN, stock number, inventory status, vehicle attributes, mileage, listing text, and image references. Record which fields are required, which can be empty, and which system owns each value. Confirm whether each file represents the complete inventory or only changes. That distinction determines whether an absent vehicle means anything at all.

Confirm the delivery arrangement separately from the CSV format: SFTP host, account, directory, filename pattern, and expected delivery schedule. Establish how the receiving process recognizes a completed upload. A file becoming visible does not necessarily mean the sender has finished writing it. Where supported, use a temporary filename followed by a rename; otherwise agree on another completion check before parsing.

Receive the SFTP file and decode its actual bytes

The documented transport is SFTP. For an implementation, verify the server host key, restrict the receiving account to the necessary directory, and keep credentials outside application source. Preserve the original file with a receipt timestamp and import identifier. Recording a checksum helps distinguish a repeated delivery from changed content and connects later troubleshooting to the exact bytes received.

Use cp1252 when the export demonstrates that encoding

The documented CSV mechanic includes cp1252, also called Windows-1252. When that encoding is observed in the supplied export, decode the file accordingly before parsing its fields. Treating those bytes as UTF-8 can corrupt punctuation or descriptions. Do not assume cp1252 for every DealerCenter delivery: confirm the encoding against representative files and make it an explicit import setting.

Use a CSV parser that respects quoted delimiters, embedded line breaks, and escaped quotation marks. Splitting every line on commas can shift vehicle descriptions into unrelated columns. Validate the header after decoding, normalize agreed whitespace, and retain useful source values for diagnosis. Unexpected headers or broken quoting should stop or quarantine the import according to the validation policy, rather than silently changing the field mapping.

Upsert by stable VIN identity

The documented persistence mechanic is a VIN keyed upsert: insert a vehicle when its VIN is new and update its existing record when the VIN already exists. Normalize VIN casing and surrounding whitespace before matching. Scope that identity to the dealership when the receiving system serves multiple dealers. Keep a separate internal record identifier so relationships to images and pages remain stable.

A stock number belongs to the inventory record but should not replace VIN as the documented matching key. Stock numbers may need correction or reassignment under the dealership's operating rules. Updating one should not automatically create another vehicle page. Missing VINs, conflicting duplicate VIN rows, and suspected VIN corrections need explicit handling; they should not trigger guesses based on a similar stock number or vehicle description.

  • Define which source fields may overwrite website values and which editorial fields remain locally managed.
  • Distinguish an intentional empty value from an omitted field so a partial update does not erase valid content.
  • Make replaying the same accepted file idempotent: the same VINs should resolve to the same records without duplicate pages.

Model stock and status transitions explicitly

Create a mapping from the export's actual status values to the website's publication states. Available, pending, sold, and withdrawn are possible destination states, not a claim about the exact labels supplied in every feed. Decide what each state means for inventory search, vehicle detail pages, inquiry forms, and displayed availability. An unknown source status should enter an exception path instead of defaulting to available.

Missing rows require special care. In a validated complete snapshot, absence can be used under an agreed reconciliation rule. In a delta file, absence says nothing about unchanged vehicles. A truncated or empty delivery must not retire the entire inventory. Apply disappearance rules only after completeness checks pass, and preserve an audit trail when a VIN changes state or returns to stock.

Treat images as a lifecycle within each vehicle record

Map the image references actually supplied by the export, including their ordering and any primary-image designation. Associate them with the stable vehicle record. Define whether a new image list replaces the previous list or supplements it; otherwise deleted photos can linger indefinitely. An empty image field also needs an agreed meaning, particularly when the feed supports partial updates.

Separate accepting vehicle data from fetching or checking its images. A temporary image failure should follow a retry policy without creating another vehicle record. Validate allowed image locations, deduplicate references, and preserve gallery order. If an upstream URL stays the same while its content changes, define a refresh policy. Retire stale cached assets only after the replacement gallery is accepted, with enough retained history to support rollback.

Choose vehicle URLs, canonicals, and schema together

Keep a stable vehicle detail URL associated with the internal vehicle record. Avoid generating a new address whenever a stock number, title, or descriptive slug changes. If a public address must change, define the redirect and canonical update together. Search filters, sorting parameters, and alternate paths need their own indexing rules so they do not accidentally become competing versions of the same vehicle page.

Choose structured data that fits the page's visible content. Vehicle descriptions and any offer information should agree with the accepted inventory record and displayed availability. Do not invent missing attributes or let sold vehicles retain an available offer. For this integration service page, the page plan specifies Service, FAQPage, and BreadcrumbList; vehicle detail pages require their own schema decisions. Schema and canonical configuration are implementation choices, not evidence of a search outcome.

Validate changes before publishing them

Stage decoded records before changing the live inventory. Check required headers, field types, duplicate identities, status mappings, and image-reference structure. Compare proposed inserts, updates, and retirements with the previous accepted run. Set review thresholds from the dealership's expected inventory behavior, rather than inventing a universal acceptable change count. A large unexplained retirement set should block publication until investigated.

Separate file failures from row failures. A malformed header can invalidate the whole import; an isolated invalid vehicle may be quarantined under an agreed policy. Record the import identifier, row reference, affected field, and actionable reason. Mark any accepted run with quarantined rows as incomplete for absence reconciliation, so rejected vehicles are not mistaken for removals. Report transport failures and stale deliveries distinctly from successful imports.

Prepare rollback before the first live run

Retain the last accepted inventory state, source file, mapping version, and image associations. Publish through a transaction or versioned release appropriate to the receiving system so readers do not encounter a mixture of old and new records. Serialize imports for each dealership, or reject stale runs, to prevent an older delivery from overwriting a newer accepted state.

Rollback should restore publication states and image associations as well as vehicle fields. Pause further imports while investigating, restore the chosen accepted version, and reconcile page caches, search listings, canonicals, and schema with that version. Test replay and restoration before launch. Document who reviews exceptions and authorizes resuming ingestion. These are proposed operating controls around the documented feed mechanics, without a claim of measured client performance.

Questions

Does every DealerCenter inventory CSV use cp1252?

This method documents cp1252 where observed, not as a universal DealerCenter format. Confirm the supplied export's encoding, configure decoding explicitly, and check representative punctuation and descriptions. Preserve the original bytes so decoding problems can be reproduced without requesting another export.

Why match vehicles by VIN instead of stock number?

VIN is the documented upsert key. A stable match lets a repeated delivery update the existing vehicle while stock details change. Stock numbers remain useful operational attributes. Missing or conflicting VINs need an exception process rather than an automatic match to a different vehicle.

Should a vehicle disappear from the website when it is missing from a file?

Only apply an absence rule when the delivery is confirmed as a complete, accepted snapshot and the agreed reconciliation policy permits it. Missing rows in delta files do not indicate removal. Failed, partial, or quarantined imports should not cause inventory retirement through absence.

Can an incorrect import be reversed?

Design for reversal by retaining accepted versions and recording changes to vehicles, statuses, and image associations. Restore the selected version, reconcile the website's derived content, and pause ingestion until the cause is understood. Recovery depends on those controls being implemented and tested; the feed alone does not provide them.

Related

By Marco Consuelo, Ninetyfifth Marketing. Last reviewed .

Downtown Phoenix, by appointment only. contact@ninetyfifthmktg.com

Ninetyfifth Marketing

Let's talk.

Take 90 seconds to tell us about your business. If we're a fit, we'll reach out to set up a call.

Ninetyfifth Marketing
Ninetyfifth Marketing
Live chat · Replies in minutes
Ask a question and someone from our team will jump in.