Skip to content

How to add Upsize/Downsize panel, Vehicle Info for wheels/tires

Upsize/Downsize panel

ac15fc (Autoparts Palace)

1. Connect WheelTireUpsizeDownsizePlugin.

schema.yaml

Plugins:
- WheelTireUpsizeDownsizePlugin

2. Combine Wheel/Tire diameters into one field.

ItemConverter

protected override void AddWheels(Item item, Product product, IList<Item> productVariants)
{
// ...
item.RenameKey("wheel_diameter", WheelTireUpsizeDownsizePlugin.DiameterField);
}
protected override void AddTires(Item item, Product product, IList<Item> productVariants)
{
// ...
item.RenameKey("tire_rim", WheelTireUpsizeDownsizePlugin.DiameterField);
}

schema.yaml

wheel_tire_diameter:
Title: Diameter
Faceted: true
IsMultiselected: true
IsSingleValue: true
Sorting: OrderNumericValueAsc

3. Add the widget UpsizeDownsizeFacetPanel.

config.js

{
name: 'UpsizeDownsizeFacetPanel',
type: 'FacetPanel',
fields: ['wheel_tire_diameter'],
showAllAlways: true,
disableCollapse: true,
},

MainContent.rt

<cm:UpsizeDownsizeFacetPanel
rt-if="this.facets.length === 1 && this.isVehicleSelected"
class="cm_upsize-downsize"
template="fitmentSearch/upsizeDownsizeFacetPanel"
/>

4. Replace the fields wheel_diameter and tire_rim with wheel_tire_diameter on the client.

config.js or via window.Convermax.config in the theme

const wheelsFields = ['wheel_tire_diameter', 'wheel_width', 'wheel_bolt_pattern'];
const tiresFields = ['tire_width', 'tire_aspect', 'wheel_tire_diameter'];

5. For the FacetBarWheels/FacetBarTires widgets add the setting minFacetCount: 2.

config.js

{
name: 'FacetBarWheels',
type: 'FacetBar',
fields: wheelsFields,
minFacetCount: 2,
},
{
name: 'FacetBarTires',
type: 'FacetBar',
fields: tiresFields,
minFacetCount: 2,
},

This is necessary because a common diameter field was made for wheels/tires. And we don’t want to draw a tire panel with one facet for a set of wheels (and vice versa).

Wheel Tire Vehicle Info

1. Connect WheelTireVehicleInfoPlugin.

schema.yaml

Plugins:
- WheelTireVehicleInfoPlugin

2. Add the widget WheelTireVehicleInfo.

On the desktop, the widget is added to the filter panel as the first element, and on mobile, it is placed in MainContent under SearchVehicleWidget.

config.js

{
name: 'WheelTireVehicleInfo',
autoSyncVisualization: { // if AutoSync vehicle visualization is needed
apiKey: AutoSyncKey,
},
}

FacetPanelContainer.rt

<cm:WheelTireVehicleInfo
rt-if="window.innerWidth > 989"
class="cm_wheel-tire-vehicle-info"
template="fitmentSearch/wheelTireVehicleInfo"
/>

MainContent.rt

<cm:WheelTireVehicleInfo
class="cm_wheel-tire-vehicle-info cm_desktop-hide"
template="fitmentSearch/wheelTireVehicleInfo"
/>

You can connect both features, or just one of them.

But if both are connected, the following plugin order should be followed:

  • WheelTireUpsizeDownsizePlugin
  • WheelTireVehicleInfoPlugin

Because the first plugin affects the second.