Module: Edi::MiraklSeller::BestbuyCa

Defined in:
app/services/edi/mirakl_seller/bestbuy_ca/product_data_presenter.rb

Overview

Service object: bestbuy_ca.

Best Buy Canada Marketplace Mirakl seller integration. Builds a flat Hash of
Best Buy column-code → value, ready for the ProductDataSender to POST as
multipart form data to /api/products/imports.

Best Buy's Mirakl schema differs from the European partners' in three ways:

  1. Product families. WarmlyYours sells four distinct product types on
    Best Buy CA Marketplace, only two of which map cleanly to the existing
    is_towel_warmer? / is_infrared_heating_panel? base-presenter dichotomy.
    #to_h is overridden to dispatch into per-family methods instead.
  2. Field codes. Best Buy uses suffix-encoded category codes — the same
    conceptual field appears as _Width_6823_CAT_32872_EN for heaters and
    _Width_6823_CAT_35719_EN for bathroom items. Each family's data
    method emits the codes for its own category.
  3. Bilingual content. Canada is bilingual; some Quebec-compliance
    fields (_French_Compliant_*, _Warranty_And_Repair_Disclosure_URL_FR_*)
    need French content when available.

Category mapping (matches what we already upload manually):

Heatwave predicate BBYCat path Family
is_snow_melting_product?, is_pipe_freeze_protection? Appliances/Heaters & Fireplaces (CAT_32872) Indoor Heater
de-icing / roof-and-gutter cables Appliances/Heaters & Fireplaces (CAT_32872) Outdoor Heater
is_towel_warmer? Home & Furniture/Bathroom Accessories - … (CAT_328963) Towel Warmer
is_mirror_defogger? or LED Backlit Mirror SKU Home & Furniture/Bathroom Accessories - … (CAT_328963) Bathroom Mirror

The Outlet storefront has an additional family (Floor Heating Cable, under
Home & Furniture/Home Automation & Accessories, CAT_37144); see
Edi::MiraklSeller::BestbuyCaOutlet::ProductDataPresenter.

Defined Under Namespace

Classes: ProductDataPresenter