Module: CatalogConstants

Overview

Centralized catalog ID constants for use across the application.
This ensures all hardcoded references to catalog IDs are managed in one place.

Included in the Catalog model so constants are accessible via Catalog::
while remaining defined in a single place.

Examples:

Using constants

CatalogConstants::HOME_DEPOT_USA          # => 4
CatalogConstants::AMAZON_SELLER_IDS       # => [76, 77, ...]
CatalogConstants.vendor_catalog?(4)       # => true

Constant Summary collapse

US_CATALOG_ID =

==========================================================================
Main / WarmlyYours Catalogs

1
CA_CATALOG_ID =
2
EU_CATALOG_ID =
125
ALL_MAIN_CATALOG_IDS =
[US_CATALOG_ID, CA_CATALOG_ID, EU_CATALOG_ID].freeze
LOCALE_TO_CATALOG =
{
  'en-US': US_CATALOG_ID,
  'en-CA': CA_CATALOG_ID,
  'fr-CA': CA_CATALOG_ID
}.freeze
HOME_DEPOT_USA =

Home Depot

4
HOME_DEPOT_CANADA =
5
COSTCO_CANADA =

Costco

16
COSTCO_USA =

Discontinued

8
WAYFAIR_USA =

Wayfair

18
WAYFAIR_CANADA =
21
WAYFAIR_GERMANY =
267
LOWES_USA =

Lowe's / Rona

23
LOWES_CANADA =
15
RONA_CANADA =
22
BUILD_COM =

Build.com

24
CANADIAN_TIRE =

Canadian Tire

133
HOUZZ =

Houzz

28
BESTBUY_CANADA =

Best Buy Canada

158
AMAZON_SC_US_CATALOG_ID =

Amazon Seller Central (3P) Marketplaces

76
AMAZON_SC_CA_CATALOG_ID =
77
AMAZON_SC_FR_CATALOG_ID =

Amazon European Seller Central Marketplaces

147
AMAZON_SC_DE_CATALOG_ID =
150
AMAZON_SC_NL_CATALOG_ID =
151
AMAZON_SC_ES_CATALOG_ID =
149
AMAZON_SC_IT_CATALOG_ID =
148
AMAZON_SC_PL_CATALOG_ID =
152
AMAZON_SC_BE_CATALOG_ID =
157
AMAZON_SC_UK_CATALOG_ID =
153
AMAZON_SC_SE_CATALOG_ID =
154
AMAZON_VENDOR_CODE_TO_CATALOG_ID =

Vendor code to catalog ID mapping

{
  'WASN4' => 74,   # Amazon VC USA - WASN4
  'WAX7V' => 278,  # Amazon VC USA - WAX7V (Dropship)
  'WAT0F' => 17,   # Amazon VC Canada - WAT0F
  'WAT4D' => 276   # Amazon VC Canada - WAT4D (Dropship)
}.freeze
AMAZON_VC_US_WASN4_CATALOG_ID =
74
AMAZON_VC_US_WAX7V_CATALOG_ID =
278
AMAZON_VC_WAT0F_CA_CATALOG_ID =
17
AMAZON_VC_WAT4D_CA_CATALOG_ID =
276
AMAZON_VC_CA_CATALOG_ID =
AMAZON_VC_WAT0F_CA_CATALOG_ID
WALMART_SELLER_USA =

Walmart Seller Marketplaces

280
WALMART_SELLER_CANADA =
136
AMAZON_EU_CATALOG_IDS =

Amazon EU seller catalog IDs

[
  AMAZON_SC_FR_CATALOG_ID,
  AMAZON_SC_DE_CATALOG_ID,
  AMAZON_SC_NL_CATALOG_ID,
  AMAZON_SC_ES_CATALOG_ID,
  AMAZON_SC_IT_CATALOG_ID,
  AMAZON_SC_PL_CATALOG_ID,
  AMAZON_SC_BE_CATALOG_ID,
  AMAZON_SC_UK_CATALOG_ID,
  AMAZON_SC_SE_CATALOG_ID
].freeze
AMAZON_SC_CATALOG_IDS =

Amazon Seller Central (3P) — North America only

[AMAZON_SC_US_CATALOG_ID, AMAZON_SC_CA_CATALOG_ID].freeze
AMAZON_NA_SELLER_IDS =
AMAZON_SC_CATALOG_IDS
AMAZON_SELLER_IDS =

Amazon Seller Central (3P) — All regions (NA + EU)

(AMAZON_NA_SELLER_IDS + AMAZON_EU_CATALOG_IDS).freeze
AMAZON_VC_US_CATALOG_IDS =

Amazon Vendor Central (1P) groupings

[AMAZON_VC_US_WASN4_CATALOG_ID, AMAZON_VC_US_WAX7V_CATALOG_ID].freeze
AMAZON_VC_CA_CATALOG_IDS =
[AMAZON_VC_WAT0F_CA_CATALOG_ID, AMAZON_VC_WAT4D_CA_CATALOG_ID].freeze
AMAZON_VC_CATALOG_IDS =
(AMAZON_VC_US_CATALOG_IDS + AMAZON_VC_CA_CATALOG_IDS).freeze
AMAZON_VC_DIRECT_FULFILLMENT_CATALOG_IDS =
[AMAZON_VC_US_WAX7V_CATALOG_ID, AMAZON_VC_WAT4D_CA_CATALOG_ID].freeze
AMAZON_US_CATALOG_IDS =

Amazon per-country (SC + VC)

[AMAZON_SC_US_CATALOG_ID, AMAZON_VC_US_WASN4_CATALOG_ID, AMAZON_VC_US_WAX7V_CATALOG_ID].freeze
AMAZON_CA_CATALOG_IDS =
[AMAZON_SC_CA_CATALOG_ID, AMAZON_VC_WAT0F_CA_CATALOG_ID, AMAZON_VC_WAT4D_CA_CATALOG_ID].freeze
AMAZON_CATALOG_IDS =

All Amazon catalogs (SC + VC, all regions)

(AMAZON_US_CATALOG_IDS + AMAZON_CA_CATALOG_IDS + AMAZON_EU_CATALOG_IDS).freeze
WAYFAIR_CATALOGS =

All Wayfair catalogs

[WAYFAIR_USA, WAYFAIR_CANADA, WAYFAIR_GERMANY].freeze
HOME_DEPOT_CATALOGS =

All Home Depot catalogs

[HOME_DEPOT_USA, HOME_DEPOT_CANADA].freeze
COSTCO_CATALOGS =

All Costco catalogs

[COSTCO_CANADA].freeze
WALMART_CATALOGS =

All Walmart catalogs

[WALMART_SELLER_USA, WALMART_SELLER_CANADA].freeze
VENDOR_CATALOGS =

Vendor catalogs (1P sellers) - MAP pricing applies
These are retailers where WarmlyYours sets wholesale price, retailer sets retail price

[
  HOME_DEPOT_USA,
  HOME_DEPOT_CANADA,
  COSTCO_CANADA,
  WAYFAIR_USA,
  WAYFAIR_CANADA,
  LOWES_USA,
  LOWES_CANADA,
  RONA_CANADA,
  AMAZON_VC_US_WASN4_CATALOG_ID,
  AMAZON_VC_WAT0F_CA_CATALOG_ID
].freeze
MARKETPLACE_CATALOGS =

Marketplace catalogs (3P sellers) - WarmlyYours sets retail price

[
  AMAZON_SC_US_CATALOG_ID,
  AMAZON_SC_CA_CATALOG_ID,
  WALMART_SELLER_USA,
  WALMART_SELLER_CANADA
].freeze
PRICE_CHECK_ENABLED_CATALOGS =

Catalogs enabled for external price checking

[
  HOME_DEPOT_USA,
  HOME_DEPOT_CANADA,
  COSTCO_CANADA,
  WAYFAIR_USA,
  WAYFAIR_CANADA,
  RONA_CANADA,
  AMAZON_SC_US_CATALOG_ID,
  AMAZON_SC_CA_CATALOG_ID,
  WALMART_SELLER_USA,
  WALMART_SELLER_CANADA
].freeze

Class Method Summary collapse

Class Method Details

.amazon_catalog?(catalog_id) ⇒ Boolean

Returns:

  • (Boolean)


207
208
209
# File 'app/models/concerns/catalog_constants.rb', line 207

def amazon_catalog?(catalog_id)
  AMAZON_CATALOG_IDS.include?(catalog_id)
end

.amazon_seller_catalog?(catalog_id) ⇒ Boolean

Returns:

  • (Boolean)


211
212
213
# File 'app/models/concerns/catalog_constants.rb', line 211

def amazon_seller_catalog?(catalog_id)
  AMAZON_SELLER_IDS.include?(catalog_id)
end

.costco_catalog?(catalog_id) ⇒ Boolean

Returns:

  • (Boolean)


223
224
225
# File 'app/models/concerns/catalog_constants.rb', line 223

def costco_catalog?(catalog_id)
  COSTCO_CATALOGS.include?(catalog_id)
end

.home_depot_catalog?(catalog_id) ⇒ Boolean

Returns:

  • (Boolean)


219
220
221
# File 'app/models/concerns/catalog_constants.rb', line 219

def home_depot_catalog?(catalog_id)
  HOME_DEPOT_CATALOGS.include?(catalog_id)
end

.marketplace_catalog?(catalog_id) ⇒ Boolean

Returns:

  • (Boolean)


203
204
205
# File 'app/models/concerns/catalog_constants.rb', line 203

def marketplace_catalog?(catalog_id)
  MARKETPLACE_CATALOGS.include?(catalog_id)
end

.price_check_enabled?(catalog_id) ⇒ Boolean

Returns:

  • (Boolean)


231
232
233
# File 'app/models/concerns/catalog_constants.rb', line 231

def price_check_enabled?(catalog_id)
  PRICE_CHECK_ENABLED_CATALOGS.include?(catalog_id)
end

.vendor_catalog?(catalog_id) ⇒ Boolean

Returns:

  • (Boolean)


199
200
201
# File 'app/models/concerns/catalog_constants.rb', line 199

def vendor_catalog?(catalog_id)
  VENDOR_CATALOGS.include?(catalog_id)
end

.walmart_catalog?(catalog_id) ⇒ Boolean

Returns:

  • (Boolean)


227
228
229
# File 'app/models/concerns/catalog_constants.rb', line 227

def walmart_catalog?(catalog_id)
  WALMART_CATALOGS.include?(catalog_id)
end

.wayfair_catalog?(catalog_id) ⇒ Boolean

Returns:

  • (Boolean)


215
216
217
# File 'app/models/concerns/catalog_constants.rb', line 215

def wayfair_catalog?(catalog_id)
  WAYFAIR_CATALOGS.include?(catalog_id)
end