Enhanced Ecommerce Google Analytics Plugin for WooCommerce - Version 3.0.2

Version Description

  • 17/03/2021 =
    • Product sync feature enhancement - Users can now map upto 25 product attributes which will help them opt for enhanced listing in Google search/Shopping
    • Auto check on the attributes like id, product title, product description, product link, image link, offer id, price, target country, content language, google merchant center category, sale price, availability, color, size, item_group_id. User does not need to worry about these attributes, the plugin will manage it in the back end when you opt for product syncing
    • Variable products are fully supported for 4 attributes - color, size, gender, age group.
    • Auto fetch of variable products data while syncing products into merchant center account
    • In case the domain claim fails, user can now manually claim website from plugin's interface by visiting Google Shopping tab
    • Some users raised a undefined index notice in version 3.0.1 that is resolved in this version.
Download this release

Release Info

Developer Tatvic
Plugin Icon 128x128 Enhanced Ecommerce Google Analytics Plugin for WooCommerce
Version 3.0.2
Comparing to
See all releases

Code changes from version 3.0.1 to 3.0.2

Files changed (49) hide show
  1. admin/class-enhanced-ecommerce-google-analytics-admin.php +2 -3
  2. admin/class-tvc-admin-helper.php +126 -16
  3. {includes/setup → admin}/css/custom-style.css +0 -0
  4. admin/css/enhanced-ecommerce-google-analytics-admin.css +46 -0
  5. admin/css/style.css +0 -11
  6. {images → admin/images}/ajax-loader.gif +0 -0
  7. admin/js/enhanced-ecommerce-google-analytics-admin.js +0 -42
  8. admin/js/sweetalert.min.js +0 -1
  9. admin/partials/enhanced-ecommerce-google-analytics-admin-display.php +1 -1
  10. admin/partials/general-fields.php +3 -6
  11. enhanced-ecommerce-google-analytics.php +2 -2
  12. includes/application/class-tvc-feed-controller.php +0 -208
  13. includes/application/class-tvc-feed-support.php +0 -301
  14. includes/application/google/gmc.txt +0 -23
  15. includes/application/google/gmc_attrbutes.json +0 -118
  16. includes/application/google/google.txt +0 -84
  17. includes/application/google/taxonomy.en-US.txt +0 -5583
  18. includes/application/google/tvc_google-source.js +0 -292
  19. includes/application/js/tvc_channel-functions.js +0 -707
  20. includes/application/js/tvc_channel-functions.min.js +0 -498
  21. includes/application/js/tvc_feedhandling.js +0 -144
  22. includes/application/js/tvc_feedhandling.min.js +0 -85
  23. includes/application/js/tvc_general-functions.js +0 -102
  24. includes/application/js/tvc_general-functions.min.js +0 -1
  25. includes/application/js/tvc_logic.js +0 -454
  26. includes/application/js/tvc_logic.min.js +0 -343
  27. includes/application/js/tvc_object-attribute-meta.js +0 -66
  28. includes/application/js/tvc_object-attribute-meta.min.js +0 -1
  29. includes/application/js/tvc_object-feed.js +0 -849
  30. includes/application/js/tvc_object-feed.min.js +0 -1
  31. includes/class-enhanced-ecommerce-google-analytics.php +6 -50
  32. includes/class-tvc-register-scripts.php +5 -128
  33. includes/data/class-tvc-ajax-file.php +1104 -1005
  34. includes/data/class-tvc-queries.php +3 -1
  35. includes/data/class-tvc-taxonomies.php +1 -1
  36. includes/data/js/tvc_data.js +0 -105
  37. includes/data/js/tvc_data.min.js +0 -1
  38. includes/data/js/tvc_feed-queue-string.js +0 -30
  39. includes/data/js/tvc_feed-queue-string.min.js +0 -1
  40. includes/data/js/tvc_metadatahandling.js +0 -596
  41. includes/data/js/tvc_metadatahandling.min.js +0 -1
  42. includes/libraries/tvc-async-request.php +0 -187
  43. includes/setup/add-campaign.php +1 -1
  44. includes/setup/google-shopping-feed-gaa-config.php +59 -18
  45. includes/setup/google-shopping-feed-shopping-campaigns.php +1 -1
  46. includes/setup/google-shopping-feed-sync-product.php +60 -19
  47. includes/setup/google-shopping-feed.php +54 -4
  48. includes/setup/help-html.php +4 -7
  49. includes/setup/json/geotargets.csv +0 -2616
admin/class-enhanced-ecommerce-google-analytics-admin.php CHANGED
@@ -78,7 +78,7 @@ class Enhanced_Ecommerce_Google_Analytics_Admin extends TVC_Admin_Helper {
78
  wp_register_style('aga_confirm', '//cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.css');
79
  wp_enqueue_style('aga_confirm');
80
 
81
- wp_enqueue_style('custom-css', ENHANCAD_PLUGIN_URL . '/includes/setup/css/custom-style.css', array(), $this->version, 'all' );
82
  if($this->is_current_tab_in(array('sync_product_page','gaa_config_page'))){
83
  wp_register_style('plugin-select2',ENHANCAD_PLUGIN_URL . '/includes/setup/plugins/select2/select2.min.css');
84
  wp_enqueue_style('plugin-select2');
@@ -104,7 +104,6 @@ class Enhanced_Ecommerce_Google_Analytics_Admin extends TVC_Admin_Helper {
104
  $screen = get_current_screen();
105
  if ($screen->id == 'toplevel_page_enhanced-ecommerce-google-analytics-admin-display' || (isset($_GET['page']) && $_GET['page'] == 'enhanced-ecommerce-google-analytics-admin-display')) {
106
 
107
- wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/sweetalert.min.js', array( 'jquery' ), $this->version, false );
108
  wp_enqueue_script( 'custom-jquery', ENHANCAD_PLUGIN_URL . '/admin/js/jquery-3.5.1.min.js', array( 'jquery' ), $this->version, false );
109
  wp_register_script('popper_bootstrap', '//cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js');
110
  wp_enqueue_script('popper_bootstrap');
@@ -114,7 +113,7 @@ class Enhanced_Ecommerce_Google_Analytics_Admin extends TVC_Admin_Helper {
114
  wp_enqueue_script('aga_bootstrap_mod');
115
  wp_register_script('aga_confirm_js', '//cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.js');
116
  wp_enqueue_script('aga_confirm_js');
117
- wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/enhanced-ecommerce-google-analytics-admin.js', array('jquery'), $this->version, false);
118
  if($this->is_current_tab_in(array('sync_product_page','gaa_config_page'))){
119
  wp_register_script('plugin-select2',ENHANCAD_PLUGIN_URL . '/includes/setup/plugins/select2/select2.min.js');
120
  wp_enqueue_script('plugin-select2');
78
  wp_register_style('aga_confirm', '//cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.css');
79
  wp_enqueue_style('aga_confirm');
80
 
81
+ wp_enqueue_style('custom-css', ENHANCAD_PLUGIN_URL . '/admin/css/custom-style.css', array(), $this->version, 'all' );
82
  if($this->is_current_tab_in(array('sync_product_page','gaa_config_page'))){
83
  wp_register_style('plugin-select2',ENHANCAD_PLUGIN_URL . '/includes/setup/plugins/select2/select2.min.css');
84
  wp_enqueue_style('plugin-select2');
104
  $screen = get_current_screen();
105
  if ($screen->id == 'toplevel_page_enhanced-ecommerce-google-analytics-admin-display' || (isset($_GET['page']) && $_GET['page'] == 'enhanced-ecommerce-google-analytics-admin-display')) {
106
 
 
107
  wp_enqueue_script( 'custom-jquery', ENHANCAD_PLUGIN_URL . '/admin/js/jquery-3.5.1.min.js', array( 'jquery' ), $this->version, false );
108
  wp_register_script('popper_bootstrap', '//cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js');
109
  wp_enqueue_script('popper_bootstrap');
113
  wp_enqueue_script('aga_bootstrap_mod');
114
  wp_register_script('aga_confirm_js', '//cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.js');
115
  wp_enqueue_script('aga_confirm_js');
116
+ // wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/enhanced-ecommerce-google-analytics-admin.js', array('jquery'), $this->version, false);
117
  if($this->is_current_tab_in(array('sync_product_page','gaa_config_page'))){
118
  wp_register_script('plugin-select2',ENHANCAD_PLUGIN_URL . '/includes/setup/plugins/select2/select2.min.js');
119
  wp_enqueue_script('plugin-select2');
admin/class-tvc-admin-helper.php CHANGED
@@ -24,8 +24,7 @@ Class TVC_Admin_Helper{
24
  }
25
  if (!class_exists('ShoppingApi')) {
26
  require_once(ENHANCAD_PLUGIN_DIR . 'includes/setup/ShoppingApi.php');
27
- }
28
-
29
  }
30
 
31
  public function is_ee_options_data_empty(){
@@ -40,9 +39,6 @@ Class TVC_Admin_Helper{
40
  return $this->ee_options_data;
41
  }else{
42
  $this->ee_options_data = unserialize(get_option('ee_api_data'));
43
- //echo "<pre>";
44
- //print_r($this->ee_options_data);
45
- //exit;
46
  return $this->ee_options_data;
47
  }
48
  }
@@ -54,8 +50,8 @@ Class TVC_Admin_Helper{
54
 
55
  $tvc_setting_db = [];
56
  $tvc_setting_db['subscription_id'] = $this->get_subscriptionId();
57
- $tvc_setting_db['enhanced_e_commerce_tracking'] = (($ee_options_settings['ga_eeT'] == "on" || $ee_options_settings['ga_eeT'])?1:0);
58
- $tvc_setting_db['add_gtag_snippet'] = (($ee_options_settings['ga_ST'] == "on" || $ee_options_settings['ga_ST'])?1:0);
59
 
60
 
61
  $tvc_setting_db['google-add'] ="";
@@ -136,10 +132,9 @@ Class TVC_Admin_Helper{
136
  if(!isset($GLOBALS['tatvicData']['tvc_subscription'])){
137
  $ee_options_settings = $this->get_ee_options_settings();
138
  }
139
- $this->subscriptionId = (isset($GLOBALS['tatvicData']['tvc_subscription'])) ? $GLOBALS['tatvicData']['tvc_subscription'] : $ee_options_settings['subscription_id'];
140
  return $this->subscriptionId;
141
- }
142
-
143
  }
144
  public function get_merchantId(){
145
  if(!empty($this->merchantId)){
@@ -227,7 +222,7 @@ Class TVC_Admin_Helper{
227
  if(!isset($GLOBALS['tatvicData']['tvc_customer'])){
228
  $ee_options_settings = $this->get_ee_options_settings();
229
  }
230
- $this->currentCustomerId = (isset($GLOBALS['tatvicData']['tvc_customer'])) ? $GLOBALS['tatvicData']['tvc_customer'] : $ee_options_settings['google_ads_id'];
231
  return $this->currentCustomerId;
232
  }
233
  }
@@ -254,19 +249,80 @@ Class TVC_Admin_Helper{
254
  }
255
 
256
  public function add_spinner_html(){
257
- $spinner_gif = ENHANCAD_PLUGIN_URL . '/images/ajax-loader.gif';
258
  echo '<div class="feed-spinner" id="feed-spinner" style="display:none;">
259
  <img id="img-spinner" src="' . $spinner_gif . '" alt="Loading" />
260
  </div>';
261
  }
262
 
263
  public function get_gmcAttributes() {
264
- $path = TVC_CHANNEL_DATA_DIR . '/google/gmc_attrbutes.json';
265
  $str = file_get_contents($path);
266
  $attributes = $str ? json_decode($str, true) : [];
267
  return $attributes;
268
  }
269
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
270
  public function check_setting_status(){
271
  if(!empty($this->setting_status)){
272
  return $this->setting_status;
@@ -431,5 +487,59 @@ Class TVC_Admin_Helper{
431
  }
432
  return false;
433
  }
434
- }
435
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  }
25
  if (!class_exists('ShoppingApi')) {
26
  require_once(ENHANCAD_PLUGIN_DIR . 'includes/setup/ShoppingApi.php');
27
+ }
 
28
  }
29
 
30
  public function is_ee_options_data_empty(){
39
  return $this->ee_options_data;
40
  }else{
41
  $this->ee_options_data = unserialize(get_option('ee_api_data'));
 
 
 
42
  return $this->ee_options_data;
43
  }
44
  }
50
 
51
  $tvc_setting_db = [];
52
  $tvc_setting_db['subscription_id'] = $this->get_subscriptionId();
53
+ $tvc_setting_db['enhanced_e_commerce_tracking'] = ((isset($ee_options_settings['ga_eeT']) && ($ee_options_settings['ga_eeT'] == "on" || $ee_options_settings['ga_eeT']))?1:0);
54
+ $tvc_setting_db['add_gtag_snippet'] = ((isset($ee_options_settings['ga_ST']) && ($ee_options_settings['ga_ST'] == "on" || $ee_options_settings['ga_ST']))?1:0);
55
 
56
 
57
  $tvc_setting_db['google-add'] ="";
132
  if(!isset($GLOBALS['tatvicData']['tvc_subscription'])){
133
  $ee_options_settings = $this->get_ee_options_settings();
134
  }
135
+ $this->subscriptionId = (isset($GLOBALS['tatvicData']['tvc_subscription'])) ? $GLOBALS['tatvicData']['tvc_subscription'] : ((isset($ee_options_settings['subscription_id']))?$ee_options_settings['subscription_id']:"");
136
  return $this->subscriptionId;
137
+ }
 
138
  }
139
  public function get_merchantId(){
140
  if(!empty($this->merchantId)){
222
  if(!isset($GLOBALS['tatvicData']['tvc_customer'])){
223
  $ee_options_settings = $this->get_ee_options_settings();
224
  }
225
+ $this->currentCustomerId = (isset($GLOBALS['tatvicData']['tvc_customer'])) ? $GLOBALS['tatvicData']['tvc_customer'] : ((isset($ee_options_settings['google_ads_id']))?$ee_options_settings['google_ads_id']:"");
226
  return $this->currentCustomerId;
227
  }
228
  }
249
  }
250
 
251
  public function add_spinner_html(){
252
+ $spinner_gif = ENHANCAD_PLUGIN_URL . '/admin/images/ajax-loader.gif';
253
  echo '<div class="feed-spinner" id="feed-spinner" style="display:none;">
254
  <img id="img-spinner" src="' . $spinner_gif . '" alt="Loading" />
255
  </div>';
256
  }
257
 
258
  public function get_gmcAttributes() {
259
+ $path = ENHANCAD_PLUGIN_URL . '/includes/setup/json/gmc_attrbutes.json';
260
  $str = file_get_contents($path);
261
  $attributes = $str ? json_decode($str, true) : [];
262
  return $attributes;
263
  }
264
+ public function get_gmc_countries_list() {
265
+ $path = ENHANCAD_PLUGIN_URL . '/includes/setup/json/countries.json';
266
+ $str = file_get_contents($path);
267
+ $attributes = $str ? json_decode($str, true) : [];
268
+ return $attributes;
269
+ }
270
+ public function get_gmc_language_list() {
271
+ $path = ENHANCAD_PLUGIN_URL . '/includes/setup/json/iso_lang.json';
272
+ $str = file_get_contents($path);
273
+ $attributes = $str ? json_decode($str, true) : [];
274
+ return $attributes;
275
+ }
276
+ /* start display form input*/
277
+ public function tvc_language_select($name, $class_id, string $label="Please Select", string $sel_val = "en", bool $require = false){
278
+ if($name){
279
+ $countries_list = $this->get_gmc_language_list();
280
+ ?>
281
+ <select class="form-control select2 <?php echo $class_id; ?> <?php echo ($require == true)?"field-required":""; ?>" name="<?php echo $name; ?>" id="<?php echo $class_id; ?>" >
282
+ <option value="0"><?php echo $label; ?></option>
283
+ <?php foreach ($countries_list as $Key => $val) {?>
284
+ <option value="<?php echo $val["code"];?>" <?php echo($val["code"] == $sel_val)?"selected":""; ?>><?php echo $val["name"]." (".$val["native_name"].")";?></option>
285
+ <?php
286
+ }?>
287
+ </select>
288
+ <?php
289
+ }
290
+ }
291
+ public function tvc_countries_select($name, $class_id, string $label="Please Select", bool $require = false){
292
+ if($name){
293
+ $countries_list = $this->get_gmc_countries_list();
294
+ $sel_val = $this->get_woo_country();
295
+ ?>
296
+ <select class="form-control select2 <?php echo $class_id; ?> <?php echo ($require == true)?"field-required":""; ?>" name="<?php echo $name; ?>" id="<?php echo $class_id; ?>" >
297
+ <option value="0"><?php echo $label; ?></option>
298
+ <?php foreach ($countries_list as $Key => $val) {?>
299
+ <option value="<?php echo $val["code"];?>" <?php echo($val["code"] == $sel_val)?"selected":""; ?>><?php echo $val["name"];?></option>
300
+ <?php
301
+ }?>
302
+ </select>
303
+ <?php
304
+ }
305
+ }
306
+ public function tvc_select($name, $class_id, string $label="Please Select", string $sel_val = null, bool $require = false, $option_list = array()){
307
+ if(!empty($option_list) && $name){
308
+ ?>
309
+ <select class="form-control select2 <?php echo $class_id; ?> <?php echo ($require == true)?"field-required":""; ?>" name="<?php echo $name; ?>" id="<?php echo $class_id; ?>" >
310
+ <option value="0"><?php echo $label; ?></option>
311
+ <?php foreach ($option_list as $Key => $val) {?>
312
+ <option value="<?php echo $val["field"];?>" <?php echo($val["field"] == $sel_val)?"selected":""; ?>><?php echo $val["field"];?></option>
313
+ <?php
314
+ }?>
315
+ </select>
316
+ <?php
317
+ }
318
+ }
319
+ public function tvc_text($name, string $type="text", string $class_id="", string $label=null, $sel_val = null, bool $require = false){
320
+ ?>
321
+ <input type="<?php echo $type; ?>" name="<?php echo $name; ?>" class="tvc-text <?php echo $class_id; ?>" id="<?php echo $class_id; ?>" placeholder="<?php echo $label; ?>" value="<?php echo $sel_val; ?>">
322
+ <?php
323
+ }
324
+
325
+ /* end from input*/
326
  public function check_setting_status(){
327
  if(!empty($this->setting_status)){
328
  return $this->setting_status;
487
  }
488
  return false;
489
  }
490
+
491
+ public function get_tvc_product_cat_list(){
492
+ $args = array(
493
+ 'hide_empty' => 1,
494
+ 'taxonomy' => 'product_cat',
495
+ 'orderby' => 'term_id'
496
+ );
497
+ $shop_categories_list = get_categories( $args );
498
+ $tvc_cat_id_list = [];
499
+ foreach ($shop_categories_list as $key => $value) {
500
+ $tvc_cat_id_list[]=$value->term_id;
501
+ }
502
+ return json_encode($tvc_cat_id_list);
503
+ }
504
+ public function get_tvc_product_cat_list_with_name(){
505
+ $args = array(
506
+ 'hide_empty' => 1,
507
+ 'taxonomy' => 'product_cat',
508
+ 'orderby' => 'term_id'
509
+ );
510
+ $shop_categories_list = get_categories( $args );
511
+ $tvc_cat_id_list = [];
512
+ foreach ($shop_categories_list as $key => $value) {
513
+ $tvc_cat_id_list[$value->term_id]=$value->name;
514
+ }
515
+ return $tvc_cat_id_list;
516
+ }
517
+
518
+ public function call_domain_claim(){
519
+ $googleDetail = [];
520
+ $google_detail = $this->get_ee_options_data();
521
+ //print_r($google_detail);
522
+ if(isset($google_detail['setting']) && $google_detail['setting']){
523
+ $googleDetail = $google_detail['setting'];
524
+ if($googleDetail->is_domain_claim == '0'){
525
+ $postData = [
526
+ 'merchant_id' => $googleDetail->merchant_id,
527
+ 'website_url' => $googleDetail->site_url,
528
+ 'subscription_id' => $googleDetail->id,
529
+ 'account_id' => $googleDetail->google_merchant_center_id
530
+ ];
531
+ $claimWebsite = $this->customApiObj->claimWebsite($postData);
532
+ //print_r($claimWebsite);
533
+ if(isset($claimWebsite->error) && !empty($claimWebsite->errors)){
534
+ return array('error'=>true, 'msg'=>$claimWebsite->errors[0]);
535
+ }else{
536
+ $this->set_update_api_to_db();
537
+ return array('error'=>false, 'msg'=>"Domain claimed successfully.");
538
+ }
539
+ }else{
540
+ return array('error'=>true, 'msg'=>"already domain claimed successfully");
541
+ }
542
+ }
543
+ }
544
+
545
+ }?>
{includes/setup → admin}/css/custom-style.css RENAMED
File without changes
admin/css/enhanced-ecommerce-google-analytics-admin.css CHANGED
@@ -466,6 +466,13 @@ ul.nav-tabs{
466
  -webkit-animation: 1s spin linear infinite;
467
  animation: 1s tvc-spin linear infinite;
468
  }
 
 
 
 
 
 
 
469
  #refresh_api{height: 25px;}
470
  .btn.tvc_api_sync_btn{
471
  min-width: 114px;
@@ -517,3 +524,42 @@ ul.nav-tabs{
517
  background-clip: border-box;
518
  border: 1px solid rgba(0,0,0,.125);
519
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
466
  -webkit-animation: 1s spin linear infinite;
467
  animation: 1s tvc-spin linear infinite;
468
  }
469
+ .domain-claim-spinner.tvc-nb-spinner{
470
+ top: 5px;
471
+ right: 38px;
472
+ margin-left: 0px;
473
+ width: 15px;
474
+ height: 15px;
475
+ }
476
  #refresh_api{height: 25px;}
477
  .btn.tvc_api_sync_btn{
478
  min-width: 114px;
524
  background-clip: border-box;
525
  border: 1px solid rgba(0,0,0,.125);
526
  }
527
+
528
+ /* popup */
529
+ .popup-modal.overlay {
530
+ position: fixed;
531
+ top: 0;
532
+ bottom: 0;
533
+ left: 0;
534
+ right: 0;
535
+ background: rgba(0, 0, 0, 0.7);
536
+ transition: opacity 500ms;
537
+ }
538
+ .popup-modal.overlay:target {
539
+ visibility: visible;
540
+ opacity: 1;
541
+ }
542
+ .popup-modal .modal-dialog .modal-content{
543
+ margin: 20px auto;
544
+ padding: 20px;
545
+ background: #fff;
546
+ border-radius: 5px;
547
+ position: relative;
548
+ transition: all 5s ease-in-out;
549
+ border: none;}
550
+ .popup-modal .modal-dialog .modal-content .close{
551
+ position: absolute;
552
+ top: 0px;
553
+ right: 10px;
554
+ transition: all 200ms;
555
+ font-size: 30px;
556
+ font-weight: bold;
557
+ text-decoration: none;
558
+ }
559
+ .popup-modal .tvc-text{
560
+ min-height: 30px;
561
+ max-width: 25rem;
562
+ width: 100%;
563
+ font-size: 14px;
564
+ }
565
+ #feed-spinner img{width: 60px;}
admin/css/style.css DELETED
@@ -1,11 +0,0 @@
1
- *{
2
- box-sizing: border-box;
3
- margin:0px;
4
- padding:0px;
5
- }
6
- body{
7
- background-image: url('../images/plugin_bk.png') !important;
8
- }
9
- .swal{
10
- background-color:#2c3e50;
11
- }
 
 
 
 
 
 
 
 
 
 
 
{images → admin/images}/ajax-loader.gif RENAMED
File without changes
admin/js/enhanced-ecommerce-google-analytics-admin.js DELETED
@@ -1,42 +0,0 @@
1
- (function( $ ) {
2
- 'use strict';
3
-
4
- /**
5
- * All of the code for your admin-facing JavaScript source
6
- * should reside in this file.
7
- *
8
- * Note: It has been assumed you will write jQuery code here, so the
9
- * $ function reference has been prepared for usage within the scope
10
- * of this function.
11
- *
12
- * This enables you to define handlers, for when the DOM is ready:
13
- *
14
- * $(function() {
15
- *
16
- * });
17
- *
18
- * When the window is loaded:
19
- *
20
- * $( window ).load(function() {
21
- *
22
- * });
23
- *
24
- * ...and/or other possibilities.
25
- *
26
- * Ideally, it is not considered best practise to attach more than a
27
- * single DOM-ready or window-load handler for a particular page.
28
- * Although scripts in the WordPress core, Plugins and Themes may be
29
- * practising this, we should strive to set a better example in our own work.
30
- */
31
-
32
- jQuery(document).ready(function(){
33
- jQuery('.download').click(function(){
34
- jQuery.confirm({
35
- theme : 'supervan',
36
- type: 'red',
37
- title: 'Note !',
38
- content: 'Deactivate the Enhanced Ecommerce Google analytics (Tatvic EE Plugin) before activating the free trial.',
39
- });
40
- });
41
- });
42
- })( jQuery );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/sweetalert.min.js DELETED
@@ -1 +0,0 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.swal=e():t.swal=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=8)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o="swal-button";e.CLASS_NAMES={MODAL:"swal-modal",OVERLAY:"swal-overlay",SHOW_MODAL:"swal-overlay--show-modal",MODAL_TITLE:"swal-title",MODAL_TEXT:"swal-text",ICON:"swal-icon",ICON_CUSTOM:"swal-icon--custom",CONTENT:"swal-content",FOOTER:"swal-footer",BUTTON_CONTAINER:"swal-button-container",BUTTON:o,CONFIRM_BUTTON:o+"--confirm",CANCEL_BUTTON:o+"--cancel",DANGER_BUTTON:o+"--danger",BUTTON_LOADING:o+"--loading",BUTTON_LOADER:o+"__loader"},e.default=e.CLASS_NAMES},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNode=function(t){var e="."+t;return document.querySelector(e)},e.stringToNode=function(t){var e=document.createElement("div");return e.innerHTML=t.trim(),e.firstChild},e.insertAfter=function(t,e){var n=e.nextSibling;e.parentNode.insertBefore(t,n)},e.removeNode=function(t){t.parentElement.removeChild(t)},e.throwErr=function(t){throw t=t.replace(/ +(?= )/g,""),"SweetAlert: "+(t=t.trim())},e.isPlainObject=function(t){if("[object Object]"!==Object.prototype.toString.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype},e.ordinalSuffixOf=function(t){var e=t%10,n=t%100;return 1===e&&11!==n?t+"st":2===e&&12!==n?t+"nd":3===e&&13!==n?t+"rd":t+"th"}},function(t,e,n){"use strict";function o(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),o(n(25));var r=n(26);e.overlayMarkup=r.default,o(n(27)),o(n(28)),o(n(29));var i=n(0),a=i.default.MODAL_TITLE,s=i.default.MODAL_TEXT,c=i.default.ICON,l=i.default.FOOTER;e.iconMarkup='\n <div class="'+c+'"></div>',e.titleMarkup='\n <div class="'+a+'"></div>\n',e.textMarkup='\n <div class="'+s+'"></div>',e.footerMarkup='\n <div class="'+l+'"></div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1);e.CONFIRM_KEY="confirm",e.CANCEL_KEY="cancel";var r={visible:!0,text:null,value:null,className:"",closeModal:!0},i=Object.assign({},r,{visible:!1,text:"Cancel",value:null}),a=Object.assign({},r,{text:"OK",value:!0});e.defaultButtonList={cancel:i,confirm:a};var s=function(t){switch(t){case e.CONFIRM_KEY:return a;case e.CANCEL_KEY:return i;default:var n=t.charAt(0).toUpperCase()+t.slice(1);return Object.assign({},r,{text:n,value:t})}},c=function(t,e){var n=s(t);return!0===e?Object.assign({},n,{visible:!0}):"string"==typeof e?Object.assign({},n,{visible:!0,text:e}):o.isPlainObject(e)?Object.assign({visible:!0},n,e):Object.assign({},n,{visible:!1})},l=function(t){for(var e={},n=0,o=Object.keys(t);n<o.length;n++){var r=o[n],a=t[r],s=c(r,a);e[r]=s}return e.cancel||(e.cancel=i),e},u=function(t){var n={};switch(t.length){case 1:n[e.CANCEL_KEY]=Object.assign({},i,{visible:!1});break;case 2:n[e.CANCEL_KEY]=c(e.CANCEL_KEY,t[0]),n[e.CONFIRM_KEY]=c(e.CONFIRM_KEY,t[1]);break;default:o.throwErr("Invalid number of 'buttons' in array ("+t.length+").\n If you want more than 2 buttons, you need to use an object!")}return n};e.getButtonListOpts=function(t){var n=e.defaultButtonList;return"string"==typeof t?n[e.CONFIRM_KEY]=c(e.CONFIRM_KEY,t):Array.isArray(t)?n=u(t):o.isPlainObject(t)?n=l(t):!0===t?n=u([!0,!0]):!1===t?n=u([!1,!1]):void 0===t&&(n=e.defaultButtonList),n}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=n(0),a=i.default.MODAL,s=i.default.OVERLAY,c=n(30),l=n(31),u=n(32),f=n(33);e.injectElIntoModal=function(t){var e=o.getNode(a),n=o.stringToNode(t);return e.appendChild(n),n};var d=function(t){t.className=a,t.textContent=""},p=function(t,e){d(t);var n=e.className;n&&t.classList.add(n)};e.initModalContent=function(t){var e=o.getNode(a);p(e,t),c.default(t.icon),l.initTitle(t.title),l.initText(t.text),f.default(t.content),u.default(t.buttons,t.dangerMode)};var m=function(){var t=o.getNode(s),e=o.stringToNode(r.modalMarkup);t.appendChild(e)};e.default=m},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r={isOpen:!1,promise:null,actions:{},timer:null},i=Object.assign({},r);e.resetState=function(){i=Object.assign({},r)},e.setActionValue=function(t){if("string"==typeof t)return a(o.CONFIRM_KEY,t);for(var e in t)a(e,t[e])};var a=function(t,e){i.actions[t]||(i.actions[t]={}),Object.assign(i.actions[t],{value:e})};e.setActionOptionsFor=function(t,e){var n=(void 0===e?{}:e).closeModal,o=void 0===n||n;Object.assign(i.actions[t],{closeModal:o})},e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(0),a=i.default.OVERLAY,s=i.default.SHOW_MODAL,c=i.default.BUTTON,l=i.default.BUTTON_LOADING,u=n(5);e.openModal=function(){o.getNode(a).classList.add(s),u.default.isOpen=!0};var f=function(){o.getNode(a).classList.remove(s),u.default.isOpen=!1};e.onAction=function(t){void 0===t&&(t=r.CANCEL_KEY);var e=u.default.actions[t],n=e.value;if(!1===e.closeModal){var i=c+"--"+t;o.getNode(i).classList.add(l)}else f();u.default.promise.resolve(n)},e.getState=function(){var t=Object.assign({},u.default);return delete t.promise,delete t.timer,t},e.stopLoading=function(){for(var t=document.querySelectorAll("."+c),e=0;e<t.length;e++){t[e].classList.remove(l)}}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){(function(e){t.exports=e.sweetAlert=n(9)}).call(e,n(7))},function(t,e,n){(function(e){t.exports=e.swal=n(10)}).call(e,n(7))},function(t,e,n){"undefined"!=typeof window&&n(11),n(16);var o=n(23).default;t.exports=o},function(t,e,n){var o=n(12);"string"==typeof o&&(o=[[t.i,o,""]]);var r={insertAt:"top"};r.transform=void 0;n(14)(o,r);o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(13)(void 0),e.push([t.i,'.swal-icon--error{border-color:#f27474;-webkit-animation:animateErrorIcon .5s;animation:animateErrorIcon .5s}.swal-icon--error__x-mark{position:relative;display:block;-webkit-animation:animateXMark .5s;animation:animateXMark .5s}.swal-icon--error__line{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.swal-icon--error__line--left{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.swal-icon--error__line--right{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}@-webkit-keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-webkit-keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.swal-icon--warning{border-color:#f8bb86;-webkit-animation:pulseWarning .75s infinite alternate;animation:pulseWarning .75s infinite alternate}.swal-icon--warning__body{width:5px;height:47px;top:10px;border-radius:2px;margin-left:-2px}.swal-icon--warning__body,.swal-icon--warning__dot{position:absolute;left:50%;background-color:#f8bb86}.swal-icon--warning__dot{width:7px;height:7px;border-radius:50%;margin-left:-4px;bottom:-11px}@-webkit-keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}@keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}.swal-icon--success{border-color:#a5dc86}.swal-icon--success:after,.swal-icon--success:before{content:"";border-radius:50%;position:absolute;width:60px;height:120px;background:#fff;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal-icon--success:before{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.swal-icon--success:after{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px;-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}.swal-icon--success__ring{width:80px;height:80px;border:4px solid hsla(98,55%,69%,.2);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.swal-icon--success__hide-corners{width:5px;height:90px;background-color:#fff;padding:1px;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal-icon--success__line{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.swal-icon--success__line--tip{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-animation:animateSuccessTip .75s;animation:animateSuccessTip .75s}.swal-icon--success__line--long{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-animation:animateSuccessLong .75s;animation:animateSuccessLong .75s}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@-webkit-keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@-webkit-keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}.swal-icon--info{border-color:#c9dae1}.swal-icon--info:before{width:5px;height:29px;bottom:17px;border-radius:2px;margin-left:-2px}.swal-icon--info:after,.swal-icon--info:before{content:"";position:absolute;left:50%;background-color:#c9dae1}.swal-icon--info:after{width:7px;height:7px;border-radius:50%;margin-left:-3px;top:19px}.swal-icon{width:80px;height:80px;border-width:4px;border-style:solid;border-radius:50%;padding:0;position:relative;box-sizing:content-box;margin:20px auto}.swal-icon:first-child{margin-top:32px}.swal-icon--custom{width:auto;height:auto;max-width:100%;border:none;border-radius:0}.swal-icon img{max-width:100%;max-height:100%}.swal-title{color:rgba(0,0,0,.65);font-weight:600;text-transform:none;position:relative;display:block;padding:13px 16px;font-size:27px;line-height:normal;text-align:center;margin-bottom:0}.swal-title:first-child{margin-top:26px}.swal-title:not(:first-child){padding-bottom:0}.swal-title:not(:last-child){margin-bottom:13px}.swal-text{font-size:16px;position:relative;float:none;line-height:normal;vertical-align:top;text-align:left;display:inline-block;margin:0;padding:0 10px;font-weight:400;color:rgba(0,0,0,.64);max-width:calc(100% - 20px);overflow-wrap:break-word;box-sizing:border-box}.swal-text:first-child{margin-top:45px}.swal-text:last-child{margin-bottom:45px}.swal-footer{text-align:right;padding-top:13px;margin-top:13px;padding:13px 16px;border-radius:inherit;border-top-left-radius:0;border-top-right-radius:0}.swal-button-container{margin:5px;display:inline-block;position:relative}.swal-button{background-color:#7cd1f9;color:#fff;border:none;box-shadow:none;border-radius:5px;font-weight:600;font-size:14px;padding:10px 24px;margin:0;cursor:pointer}.swal-button[not:disabled]:hover{background-color:#78cbf2}.swal-button:active{background-color:#70bce0}.swal-button:focus{outline:none;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(43,114,165,.29)}.swal-button[disabled]{opacity:.5;cursor:default}.swal-button::-moz-focus-inner{border:0}.swal-button--cancel{color:#555;background-color:#efefef}.swal-button--cancel[not:disabled]:hover{background-color:#e8e8e8}.swal-button--cancel:active{background-color:#d7d7d7}.swal-button--cancel:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(116,136,150,.29)}.swal-button--danger{background-color:#e64942}.swal-button--danger[not:disabled]:hover{background-color:#df4740}.swal-button--danger:active{background-color:#cf423b}.swal-button--danger:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(165,43,43,.29)}.swal-content{padding:0 20px;margin-top:20px;font-size:medium}.swal-content:last-child{margin-bottom:20px}.swal-content__input,.swal-content__textarea{-webkit-appearance:none;background-color:#fff;border:none;font-size:14px;display:block;box-sizing:border-box;width:100%;border:1px solid rgba(0,0,0,.14);padding:10px 13px;border-radius:2px;transition:border-color .2s}.swal-content__input:focus,.swal-content__textarea:focus{outline:none;border-color:#6db8ff}.swal-content__textarea{resize:vertical}.swal-button--loading{color:transparent}.swal-button--loading~.swal-button__loader{opacity:1}.swal-button__loader{position:absolute;height:auto;width:43px;z-index:2;left:50%;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);text-align:center;pointer-events:none;opacity:0}.swal-button__loader div{display:inline-block;float:none;vertical-align:baseline;width:9px;height:9px;padding:0;border:none;margin:2px;opacity:.4;border-radius:7px;background-color:hsla(0,0%,100%,.9);transition:background .2s;-webkit-animation:swal-loading-anim 1s infinite;animation:swal-loading-anim 1s infinite}.swal-button__loader div:nth-child(3n+2){-webkit-animation-delay:.15s;animation-delay:.15s}.swal-button__loader div:nth-child(3n+3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}@keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}.swal-overlay{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center;font-size:0;overflow-y:auto;background-color:rgba(0,0,0,.4);z-index:10000;pointer-events:none;opacity:0;transition:opacity .3s}.swal-overlay:before{content:" ";display:inline-block;vertical-align:middle;height:100%}.swal-overlay--show-modal{opacity:1;pointer-events:auto}.swal-overlay--show-modal .swal-modal{opacity:1;pointer-events:auto;box-sizing:border-box;-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s;will-change:transform}.swal-modal{width:478px;opacity:0;pointer-events:none;background-color:#fff;text-align:center;border-radius:5px;position:static;margin:20px auto;display:inline-block;vertical-align:middle;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;z-index:10001;transition:opacity .2s,-webkit-transform .3s;transition:transform .3s,opacity .2s;transition:transform .3s,opacity .2s,-webkit-transform .3s}@media (max-width:500px){.swal-modal{width:calc(100% - 20px)}}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}',""])},function(t,e){function n(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var o=n(e,t);return e[2]?"@media "+e[2]+"{"+o+"}":o}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var o={},r=0;r<this.length;r++){var i=this[r][0];"number"==typeof i&&(o[i]=!0)}for(r=0;r<t.length;r++){var a=t[r];"number"==typeof a[0]&&o[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},function(t,e,n){function o(t,e){for(var n=0;n<t.length;n++){var o=t[n],r=m[o.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](o.parts[i]);for(;i<o.parts.length;i++)r.parts.push(u(o.parts[i],e))}else{for(var a=[],i=0;i<o.parts.length;i++)a.push(u(o.parts[i],e));m[o.id]={id:o.id,refs:1,parts:a}}}}function r(t,e){for(var n=[],o={},r=0;r<t.length;r++){var i=t[r],a=e.base?i[0]+e.base:i[0],s=i[1],c=i[2],l=i[3],u={css:s,media:c,sourceMap:l};o[a]?o[a].parts.push(u):n.push(o[a]={id:a,parts:[u]})}return n}function i(t,e){var n=v(t.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var o=w[w.length-1];if("top"===t.insertAt)o?o.nextSibling?n.insertBefore(e,o.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),w.push(e);else{if("bottom"!==t.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");n.appendChild(e)}}function a(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=w.indexOf(t);e>=0&&w.splice(e,1)}function s(t){var e=document.createElement("style");return t.attrs.type="text/css",l(e,t.attrs),i(t,e),e}function c(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",l(e,t.attrs),i(t,e),e}function l(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function u(t,e){var n,o,r,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var l=h++;n=g||(g=s(e)),o=f.bind(null,n,l,!1),r=f.bind(null,n,l,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),o=p.bind(null,n,e),r=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(e),o=d.bind(null,n),r=function(){a(n)});return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else r()}}function f(t,e,n,o){var r=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=x(e,r);else{var i=document.createTextNode(r),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function d(t,e){var n=e.css,o=e.media;if(o&&t.setAttribute("media",o),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function p(t,e,n){var o=n.css,r=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||i)&&(o=y(o)),r&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var a=new Blob([o],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var m={},b=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),v=function(t){var e={};return function(n){return void 0===e[n]&&(e[n]=t.call(this,n)),e[n]}}(function(t){return document.querySelector(t)}),g=null,h=0,w=[],y=n(15);t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");e=e||{},e.attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=b()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=r(t,e);return o(n,e),function(t){for(var i=[],a=0;a<n.length;a++){var s=n[a],c=m[s.id];c.refs--,i.push(c)}if(t){o(r(t,e),e)}for(var a=0;a<i.length;a++){var c=i[a];if(0===c.refs){for(var l=0;l<c.parts.length;l++)c.parts[l]();delete m[c.id]}}}};var x=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var n=e.protocol+"//"+e.host,o=n+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var r=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(r))return t;var i;return i=0===r.indexOf("//")?r:0===r.indexOf("/")?n+r:o+r.replace(/^\.\//,""),"url("+JSON.stringify(i)+")"})}},function(t,e,n){var o=n(17);"undefined"==typeof window||window.Promise||(window.Promise=o),n(21),String.prototype.includes||(String.prototype.includes=function(t,e){"use strict";return"number"!=typeof e&&(e=0),!(e+t.length>this.length)&&-1!==this.indexOf(t,e)}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(t,e){if(null==this)throw new TypeError('"this" is null or not defined');var n=Object(this),o=n.length>>>0;if(0===o)return!1;for(var r=0|e,i=Math.max(r>=0?r:o-Math.abs(r),0);i<o;){if(function(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}(n[i],t))return!0;i++}return!1}}),"undefined"!=typeof window&&function(t){t.forEach(function(t){t.hasOwnProperty("remove")||Object.defineProperty(t,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){this.parentNode.removeChild(this)}})})}([Element.prototype,CharacterData.prototype,DocumentType.prototype])},function(t,e,n){(function(e){!function(n){function o(){}function r(t,e){return function(){t.apply(e,arguments)}}function i(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],f(t,this)}function a(t,e){for(;3===t._state;)t=t._value;if(0===t._state)return void t._deferreds.push(e);t._handled=!0,i._immediateFn(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null===n)return void(1===t._state?s:c)(e.promise,t._value);var o;try{o=n(t._value)}catch(t){return void c(e.promise,t)}s(e.promise,o)})}function s(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof i)return t._state=3,t._value=e,void l(t);if("function"==typeof n)return void f(r(n,e),t)}t._state=1,t._value=e,l(t)}catch(e){c(t,e)}}function c(t,e){t._state=2,t._value=e,l(t)}function l(t){2===t._state&&0===t._deferreds.length&&i._immediateFn(function(){t._handled||i._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e<n;e++)a(t,t._deferreds[e]);t._deferreds=null}function u(t,e,n){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.promise=n}function f(t,e){var n=!1;try{t(function(t){n||(n=!0,s(e,t))},function(t){n||(n=!0,c(e,t))})}catch(t){if(n)return;n=!0,c(e,t)}}var d=setTimeout;i.prototype.catch=function(t){return this.then(null,t)},i.prototype.then=function(t,e){var n=new this.constructor(o);return a(this,new u(t,e,n)),n},i.all=function(t){var e=Array.prototype.slice.call(t);return new i(function(t,n){function o(i,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,function(t){o(i,t)},n)}e[i]=a,0==--r&&t(e)}catch(t){n(t)}}if(0===e.length)return t([]);for(var r=e.length,i=0;i<e.length;i++)o(i,e[i])})},i.resolve=function(t){return t&&"object"==typeof t&&t.constructor===i?t:new i(function(e){e(t)})},i.reject=function(t){return new i(function(e,n){n(t)})},i.race=function(t){return new i(function(e,n){for(var o=0,r=t.length;o<r;o++)t[o].then(e,n)})},i._immediateFn="function"==typeof e&&function(t){e(t)}||function(t){d(t,0)},i._unhandledRejectionFn=function(t){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",t)},i._setImmediateFn=function(t){i._immediateFn=t},i._setUnhandledRejectionFn=function(t){i._unhandledRejectionFn=t},void 0!==t&&t.exports?t.exports=i:n.Promise||(n.Promise=i)}(this)}).call(e,n(18).setImmediate)},function(t,e,n){function o(t,e){this._id=t,this._clearFn=e}var r=Function.prototype.apply;e.setTimeout=function(){return new o(r.call(setTimeout,window,arguments),clearTimeout)},e.setInterval=function(){return new o(r.call(setInterval,window,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(window,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(19),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){"use strict";function o(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return l[c]=o,s(c),c++}function r(t){delete l[t]}function i(t){var e=t.callback,o=t.args;switch(o.length){case 0:e();break;case 1:e(o[0]);break;case 2:e(o[0],o[1]);break;case 3:e(o[0],o[1],o[2]);break;default:e.apply(n,o)}}function a(t){if(u)setTimeout(a,0,t);else{var e=l[t];if(e){u=!0;try{i(e)}finally{r(t),u=!1}}}}if(!t.setImmediate){var s,c=1,l={},u=!1,f=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?function(){s=function(t){e.nextTick(function(){a(t)})}}():function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?function(){var e="setImmediate$"+Math.random()+"$",n=function(n){n.source===t&&"string"==typeof n.data&&0===n.data.indexOf(e)&&a(+n.data.slice(e.length))};t.addEventListener?t.addEventListener("message",n,!1):t.attachEvent("onmessage",n),s=function(n){t.postMessage(e+n,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){a(t.data)},s=function(e){t.port2.postMessage(e)}}():f&&"onreadystatechange"in f.createElement("script")?function(){var t=f.documentElement;s=function(e){var n=f.createElement("script");n.onreadystatechange=function(){a(e),n.onreadystatechange=null,t.removeChild(n),n=null},t.appendChild(n)}}():function(){s=function(t){setTimeout(a,0,t)}}(),d.setImmediate=o,d.clearImmediate=r}}("undefined"==typeof self?void 0===t?this:t:self)}).call(e,n(7),n(20))},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function r(t){if(u===setTimeout)return setTimeout(t,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(t,0);try{return u(t,0)}catch(e){try{return u.call(null,t,0)}catch(e){return u.call(this,t,0)}}}function i(t){if(f===clearTimeout)return clearTimeout(t);if((f===o||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function a(){b&&p&&(b=!1,p.length?m=p.concat(m):v=-1,m.length&&s())}function s(){if(!b){var t=r(a);b=!0;for(var e=m.length;e;){for(p=m,m=[];++v<e;)p&&p[v].run();v=-1,e=m.length}p=null,b=!1,i(t)}}function c(t,e){this.fun=t,this.array=e}function l(){}var u,f,d=t.exports={};!function(){try{u="function"==typeof setTimeout?setTimeout:n}catch(t){u=n}try{f="function"==typeof clearTimeout?clearTimeout:o}catch(t){f=o}}();var p,m=[],b=!1,v=-1;d.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];m.push(new c(t,e)),1!==m.length||b||r(s)},c.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=l,d.addListener=l,d.once=l,d.off=l,d.removeListener=l,d.removeAllListeners=l,d.emit=l,d.prependListener=l,d.prependOnceListener=l,d.listeners=function(t){return[]},d.binding=function(t){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(t){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(t,e,n){"use strict";n(22).polyfill()},function(t,e,n){"use strict";function o(t,e){if(void 0===t||null===t)throw new TypeError("Cannot convert first argument to object");for(var n=Object(t),o=1;o<arguments.length;o++){var r=arguments[o];if(void 0!==r&&null!==r)for(var i=Object.keys(Object(r)),a=0,s=i.length;a<s;a++){var c=i[a],l=Object.getOwnPropertyDescriptor(r,c);void 0!==l&&l.enumerable&&(n[c]=r[c])}}return n}function r(){Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:o})}t.exports={assign:o,polyfill:r}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(24),r=n(6),i=n(5),a=n(36),s=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if("undefined"!=typeof window){var n=a.getOpts.apply(void 0,t);return new Promise(function(t,e){i.default.promise={resolve:t,reject:e},o.default(n),setTimeout(function(){r.openModal()})})}};s.close=r.onAction,s.getState=r.getState,s.setActionValue=i.setActionValue,s.stopLoading=r.stopLoading,s.setDefaults=a.setDefaults,e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(0),i=r.default.MODAL,a=n(4),s=n(34),c=n(35),l=n(1);e.init=function(t){o.getNode(i)||(document.body||l.throwErr("You can only use SweetAlert AFTER the DOM has loaded!"),s.default(),a.default()),a.initModalContent(t),c.default(t)},e.default=e.init},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.MODAL;e.modalMarkup='\n <div class="'+r+'" role="dialog" aria-modal="true"></div>',e.default=e.modalMarkup},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.OVERLAY,i='<div \n class="'+r+'"\n tabIndex="-1">\n </div>';e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.ICON;e.errorIconMarkup=function(){var t=r+"--error",e=t+"__line";return'\n <div class="'+t+'__x-mark">\n <span class="'+e+" "+e+'--left"></span>\n <span class="'+e+" "+e+'--right"></span>\n </div>\n '},e.warningIconMarkup=function(){var t=r+"--warning";return'\n <span class="'+t+'__body">\n <span class="'+t+'__dot"></span>\n </span>\n '},e.successIconMarkup=function(){var t=r+"--success";return'\n <span class="'+t+"__line "+t+'__line--long"></span>\n <span class="'+t+"__line "+t+'__line--tip"></span>\n\n <div class="'+t+'__ring"></div>\n <div class="'+t+'__hide-corners"></div>\n '}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.CONTENT;e.contentMarkup='\n <div class="'+r+'">\n\n </div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.BUTTON_CONTAINER,i=o.default.BUTTON,a=o.default.BUTTON_LOADER;e.buttonMarkup='\n <div class="'+r+'">\n\n <button\n class="'+i+'"\n ></button>\n\n <div class="'+a+'">\n <div></div>\n <div></div>\n <div></div>\n </div>\n\n </div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(4),r=n(2),i=n(0),a=i.default.ICON,s=i.default.ICON_CUSTOM,c=["error","warning","success","info"],l={error:r.errorIconMarkup(),warning:r.warningIconMarkup(),success:r.successIconMarkup()},u=function(t,e){var n=a+"--"+t;e.classList.add(n);var o=l[t];o&&(e.innerHTML=o)},f=function(t,e){e.classList.add(s);var n=document.createElement("img");n.src=t,e.appendChild(n)},d=function(t){if(t){var e=o.injectElIntoModal(r.iconMarkup);c.includes(t)?u(t,e):f(t,e)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),r=n(4),i=function(t){navigator.userAgent.includes("AppleWebKit")&&(t.style.display="none",t.offsetHeight,t.style.display="")};e.initTitle=function(t){if(t){var e=r.injectElIntoModal(o.titleMarkup);e.textContent=t,i(e)}},e.initText=function(t){if(t){var e=document.createDocumentFragment();t.split("\n").forEach(function(t,n,o){e.appendChild(document.createTextNode(t)),n<o.length-1&&e.appendChild(document.createElement("br"))});var n=r.injectElIntoModal(o.textMarkup);n.appendChild(e),i(n)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(4),i=n(0),a=i.default.BUTTON,s=i.default.DANGER_BUTTON,c=n(3),l=n(2),u=n(6),f=n(5),d=function(t,e,n){var r=e.text,i=e.value,d=e.className,p=e.closeModal,m=o.stringToNode(l.buttonMarkup),b=m.querySelector("."+a),v=a+"--"+t;if(b.classList.add(v),d){(Array.isArray(d)?d:d.split(" ")).filter(function(t){return t.length>0}).forEach(function(t){b.classList.add(t)})}n&&t===c.CONFIRM_KEY&&b.classList.add(s),b.textContent=r;var g={};return g[t]=i,f.setActionValue(g),f.setActionOptionsFor(t,{closeModal:p}),b.addEventListener("click",function(){return u.onAction(t)}),m},p=function(t,e){var n=r.injectElIntoModal(l.footerMarkup);for(var o in t){var i=t[o],a=d(o,i,e);i.visible&&n.appendChild(a)}0===n.children.length&&n.remove()};e.default=p},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r=n(4),i=n(2),a=n(5),s=n(6),c=n(0),l=c.default.CONTENT,u=function(t){t.addEventListener("input",function(t){var e=t.target,n=e.value;a.setActionValue(n)}),t.addEventListener("keyup",function(t){if("Enter"===t.key)return s.onAction(o.CONFIRM_KEY)}),setTimeout(function(){t.focus(),a.setActionValue("")},0)},f=function(t,e,n){var o=document.createElement(e),r=l+"__"+e;o.classList.add(r);for(var i in n){var a=n[i];o[i]=a}"input"===e&&u(o),t.appendChild(o)},d=function(t){if(t){var e=r.injectElIntoModal(i.contentMarkup),n=t.element,o=t.attributes;"string"==typeof n?f(e,n,o):e.appendChild(n)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=function(){var t=o.stringToNode(r.overlayMarkup);document.body.appendChild(t)};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(5),r=n(6),i=n(1),a=n(3),s=n(0),c=s.default.MODAL,l=s.default.BUTTON,u=s.default.OVERLAY,f=function(t){t.preventDefault(),v()},d=function(t){t.preventDefault(),g()},p=function(t){if(o.default.isOpen)switch(t.key){case"Escape":return r.onAction(a.CANCEL_KEY)}},m=function(t){if(o.default.isOpen)switch(t.key){case"Tab":return f(t)}},b=function(t){if(o.default.isOpen)return"Tab"===t.key&&t.shiftKey?d(t):void 0},v=function(){var t=i.getNode(l);t&&(t.tabIndex=0,t.focus())},g=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l),n=e.length-1,o=e[n];o&&o.focus()},h=function(t){t[t.length-1].addEventListener("keydown",m)},w=function(t){t[0].addEventListener("keydown",b)},y=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l);e.length&&(h(e),w(e))},x=function(t){if(i.getNode(u)===t.target)return r.onAction(a.CANCEL_KEY)},_=function(t){var e=i.getNode(u);e.removeEventListener("click",x),t&&e.addEventListener("click",x)},k=function(t){o.default.timer&&clearTimeout(o.default.timer),t&&(o.default.timer=window.setTimeout(function(){return r.onAction(a.CANCEL_KEY)},t))},O=function(t){t.closeOnEsc?document.addEventListener("keyup",p):document.removeEventListener("keyup",p),t.dangerMode?v():g(),y(),_(t.closeOnClickOutside),k(t.timer)};e.default=O},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(37),a=n(38),s={title:null,text:null,icon:null,buttons:r.defaultButtonList,content:null,className:null,closeOnClickOutside:!0,closeOnEsc:!0,dangerMode:!1,timer:null},c=Object.assign({},s);e.setDefaults=function(t){c=Object.assign({},s,t)};var l=function(t){var e=t&&t.button,n=t&&t.buttons;return void 0!==e&&void 0!==n&&o.throwErr("Cannot set both 'button' and 'buttons' options!"),void 0!==e?{confirm:e}:n},u=function(t){return o.ordinalSuffixOf(t+1)},f=function(t,e){o.throwErr(u(e)+" argument ('"+t+"') is invalid")},d=function(t,e){var n=t+1,r=e[n];o.isPlainObject(r)||void 0===r||o.throwErr("Expected "+u(n)+" argument ('"+r+"') to be a plain object")},p=function(t,e){var n=t+1,r=e[n];void 0!==r&&o.throwErr("Unexpected "+u(n)+" argument ("+r+")")},m=function(t,e,n,r){var i=typeof e,a="string"===i,s=e instanceof Element;if(a){if(0===n)return{text:e};if(1===n)return{text:e,title:r[0]};if(2===n)return d(n,r),{icon:e};f(e,n)}else{if(s&&0===n)return d(n,r),{content:e};if(o.isPlainObject(e))return p(n,r),e;f(e,n)}};e.getOpts=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n={};t.forEach(function(e,o){var r=m(0,e,o,t);Object.assign(n,r)});var o=l(n);n.buttons=r.getButtonListOpts(o),delete n.button,n.content=i.getContentOpts(n.content);var u=Object.assign({},s,c,n);return Object.keys(u).forEach(function(t){a.DEPRECATED_OPTS[t]&&a.logDeprecation(t)}),u}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r={element:"input",attributes:{placeholder:""}};e.getContentOpts=function(t){var e={};return o.isPlainObject(t)?Object.assign(e,t):t instanceof Element?{element:t}:"input"===t?r:null}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.logDeprecation=function(t){var n=e.DEPRECATED_OPTS[t],o=n.onlyRename,r=n.replacement,i=n.subOption,a=n.link,s=o?"renamed":"deprecated",c='SweetAlert warning: "'+t+'" option has been '+s+".";if(r){c+=" Please use"+(i?' "'+i+'" in ':" ")+'"'+r+'" instead.'}var l="https://sweetalert.js.org";c+=a?" More details: "+l+a:" More details: "+l+"/guides/#upgrading-from-1x",console.warn(c)},e.DEPRECATED_OPTS={type:{replacement:"icon",link:"/docs/#icon"},imageUrl:{replacement:"icon",link:"/docs/#icon"},customClass:{replacement:"className",onlyRename:!0,link:"/docs/#classname"},imageSize:{},showCancelButton:{replacement:"buttons",link:"/docs/#buttons"},showConfirmButton:{replacement:"button",link:"/docs/#button"},confirmButtonText:{replacement:"button",link:"/docs/#button"},confirmButtonColor:{},cancelButtonText:{replacement:"buttons",link:"/docs/#buttons"},closeOnConfirm:{replacement:"button",subOption:"closeModal",link:"/docs/#button"},closeOnCancel:{replacement:"buttons",subOption:"closeModal",link:"/docs/#buttons"},showLoaderOnConfirm:{replacement:"buttons"},animation:{},inputType:{replacement:"content",link:"/docs/#content"},inputValue:{replacement:"content",link:"/docs/#content"},inputPlaceholder:{replacement:"content",link:"/docs/#content"},html:{replacement:"content",link:"/docs/#content"},allowEscapeKey:{replacement:"closeOnEsc",onlyRename:!0,link:"/docs/#closeonesc"},allowClickOutside:{replacement:"closeOnClickOutside",onlyRename:!0,link:"/docs/#closeonclickoutside"}}}])});
 
admin/partials/enhanced-ecommerce-google-analytics-admin-display.php CHANGED
@@ -97,7 +97,7 @@ class TVC_Tabs {
97
  <li class="nav-item"><div class="border-left aga-tab nav-link <?php echo $this->is_active_tabs('about_plugin'); ?>"><a href="<?php echo $this->site_url.'about_plugin'; ?>">Premium <img class="new-img-blink" src='<?php echo plugins_url('../images/new-2.gif', __FILE__ ) ?>' /></a></div></li>
98
  <?php }*/ ?>
99
  <li class="tvc-menu-free-plan">
100
- <span>Free Plan: 500 Product sync limit</span>
101
  </li>
102
  </ul>
103
  </div>
97
  <li class="nav-item"><div class="border-left aga-tab nav-link <?php echo $this->is_active_tabs('about_plugin'); ?>"><a href="<?php echo $this->site_url.'about_plugin'; ?>">Premium <img class="new-img-blink" src='<?php echo plugins_url('../images/new-2.gif', __FILE__ ) ?>' /></a></div></li>
98
  <?php }*/ ?>
99
  <li class="tvc-menu-free-plan">
100
+ <span>Free Plan: 500 Product's sync limit</span>
101
  </li>
102
  </ul>
103
  </div>
admin/partials/general-fields.php CHANGED
@@ -316,7 +316,7 @@ Get richer data in the Analytics Multi-Channel Funnels reports."></i></label>
316
  <td>
317
  <label class = "align-middle">
318
  <?php $ga_PrivacyPolicy = !empty($data['ga_PrivacyPolicy']) ? 'checked' : ''; ?>
319
- <input type="checkbox" onchange="enableSubmit();" name="ga_PrivacyPolicy" id="ga_PrivacyPolicy" required="required" <?php echo $ga_PrivacyPolicy; ?>>
320
  <label for="ga_PrivacyPolicy">Accept Privacy Policy of Plugin</label>
321
 
322
  <p class="description">By using Tatvic Plugin, you agree to Tatvic plugin's <a href= "https://www.tatvic.com/privacy-policy/?ref=plugin_policy&utm_source=plugin_backend&utm_medium=woo_premium_plugin&utm_campaign=GDPR_complaince_ecomm_plugins" target="_blank">Privacy Policy</a></p>
@@ -355,11 +355,8 @@ Get richer data in the Analytics Multi-Channel Funnels reports."></i></label>
355
  </div>
356
  <div class="modal-footer">
357
  <a target="_blank" class="ee-oauth-container btn darken-4 white black-text" href="<?=esc_url($this->url)?>" style="text-transform:none; margin: 0 auto;">
358
- <div class="left">
359
- <img width="20px" style="margin-top:7px; margin-right:8px" alt="Google sign-in"
360
- src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Google_%22G%22_Logo.svg/512px-Google_%22G%22_Logo.svg.png" />
361
- </div>
362
- <p style="font-size: inherit; margin-top:5px; margin-right:8px; ">Sign In With Google</p>
363
  </a>
364
  <!--sigin with google end-->
365
  </div>
316
  <td>
317
  <label class = "align-middle">
318
  <?php $ga_PrivacyPolicy = !empty($data['ga_PrivacyPolicy']) ? 'checked' : ''; ?>
319
+ <input type="checkbox" name="ga_PrivacyPolicy" id="ga_PrivacyPolicy" required="required" <?php echo $ga_PrivacyPolicy; ?>>
320
  <label for="ga_PrivacyPolicy">Accept Privacy Policy of Plugin</label>
321
 
322
  <p class="description">By using Tatvic Plugin, you agree to Tatvic plugin's <a href= "https://www.tatvic.com/privacy-policy/?ref=plugin_policy&utm_source=plugin_backend&utm_medium=woo_premium_plugin&utm_campaign=GDPR_complaince_ecomm_plugins" target="_blank">Privacy Policy</a></p>
355
  </div>
356
  <div class="modal-footer">
357
  <a target="_blank" class="ee-oauth-container btn darken-4 white black-text" href="<?=esc_url($this->url)?>" style="text-transform:none; margin: 0 auto;">
358
+ <p style="font-size: inherit; margin-top:5px;"><img width="20px" style="margin-right:8px" alt="Google sign-in"
359
+ src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Google_%22G%22_Logo.svg/512px-Google_%22G%22_Logo.svg.png" />Sign In With Google</p>
 
 
 
360
  </a>
361
  <!--sigin with google end-->
362
  </div>
enhanced-ecommerce-google-analytics.php CHANGED
@@ -16,7 +16,7 @@
16
  * Plugin Name: Enhanced E-commerce for Woocommerce store
17
  * Plugin URI: https://www.tatvic.com/tatvic-labs/woocommerce-extension/
18
  * Description: Automates eCommerce tracking in Google Analytics, dynamic remarkting in Google Ads, and provides complete Google Shopping features.
19
- * Version: 3.0.1
20
  * Author: Tatvic
21
  * Author URI: www.tatvic.com
22
  * License: GPL-2.0+
@@ -38,7 +38,7 @@ if ( ! defined( 'WPINC' ) ) {
38
  * Start at version 1.0.0 and use SemVer - https://semver.org
39
  * Rename this for your plugin and update it as you release new versions.
40
  */
41
- define( 'PLUGIN_NAME_VERSION', '3.0.1' );
42
  $fullName = plugin_basename( __FILE__ );
43
  $dir = str_replace('/enhanced-ecommerce-google-analytics.php','',$fullName);
44
  if ( ! defined( 'ENHANCAD_PLUGIN_NAME' ) ) {
16
  * Plugin Name: Enhanced E-commerce for Woocommerce store
17
  * Plugin URI: https://www.tatvic.com/tatvic-labs/woocommerce-extension/
18
  * Description: Automates eCommerce tracking in Google Analytics, dynamic remarkting in Google Ads, and provides complete Google Shopping features.
19
+ * Version: 3.0.2
20
  * Author: Tatvic
21
  * Author URI: www.tatvic.com
22
  * License: GPL-2.0+
38
  * Start at version 1.0.0 and use SemVer - https://semver.org
39
  * Rename this for your plugin and update it as you release new versions.
40
  */
41
+ define( 'PLUGIN_NAME_VERSION', '3.0.2' );
42
  $fullName = plugin_basename( __FILE__ );
43
  $dir = str_replace('/enhanced-ecommerce-google-analytics.php','',$fullName);
44
  if ( ! defined( 'ENHANCAD_PLUGIN_NAME' ) ) {
includes/application/class-tvc-feed-controller.php DELETED
@@ -1,208 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Google Product Feed Controller Class.
5
- *
6
- * @package Google Product Feed Manager/Application/Classes
7
- * @version 1.3.0
8
- */
9
-
10
- if ( ! defined( 'ABSPATH' ) ) {
11
- exit;
12
- }
13
-
14
- if ( ! class_exists( 'TVC_Feed_Controller' ) ) :
15
-
16
- /**
17
- * Feed Controller Class
18
- *
19
- * @since 1.10.0
20
- */
21
- class TVC_Feed_Controller {
22
-
23
- /**
24
- * Removes a feed id from the feed queue
25
- *
26
- * @param string $feed_id
27
- */
28
- public static function remove_id_from_feed_queue( $feed_id ) {
29
- $feed_queue = self::get_feed_queue();
30
- $key = array_search( $feed_id, $feed_queue );
31
-
32
- if ( false !== $key ) {
33
- unset( $feed_queue[ $key ] );
34
- $feed_queue = array_values( $feed_queue ); // resort after unset
35
- update_site_option( 'tvc_feed_queue', $feed_queue );
36
-
37
- if ( self::feed_queue_is_empty() ) {
38
- tvc_clear_feed_process_data();
39
- }
40
- }
41
- }
42
-
43
- /**
44
- * Adds an feed id to the feed queue
45
- *
46
- * @param string $feed_id
47
- */
48
- public static function add_id_to_feed_queue( $feed_id ) {
49
- $feed_queue = self::get_feed_queue();
50
-
51
- if ( ! in_array( $feed_id, $feed_queue ) ) {
52
- array_push( $feed_queue, $feed_id );
53
- update_site_option( 'tvc_feed_queue', $feed_queue );
54
- }
55
- }
56
-
57
- /**
58
- * Gets the next feed id from the feed queue
59
- */
60
- public static function get_next_id_from_feed_queue() {
61
- $feed_queue = self::get_feed_queue();
62
-
63
- return count( $feed_queue ) > 0 ? $feed_queue[0] : false;
64
- }
65
-
66
- /**
67
- * Empties the feed queue
68
- */
69
- public static function clear_feed_queue() {
70
- update_site_option( 'tvc_feed_queue', array() );
71
- }
72
-
73
- /**
74
- * Checks if the feed queue is empty
75
- *
76
- * @return bool
77
- */
78
- public static function feed_queue_is_empty() {
79
- $queue = self::get_feed_queue();
80
-
81
- return ( count( $queue ) < 1 ) ? true : false;
82
- }
83
-
84
- /**
85
- * Returns the number of product ids that are still in the queue
86
- *
87
- * @since 2.3.0
88
- * @return int number of product ids still in the queue
89
- */
90
- public static function nr_ids_remaining_in_queue() {
91
- $queue = self::get_feed_queue();
92
-
93
- return count( $queue );
94
- }
95
-
96
- /**
97
- * Sets the background_process_is_running option
98
- *
99
- * @param bool $set (default false)
100
- */
101
- public static function set_feed_processing_flag( $set = false ) {
102
- $status = false !== $set ? 'true' : 'false';
103
- update_site_option( 'tvc_background_process_is_running', $status );
104
- }
105
-
106
- /**
107
- * Get the background_process_is_running status
108
- *
109
- * @return bool
110
- */
111
- public static function feed_is_processing() {
112
- $status = get_option( 'tvc_background_process_is_running', 'false' );
113
-
114
- return 'true' === $status ? true : false;
115
- }
116
-
117
- /**
118
- * Checks if a running feed size is still growing, in order to identify a failing feed process.
119
- *
120
- * @since 2.2.0
121
- *
122
- * @param string $feed_file String with the full path and name of the feed file.
123
- *
124
- * @return boolean False if the feed still grows, true if it stopped growing for a certain time.
125
- */
126
- public static function feed_processing_failed( $feed_file ) {
127
-
128
- if ( '' === $feed_file ) {
129
- return null;
130
- }
131
-
132
- $trans = get_transient( 'tvc_feed_file_size' );
133
-
134
- /**
135
- * Get the feed file name that's stored in the transient or take the $feed_file parameter.
136
- */
137
- $trans_feed_file = $trans ? substr( $trans, strrpos( $trans, '|' ) + 1 ) : $feed_file;
138
-
139
- /**
140
- * if the transient was empty or the feed file in the transient is not the currently active file, reset the transient
141
- */
142
- if ( false === $trans || $feed_file !== $trans_feed_file ) {
143
- $trans = '0|0|' . $feed_file;
144
- set_transient( 'tvc_feed_file_size', $trans, TVC_TRANSIENT_LIVE );
145
- }
146
-
147
- /**
148
- * Get the last data.
149
- */
150
- $stored = explode( '|', $trans );
151
- $prev_feed_size = $stored[0];
152
- $prev_feed_time_stamp = $stored[1];
153
- $feed_file = $trans_feed_file;
154
- $curr_feed_size = file_exists( $feed_file ) ? filesize( $feed_file ) : false;
155
-
156
- /**
157
- * If file does not exist, return true.
158
- */
159
- if ( false === $curr_feed_size ) {
160
- delete_transient( 'tvc_feed_file_size' ); // reset the counter
161
- return true;
162
- }
163
-
164
- // If the size of the feed has not grown.
165
- if ( $curr_feed_size <= $prev_feed_size ) {
166
- // And the delay time has passed.
167
- if ( $prev_feed_time_stamp + apply_filters( 'tvc_delay_failed_label', TVC_DELAY_FAILED_LABEL, $feed_file ) < time() ) {
168
- delete_transient( 'tvc_feed_file_size' ); // reset the counter
169
- return true;
170
- } else {
171
- return false;
172
- }
173
- } else { // If the file size has increased, reset the timer and return false.
174
- set_transient( 'tvc_feed_file_size', $curr_feed_size . '|' . time() . '|' . $feed_file, TVC_TRANSIENT_LIVE );
175
- return false;
176
- }
177
- }
178
-
179
- /**
180
- * Updates the timer that is used as reference to monitor if a file is growing during the feed production process.
181
- *
182
- * @since 2.11.0
183
- */
184
- public static function update_file_grow_monitoring_timer() {
185
- // Get the current monitor data.
186
- $grow_monitor_array = get_transient( 'tvc_feed_file_size' );
187
-
188
- if ( ! $grow_monitor_array ) { // The tvc_feed_file_size is not set in the non-background mode.
189
- return;
190
- }
191
-
192
- $grow_monitor_data = explode( '|', $grow_monitor_array );
193
-
194
- // Reset the timer part of the monitor.
195
- set_transient( 'tvc_feed_file_size', $grow_monitor_data[0] . '|' . time() . '|' . $grow_monitor_data[2], TVC_TRANSIENT_LIVE );
196
- }
197
-
198
- /**
199
- * Returns the current feed queue
200
- *
201
- * @return array with feed ids in the queue or an empty array
202
- */
203
- protected static function get_feed_queue() {
204
- return get_site_option( 'tvc_feed_queue', array() );
205
- }
206
- }
207
-
208
- endif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/class-tvc-feed-support.php DELETED
@@ -1,301 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * TVC Product Feed Support Class.
5
- *
6
- * @package TVC Product Feed Manager/Application/Classes
7
- * @version 1.1.2
8
- */
9
-
10
- if ( ! defined( 'ABSPATH' ) ) {
11
- exit;
12
- }
13
-
14
- if ( ! class_exists( 'TVC_Feed_Support' ) ) :
15
-
16
- /**
17
- * Feed Support Class
18
- */
19
- class TVC_Feed_Support {
20
-
21
- /**
22
- * @param $query_object
23
- * @return bool|mixed
24
- */
25
- public function get_query_string_from_query_object( $query_object ) {
26
- // TODO: There's probably a better way to do this!
27
- foreach ( $query_object as $value ) {
28
- return $value;
29
- }
30
-
31
- return false;
32
- }
33
-
34
- /**
35
- * @param $feed_name
36
- * @param $relations_table
37
- * @return mixed|string
38
- */
39
- public function find_relation( $feed_name, $relations_table ) {
40
- $result = '';
41
-
42
- foreach ( $relations_table as $relation ) {
43
- if ( $relation['field'] === $feed_name ) {
44
- $result = $relation['db'];
45
- break;
46
- }
47
- }
48
-
49
- $relations_table = null;
50
-
51
- return $result;
52
- }
53
-
54
- /**
55
- * @param $term_id
56
- * @param $category_mapping
57
- * @return bool|int
58
- */
59
- public function category_is_selected( $term_id, $category_mapping ) {
60
- for ( $i = 0; $i < count( $category_mapping ); $i ++ ) {
61
- if ( (string) $term_id === $category_mapping[ $i ]->shopCategoryId ) {
62
- return $i;
63
- }
64
- }
65
- return false;
66
- }
67
-
68
- /**
69
- * @param $query_split
70
- * @param $product_data
71
- * @return bool
72
- */
73
- public function check_query_result_on_specific_row( $query_split, $product_data ) {
74
- $queries_class = new TVC_Feed_Queries;
75
- $current_data = key_exists( $query_split[1], $product_data ) ? $product_data[ $query_split[1] ] : '';
76
-
77
- // the following attributes can or will contain an array so surpress the type warning for these attributes
78
- $suppress_type_warning_attributes = apply_filters(
79
- 'tvc_suppress_type_warning_attributes',
80
- array(
81
- '_wp_attachement_metadata',
82
- )
83
- );
84
-
85
- if ( is_array( $current_data ) && ! in_array( $query_split[1], $suppress_type_warning_attributes ) ) { // A user had this once where he had an attribute that only showed "Array()" as value
86
- $product_id = key_exists( 'ID', $product_data ) ? $product_data['ID'] : 'unknown';
87
- $product_title = key_exists( 'post_title', $product_data ) ? $product_data['post_title'] : 'unknown';
88
-
89
- $error_message = "There is something wrong with the '" . $query_split[1] . "' attribute of product '$product_title' with id $product_id. It seems to be of a wrong type.";
90
-
91
- tvc_write_log_file( $error_message, 'debug' );
92
-
93
- $current_data = $current_data[0];
94
- }
95
-
96
- $result = true;
97
-
98
- switch ( $query_split[2] ) {
99
- case 0: // includes
100
- $result = $queries_class->includes_query( $query_split, $current_data );
101
- break;
102
-
103
- case 1: // does not include
104
- $result = $queries_class->does_not_include_query( $query_split, $current_data );
105
- break;
106
-
107
- case 2: // is equal to
108
- $result = $queries_class->is_equal_to_query( $query_split, $current_data );
109
- break;
110
-
111
- case 3: // is not equal to
112
- $result = $queries_class->is_not_equal_to_query( $query_split, $current_data );
113
- break;
114
-
115
- case 4: // is empty
116
- $result = $queries_class->is_empty( $current_data );
117
- break;
118
-
119
- case 5: // is not empty
120
- $result = $queries_class->is_not_empty_query( $current_data );
121
- break;
122
-
123
- case 6: // starts with
124
- $result = $queries_class->starts_with_query( $query_split, $current_data );
125
- break;
126
-
127
- case 7: // does not start with
128
- $result = $queries_class->does_not_start_with_query( $query_split, $current_data );
129
- break;
130
-
131
- case 8: // ends with
132
- $result = $queries_class->ends_with_query( $query_split, $current_data );
133
- break;
134
-
135
- case 9: // does not end with
136
- $result = $queries_class->does_not_end_with_query( $query_split, $current_data );
137
- break;
138
-
139
- case 10: // is greater than
140
- $result = $queries_class->is_greater_than_query( $query_split, $current_data );
141
- break;
142
-
143
- case 11: // is greater or equal to
144
- $result = $queries_class->is_greater_or_equal_to_query( $query_split, $current_data );
145
- break;
146
-
147
- case 12: // is smaller than
148
- $result = $queries_class->is_smaller_than_query( $query_split, $current_data );
149
- break;
150
-
151
- case 13: // is smaller or equal to
152
- $result = $queries_class->is_smaller_or_equal_to_query( $query_split, $current_data );
153
- break;
154
-
155
- case 14: // is between
156
- $result = $queries_class->is_between_query( $query_split, $current_data );
157
- break;
158
-
159
- default:
160
- break;
161
- }
162
-
163
- return $result;
164
- }
165
-
166
- /**
167
- * @param $current_value
168
- * @param $edit_string
169
- * @param $combination_string
170
- * @param $combined_data_elements
171
- * @param $feed_language
172
- * @return float|int|mixed|string
173
- */
174
- public function edit_value( $current_value, $edit_string, $combination_string, $combined_data_elements, $feed_language ) {
175
- $value_editors = new TVC_Feed_Value_Editors;
176
-
177
- $query_split = explode( '#', $edit_string );
178
-
179
- switch ( $query_split[1] ) {
180
- case 'change nothing':
181
- $result = $current_value;
182
- break;
183
-
184
- case 'overwrite':
185
- $result = $value_editors->overwrite_value( $query_split );
186
- break;
187
-
188
- case 'replace':
189
- $result = $value_editors->replace_value( $query_split, $current_value );
190
- break;
191
-
192
- case 'remove':
193
- $result = $value_editors->remove_value( $query_split, $current_value );
194
- break;
195
-
196
- case 'add prefix':
197
- $result = $value_editors->add_prefix_value( $query_split, $current_value );
198
- break;
199
-
200
- case 'add suffix':
201
- $result = $value_editors->add_suffix_value( $query_split, $current_value );
202
- break;
203
-
204
- case 'recalculate':
205
- $result = $value_editors->recalculate_value( $query_split, $current_value, $combination_string, $combined_data_elements, $feed_language );
206
- break;
207
-
208
- case 'convert to child-element':
209
- $result = $value_editors->convert_to_element( $query_split, $current_value );
210
- break;
211
-
212
- default:
213
- $result = false;
214
- break;
215
- }
216
-
217
- return $result;
218
- }
219
-
220
- /**
221
- * @param $feed_filter_array
222
- * @return array
223
- */
224
- public function get_column_names_from_feed_filter_array( $feed_filter_array ) {
225
- $empty_array = array();
226
- $filters = $feed_filter_array ? json_decode( $feed_filter_array[0]['meta_value'] ) : $empty_array;
227
- $column_names = array();
228
-
229
- foreach ( $filters as $filter ) {
230
- $query_string = $this->get_query_string_from_query_object( $filter );
231
- $query_parts = explode( '#', $query_string );
232
-
233
- array_push( $column_names, $query_parts[1] );
234
- }
235
-
236
- return $column_names;
237
- }
238
-
239
- /**
240
- * makes a unique feed for a copy of an existing feed
241
- *
242
- * @param string $current_feed_name
243
- *
244
- * @return string
245
- */
246
- public function next_unique_feed_name( $current_feed_name ) {
247
- $queries_class = new TVC_Queries();
248
-
249
- $title_end = explode( '_', $current_feed_name );
250
- $end_nr = end( $title_end );
251
-
252
- if ( count( $title_end ) > 1 && is_numeric( $end_nr ) ) {
253
- $new_title = substr_replace( $current_feed_name, ( $end_nr + 1 ), - strlen( $end_nr ) );
254
- } else {
255
- $new_title = $current_feed_name . '_1';
256
- $end_nr = '1';
257
- }
258
-
259
- // increase the end number of the title already exists
260
- while ( $queries_class->title_exists( $new_title ) ) {
261
- $new_title = substr_replace( $new_title, ( $end_nr + 1 ), - strlen( $end_nr ) );
262
- $end_nr ++;
263
- }
264
-
265
- return $new_title;
266
- }
267
-
268
- /**
269
- * Adds multiple single draft image urls to the product, specific for the Ricardo.ch channel
270
- *
271
- * @since 1.9.0
272
- *
273
- * @param array $product
274
- * @param array $images
275
- */
276
- public function process_ricardo_draftimages( &$product, $images ) {
277
- for ( $i = 0; $i < 10; $i ++ ) {
278
- $product["DraftImages[$i]"] = isset( $images[ $i ] ) ? $images[ $i ] : '';
279
- }
280
- }
281
-
282
- /**
283
- * Corrects issues where the active list is not the same as the data keys
284
- *
285
- * @since 1.9.0
286
- *
287
- * @param array $active_fields
288
- */
289
- public function correct_active_fields_list( &$active_fields ) {
290
- // correct for draft images in Ricardo.ch feed
291
- if ( ( $key = array_search( 'DraftImages', $active_fields ) ) !== false ) {
292
- unset( $active_fields[ $key ] );
293
- for ( $i = 0; $i < 10; $i ++ ) {
294
- array_push( $active_fields, "DraftImages[$i]" );
295
- }
296
- }
297
- }
298
- }
299
-
300
- // end of TVC_Feed_Support
301
- endif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/google/gmc.txt DELETED
@@ -1,23 +0,0 @@
1
- id
2
- offerId
3
- title
4
- description
5
- item_group_id
6
- link
7
- image_link
8
- content_language
9
- target_country
10
- channel
11
- age_group
12
- availability
13
- availability_date
14
- brand
15
- color
16
- condition
17
- gender
18
- google_product_category
19
- gtin
20
- item_group_id
21
- mpn
22
- price
23
- sizes
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/google/gmc_attrbutes.json DELETED
@@ -1,118 +0,0 @@
1
- [
2
- {
3
- "field": "id",
4
- "required": 1,
5
- "desc": "Your product’s unique identifier",
6
- "wAttribute": "ID"
7
- },
8
- {
9
- "field": "title",
10
- "required": 1,
11
- "desc": "Your product’s name",
12
- "wAttribute": "post_title"
13
- },
14
- {
15
- "field": "description",
16
- "required": 1,
17
- "desc": "Your product’s description",
18
- "wAttribute": "post_excerpt"
19
- },
20
- {
21
- "field": "link",
22
- "desc": "Your product’s landing page",
23
- "required": 1
24
- },
25
- {
26
- "field": "image_link",
27
- "required": 1,
28
- "desc": "The URL of your product’s main image",
29
- "wAttribute": "_wp_attached_file"
30
- },
31
- {
32
- "field": "price",
33
- "required": 1,
34
- "desc": "Your product’s price",
35
- "wAttribute": "_sale_price"
36
-
37
- },
38
- {
39
- "field": "gtin",
40
- "desc": "Your product’s Global Trade Item Number (GTIN). Required for all new products with an assigned GTIN.",
41
- "wAttribute": "tvc_product_gtin"
42
- },
43
- {
44
- "field": "mpn",
45
- "desc": "Your product’s Global Trade Item Number (GTIN). Required for all new products with an assigned GTIN.",
46
- "wAttribute": "tvc_product_mpn"
47
- },
48
- {
49
- "field": "offer_id",
50
- "required": 1,
51
- "desc": "offer id",
52
- "wAttribute": "ID"
53
- },
54
- {
55
- "field": "brand",
56
- "desc": "Your product’s brand name",
57
- "wAttribute": "tvc_product_brand"
58
- },
59
- {
60
- "field": "availability",
61
- "desc": "Your product's availability",
62
- "wAttribute": "_stock_status"
63
- },
64
- {
65
- "field": "item_group_id",
66
- "desc": "ID for a group of products that come in different versions (variants)"
67
- },
68
- {
69
- "field": "sizes",
70
- "desc": "Your product’s size"
71
- },
72
- {
73
- "field": "color",
74
- "desc": "Your product’s color(s)"
75
- },
76
- {
77
- "field": "age_group",
78
- "desc": "The demographic for which your product is intended"
79
- },
80
- {
81
- "field": "gender",
82
- "desc": "The gender for which your product is intended"
83
- },
84
- {
85
- "field": "condition",
86
- "desc": "The condition of your product at time of sale"
87
- },
88
- {
89
-
90
- "field": "shipping",
91
- "desc": "Your product's shipping cost and the locations your product ships to"
92
- },
93
- {
94
-
95
- "field": "tax",
96
- "desc": "Your product’s sales tax rate in percent"
97
- },
98
- {
99
- "field": "product_type",
100
- "desc": "Product category that you define for your product"
101
- },
102
- {
103
- "field": "google_product_category",
104
- "desc": "product category"
105
- },
106
- {
107
- "field": "content_language",
108
- "desc": "content language"
109
- },
110
- {
111
- "field": "target_country",
112
- "desc": "Country for Google Shopping Listing"
113
- },
114
- {
115
- "field": "channel",
116
- "desc": "channel"
117
- }
118
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/google/google.txt DELETED
@@ -1,84 +0,0 @@
1
- 1 1 id
2
- 2 1 title
3
- 3 1 description
4
- 4 0 google_product_category
5
- 5 4 product_type
6
- 6 1 link
7
- 7 4 mobile_link
8
- 8 1 image_link
9
- 9 1 price
10
- 10 1 condition
11
- 11 1 availability
12
- 12 4 availability_date
13
- 13 0 brand
14
- 14 1 gtin
15
- 15 4 mpn
16
- 16 0 item_group_id
17
- 17 4 additional_image_link
18
- 18 4 sale_price
19
- 19 4 sale_price_effective_date
20
- 20 0 gender
21
- 21 0 age_group
22
- 22 0 color
23
- 23 0 size
24
- 24 4 material
25
- 25 4 pattern
26
- 26 4 shipping_weight
27
- 27 4 expiration_date
28
- 28 4 adwords_redirect
29
- 29 1 adult
30
- 30 0 multipack
31
- 31 1 identifier_exists
32
- 32 4 size_type
33
- 33 4 size_system
34
- 34 0 shipping
35
- 35 4 shipping_label
36
- 36 0 is_bundle
37
- 37 4 custom_label_0
38
- 38 4 custom_label_1
39
- 39 4 custom_label_2
40
- 40 4 custom_label_3
41
- 41 4 custom_label_4
42
- 42 4 unit_pricing_measure
43
- 43 4 unit_pricing_base_measure
44
- 44 4 energy_efficiency_class
45
- 45 4 min_energy_efficiency_class
46
- 46 4 max_energy_efficiency_class
47
- 47 0 tax
48
- 48 4 installment
49
- 49 4 loyalty_points
50
- 50 4 promotion_id
51
- 51 4 shipping_length
52
- 52 4 shipping_width
53
- 53 4 shipping_height
54
- 54 4 installment-months
55
- 55 4 installment-amount
56
- 56 4 loyalty_points-name
57
- 57 4 loyalty_points-pointsValue
58
- 58 4 loyalty_points-ratio
59
- 59 4 shipping-country
60
- 60 4 shipping-region
61
- 61 4 shipping-service
62
- 62 4 shipping-price
63
- 63 4 transit_time_label
64
- 64 4 tax-country
65
- 65 4 tax-region
66
- 66 4 tax-rate
67
- 67 4 tax-tax_ship
68
- 68 4 tax_category
69
- 69 4 display_ads_id
70
- 70 4 display_ads_similar_id
71
- 71 4 display_ads_title
72
- 72 4 display_ads_link
73
- 73 4 display_ads_value
74
- 74 4 excluded_destination
75
- 75 4 included_destination
76
- 76 4 adwords_grouping
77
- 77 4 adwords_labels
78
- 78 4 min_handling_time
79
- 79 4 max_handling_time
80
- 80 4 cost_of_goods_sold
81
- 81 0 subscription_cost
82
- 82 0 subscription_cost-period
83
- 83 0 subscription_cost-period_length
84
- 84 0 subscription_cost-amount
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/google/taxonomy.en-US.txt DELETED
@@ -1,5583 +0,0 @@
1
- # Google_Product_Taxonomy_Version: 2019-07-10
2
- Animals & Pet Supplies
3
- Animals & Pet Supplies > Live Animals
4
- Animals & Pet Supplies > Pet Supplies
5
- Animals & Pet Supplies > Pet Supplies > Bird Supplies
6
- Animals & Pet Supplies > Pet Supplies > Bird Supplies > Bird Cage Accessories
7
- Animals & Pet Supplies > Pet Supplies > Bird Supplies > Bird Cage Accessories > Bird Cage Bird Baths
8
- Animals & Pet Supplies > Pet Supplies > Bird Supplies > Bird Cage Accessories > Bird Cage Food & Water Dishes
9
- Animals & Pet Supplies > Pet Supplies > Bird Supplies > Bird Cages & Stands
10
- Animals & Pet Supplies > Pet Supplies > Bird Supplies > Bird Food
11
- Animals & Pet Supplies > Pet Supplies > Bird Supplies > Bird Gyms & Playstands
12
- Animals & Pet Supplies > Pet Supplies > Bird Supplies > Bird Ladders & Perches
13
- Animals & Pet Supplies > Pet Supplies > Bird Supplies > Bird Toys
14
- Animals & Pet Supplies > Pet Supplies > Bird Supplies > Bird Treats
15
- Animals & Pet Supplies > Pet Supplies > Cat Supplies
16
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Apparel
17
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Beds
18
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Food
19
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Food > Non-prescription Cat Food
20
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Food > Prescription Cat Food
21
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Furniture
22
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Furniture Accessories
23
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Litter
24
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Litter Box Liners
25
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Litter Box Mats
26
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Litter Boxes
27
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Toys
28
- Animals & Pet Supplies > Pet Supplies > Cat Supplies > Cat Treats
29
- Animals & Pet Supplies > Pet Supplies > Dog Supplies
30
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Apparel
31
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Beds
32
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Diaper Pads & Liners
33
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Diapers
34
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Food
35
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Food > Non-prescription Dog Food
36
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Food > Prescription Dog Food
37
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Houses
38
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Kennel & Run Accessories
39
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Kennels & Runs
40
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Toys
41
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Treadmills
42
- Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Treats
43
- Animals & Pet Supplies > Pet Supplies > Fish Supplies
44
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium & Pond Tubing
45
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium Air Stones & Diffusers
46
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium Cleaning Supplies
47
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium Decor
48
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium Filters
49
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium Fish Nets
50
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium Gravel & Substrates
51
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium Lighting
52
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium Overflow Boxes
53
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium Stands
54
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium Temperature Controllers
55
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquarium Water Treatments
56
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquariums
57
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Aquatic Plant Fertilizers
58
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Fish Feeders
59
- Animals & Pet Supplies > Pet Supplies > Fish Supplies > Fish Food
60
- Animals & Pet Supplies > Pet Supplies > Pet Agility Equipment
61
- Animals & Pet Supplies > Pet Supplies > Pet Apparel Hangers
62
- Animals & Pet Supplies > Pet Supplies > Pet Bed Accessories
63
- Animals & Pet Supplies > Pet Supplies > Pet Bells & Charms
64
- Animals & Pet Supplies > Pet Supplies > Pet Biometric Monitors
65
- Animals & Pet Supplies > Pet Supplies > Pet Biometric Monitors > Pet Glucose Meters
66
- Animals & Pet Supplies > Pet Supplies > Pet Biometric Monitors > Pet Pedometers
67
- Animals & Pet Supplies > Pet Supplies > Pet Biometric Monitors > Pet Thermometers
68
- Animals & Pet Supplies > Pet Supplies > Pet Bowl Mats
69
- Animals & Pet Supplies > Pet Supplies > Pet Bowl Stands
70
- Animals & Pet Supplies > Pet Supplies > Pet Bowls, Feeders & Waterers
71
- Animals & Pet Supplies > Pet Supplies > Pet Carrier & Crate Accessories
72
- Animals & Pet Supplies > Pet Supplies > Pet Carriers & Crates
73
- Animals & Pet Supplies > Pet Supplies > Pet Collars & Harnesses
74
- Animals & Pet Supplies > Pet Supplies > Pet Containment Systems
75
- Animals & Pet Supplies > Pet Supplies > Pet Door Accessories
76
- Animals & Pet Supplies > Pet Supplies > Pet Doors
77
- Animals & Pet Supplies > Pet Supplies > Pet Eye Drops & Lubricants
78
- Animals & Pet Supplies > Pet Supplies > Pet First Aid & Emergency Kits
79
- Animals & Pet Supplies > Pet Supplies > Pet Flea & Tick Control
80
- Animals & Pet Supplies > Pet Supplies > Pet Food Containers
81
- Animals & Pet Supplies > Pet Supplies > Pet Food Scoops
82
- Animals & Pet Supplies > Pet Supplies > Pet Grooming Supplies
83
- Animals & Pet Supplies > Pet Supplies > Pet Grooming Supplies > Pet Combs & Brushes
84
- Animals & Pet Supplies > Pet Supplies > Pet Grooming Supplies > Pet Fragrances & Deodorizing Sprays
85
- Animals & Pet Supplies > Pet Supplies > Pet Grooming Supplies > Pet Hair Clippers & Trimmers
86
- Animals & Pet Supplies > Pet Supplies > Pet Grooming Supplies > Pet Hair Dryers
87
- Animals & Pet Supplies > Pet Supplies > Pet Grooming Supplies > Pet Nail Polish
88
- Animals & Pet Supplies > Pet Supplies > Pet Grooming Supplies > Pet Nail Tools
89
- Animals & Pet Supplies > Pet Supplies > Pet Grooming Supplies > Pet Shampoo & Conditioner
90
- Animals & Pet Supplies > Pet Supplies > Pet Grooming Supplies > Pet Wipes
91
- Animals & Pet Supplies > Pet Supplies > Pet Heating Pad Accessories
92
- Animals & Pet Supplies > Pet Supplies > Pet Heating Pads
93
- Animals & Pet Supplies > Pet Supplies > Pet ID Tags
94
- Animals & Pet Supplies > Pet Supplies > Pet Leash Extensions
95
- Animals & Pet Supplies > Pet Supplies > Pet Leashes
96
- Animals & Pet Supplies > Pet Supplies > Pet Medical Collars
97
- Animals & Pet Supplies > Pet Supplies > Pet Medical Tape & Bandages
98
- Animals & Pet Supplies > Pet Supplies > Pet Medicine
99
- Animals & Pet Supplies > Pet Supplies > Pet Muzzles
100
- Animals & Pet Supplies > Pet Supplies > Pet Oral Care Supplies
101
- Animals & Pet Supplies > Pet Supplies > Pet Playpens
102
- Animals & Pet Supplies > Pet Supplies > Pet Steps & Ramps
103
- Animals & Pet Supplies > Pet Supplies > Pet Strollers
104
- Animals & Pet Supplies > Pet Supplies > Pet Sunscreen
105
- Animals & Pet Supplies > Pet Supplies > Pet Training Aids
106
- Animals & Pet Supplies > Pet Supplies > Pet Training Aids > Pet Training Clickers & Treat Dispensers
107
- Animals & Pet Supplies > Pet Supplies > Pet Training Aids > Pet Training Pad Holders
108
- Animals & Pet Supplies > Pet Supplies > Pet Training Aids > Pet Training Pads
109
- Animals & Pet Supplies > Pet Supplies > Pet Training Aids > Pet Training Sprays & Solutions
110
- Animals & Pet Supplies > Pet Supplies > Pet Vitamins & Supplements
111
- Animals & Pet Supplies > Pet Supplies > Pet Waste Bag Dispensers & Holders
112
- Animals & Pet Supplies > Pet Supplies > Pet Waste Bags
113
- Animals & Pet Supplies > Pet Supplies > Pet Waste Disposal Systems & Tools
114
- Animals & Pet Supplies > Pet Supplies > Reptile & Amphibian Supplies
115
- Animals & Pet Supplies > Pet Supplies > Reptile & Amphibian Supplies > Reptile & Amphibian Food
116
- Animals & Pet Supplies > Pet Supplies > Reptile & Amphibian Supplies > Reptile & Amphibian Habitat Accessories
117
- Animals & Pet Supplies > Pet Supplies > Reptile & Amphibian Supplies > Reptile & Amphibian Habitat Heating & Lighting
118
- Animals & Pet Supplies > Pet Supplies > Reptile & Amphibian Supplies > Reptile & Amphibian Habitats
119
- Animals & Pet Supplies > Pet Supplies > Reptile & Amphibian Supplies > Reptile & Amphibian Substrates
120
- Animals & Pet Supplies > Pet Supplies > Small Animal Supplies
121
- Animals & Pet Supplies > Pet Supplies > Small Animal Supplies > Small Animal Bedding
122
- Animals & Pet Supplies > Pet Supplies > Small Animal Supplies > Small Animal Food
123
- Animals & Pet Supplies > Pet Supplies > Small Animal Supplies > Small Animal Habitat Accessories
124
- Animals & Pet Supplies > Pet Supplies > Small Animal Supplies > Small Animal Habitats & Cages
125
- Animals & Pet Supplies > Pet Supplies > Small Animal Supplies > Small Animal Treats
126
- Animals & Pet Supplies > Pet Supplies > Vehicle Pet Barriers
127
- Apparel & Accessories
128
- Apparel & Accessories > Clothing
129
- Apparel & Accessories > Clothing > Activewear
130
- Apparel & Accessories > Clothing > Activewear > Bicycle Activewear
131
- Apparel & Accessories > Clothing > Activewear > Bicycle Activewear > Bicycle Bibs
132
- Apparel & Accessories > Clothing > Activewear > Bicycle Activewear > Bicycle Jerseys
133
- Apparel & Accessories > Clothing > Activewear > Bicycle Activewear > Bicycle Shorts & Briefs
134
- Apparel & Accessories > Clothing > Activewear > Bicycle Activewear > Bicycle Skinsuits
135
- Apparel & Accessories > Clothing > Activewear > Bicycle Activewear > Bicycle Tights
136
- Apparel & Accessories > Clothing > Activewear > Boxing Shorts
137
- Apparel & Accessories > Clothing > Activewear > Dance Dresses, Skirts & Costumes
138
- Apparel & Accessories > Clothing > Activewear > Football Pants
139
- Apparel & Accessories > Clothing > Activewear > Hunting Clothing
140
- Apparel & Accessories > Clothing > Activewear > Hunting Clothing > Ghillie Suits
141
- Apparel & Accessories > Clothing > Activewear > Hunting Clothing > Hunting & Fishing Vests
142
- Apparel & Accessories > Clothing > Activewear > Hunting Clothing > Hunting & Tactical Pants
143
- Apparel & Accessories > Clothing > Activewear > Martial Arts Shorts
144
- Apparel & Accessories > Clothing > Activewear > Motorcycle Protective Clothing
145
- Apparel & Accessories > Clothing > Activewear > Motorcycle Protective Clothing > Motorcycle Jackets
146
- Apparel & Accessories > Clothing > Activewear > Motorcycle Protective Clothing > Motorcycle Pants
147
- Apparel & Accessories > Clothing > Activewear > Motorcycle Protective Clothing > Motorcycle Suits
148
- Apparel & Accessories > Clothing > Activewear > Paintball Clothing
149
- Apparel & Accessories > Clothing > Baby & Toddler Clothing
150
- Apparel & Accessories > Clothing > Baby & Toddler Clothing > Baby & Toddler Bottoms
151
- Apparel & Accessories > Clothing > Baby & Toddler Clothing > Baby & Toddler Diaper Covers
152
- Apparel & Accessories > Clothing > Baby & Toddler Clothing > Baby & Toddler Dresses
153
- Apparel & Accessories > Clothing > Baby & Toddler Clothing > Baby & Toddler Outerwear
154
- Apparel & Accessories > Clothing > Baby & Toddler Clothing > Baby & Toddler Outfits
155
- Apparel & Accessories > Clothing > Baby & Toddler Clothing > Baby & Toddler Sleepwear
156
- Apparel & Accessories > Clothing > Baby & Toddler Clothing > Baby & Toddler Socks & Tights
157
- Apparel & Accessories > Clothing > Baby & Toddler Clothing > Baby & Toddler Swimwear
158
- Apparel & Accessories > Clothing > Baby & Toddler Clothing > Baby & Toddler Tops
159
- Apparel & Accessories > Clothing > Baby & Toddler Clothing > Baby One-Pieces
160
- Apparel & Accessories > Clothing > Baby & Toddler Clothing > Toddler Underwear
161
- Apparel & Accessories > Clothing > Dresses
162
- Apparel & Accessories > Clothing > One-Pieces
163
- Apparel & Accessories > Clothing > One-Pieces > Jumpsuits & Rompers
164
- Apparel & Accessories > Clothing > One-Pieces > Leotards & Unitards
165
- Apparel & Accessories > Clothing > One-Pieces > Overalls
166
- Apparel & Accessories > Clothing > Outerwear
167
- Apparel & Accessories > Clothing > Outerwear > Chaps
168
- Apparel & Accessories > Clothing > Outerwear > Coats & Jackets
169
- Apparel & Accessories > Clothing > Outerwear > Rain Pants
170
- Apparel & Accessories > Clothing > Outerwear > Rain Suits
171
- Apparel & Accessories > Clothing > Outerwear > Snow Pants & Suits
172
- Apparel & Accessories > Clothing > Outerwear > Vests
173
- Apparel & Accessories > Clothing > Outfit Sets
174
- Apparel & Accessories > Clothing > Pants
175
- Apparel & Accessories > Clothing > Shirts & Tops
176
- Apparel & Accessories > Clothing > Shorts
177
- Apparel & Accessories > Clothing > Skirts
178
- Apparel & Accessories > Clothing > Skorts
179
- Apparel & Accessories > Clothing > Sleepwear & Loungewear
180
- Apparel & Accessories > Clothing > Sleepwear & Loungewear > Loungewear
181
- Apparel & Accessories > Clothing > Sleepwear & Loungewear > Nightgowns
182
- Apparel & Accessories > Clothing > Sleepwear & Loungewear > Pajamas
183
- Apparel & Accessories > Clothing > Sleepwear & Loungewear > Robes
184
- Apparel & Accessories > Clothing > Suits
185
- Apparel & Accessories > Clothing > Suits > Pant Suits
186
- Apparel & Accessories > Clothing > Suits > Skirt Suits
187
- Apparel & Accessories > Clothing > Suits > Tuxedos
188
- Apparel & Accessories > Clothing > Swimwear
189
- Apparel & Accessories > Clothing > Traditional & Ceremonial Clothing
190
- Apparel & Accessories > Clothing > Traditional & Ceremonial Clothing > Dirndls
191
- Apparel & Accessories > Clothing > Traditional & Ceremonial Clothing > Hakama Trousers
192
- Apparel & Accessories > Clothing > Traditional & Ceremonial Clothing > Japanese Black Formal Wear
193
- Apparel & Accessories > Clothing > Traditional & Ceremonial Clothing > Kimono Outerwear
194
- Apparel & Accessories > Clothing > Traditional & Ceremonial Clothing > Kimonos
195
- Apparel & Accessories > Clothing > Traditional & Ceremonial Clothing > Religious Ceremonial Clothing
196
- Apparel & Accessories > Clothing > Traditional & Ceremonial Clothing > Religious Ceremonial Clothing > Baptism & Communion Dresses
197
- Apparel & Accessories > Clothing > Traditional & Ceremonial Clothing > Saris & Lehengas
198
- Apparel & Accessories > Clothing > Traditional & Ceremonial Clothing > Traditional Leather Pants
199
- Apparel & Accessories > Clothing > Traditional & Ceremonial Clothing > Yukata
200
- Apparel & Accessories > Clothing > Underwear & Socks
201
- Apparel & Accessories > Clothing > Underwear & Socks > Bra Accessories
202
- Apparel & Accessories > Clothing > Underwear & Socks > Bra Accessories > Bra Strap Pads
203
- Apparel & Accessories > Clothing > Underwear & Socks > Bra Accessories > Bra Straps & Extenders
204
- Apparel & Accessories > Clothing > Underwear & Socks > Bra Accessories > Breast Enhancing Inserts
205
- Apparel & Accessories > Clothing > Underwear & Socks > Bra Accessories > Breast Petals & Concealers
206
- Apparel & Accessories > Clothing > Underwear & Socks > Bras
207
- Apparel & Accessories > Clothing > Underwear & Socks > Hosiery
208
- Apparel & Accessories > Clothing > Underwear & Socks > Jock Straps
209
- Apparel & Accessories > Clothing > Underwear & Socks > Lingerie
210
- Apparel & Accessories > Clothing > Underwear & Socks > Lingerie Accessories
211
- Apparel & Accessories > Clothing > Underwear & Socks > Lingerie Accessories > Garter Belts
212
- Apparel & Accessories > Clothing > Underwear & Socks > Lingerie Accessories > Garters
213
- Apparel & Accessories > Clothing > Underwear & Socks > Long Johns
214
- Apparel & Accessories > Clothing > Underwear & Socks > Petticoats & Pettipants
215
- Apparel & Accessories > Clothing > Underwear & Socks > Shapewear
216
- Apparel & Accessories > Clothing > Underwear & Socks > Socks
217
- Apparel & Accessories > Clothing > Underwear & Socks > Undershirts
218
- Apparel & Accessories > Clothing > Underwear & Socks > Underwear
219
- Apparel & Accessories > Clothing > Underwear & Socks > Underwear Slips
220
- Apparel & Accessories > Clothing > Uniforms
221
- Apparel & Accessories > Clothing > Uniforms > Contractor Pants & Coveralls
222
- Apparel & Accessories > Clothing > Uniforms > Flight Suits
223
- Apparel & Accessories > Clothing > Uniforms > Food Service Uniforms
224
- Apparel & Accessories > Clothing > Uniforms > Food Service Uniforms > Chef's Hats
225
- Apparel & Accessories > Clothing > Uniforms > Food Service Uniforms > Chef's Jackets
226
- Apparel & Accessories > Clothing > Uniforms > Food Service Uniforms > Chef's Pants
227
- Apparel & Accessories > Clothing > Uniforms > Military Uniforms
228
- Apparel & Accessories > Clothing > Uniforms > School Uniforms
229
- Apparel & Accessories > Clothing > Uniforms > Security Uniforms
230
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms
231
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms > Baseball Uniforms
232
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms > Basketball Uniforms
233
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms > Cheerleading Uniforms
234
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms > Cricket Uniforms
235
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms > Football Uniforms
236
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms > Hockey Uniforms
237
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms > Martial Arts Uniforms
238
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms > Officiating Uniforms
239
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms > Soccer Uniforms
240
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms > Softball Uniforms
241
- Apparel & Accessories > Clothing > Uniforms > Sports Uniforms > Wrestling Uniforms
242
- Apparel & Accessories > Clothing > Uniforms > White Coats
243
- Apparel & Accessories > Clothing > Wedding & Bridal Party Dresses
244
- Apparel & Accessories > Clothing > Wedding & Bridal Party Dresses > Bridal Party Dresses
245
- Apparel & Accessories > Clothing > Wedding & Bridal Party Dresses > Wedding Dresses
246
- Apparel & Accessories > Clothing Accessories
247
- Apparel & Accessories > Clothing Accessories > Arm Warmers & Sleeves
248
- Apparel & Accessories > Clothing Accessories > Baby & Toddler Clothing Accessories
249
- Apparel & Accessories > Clothing Accessories > Baby & Toddler Clothing Accessories > Baby & Toddler Belts
250
- Apparel & Accessories > Clothing Accessories > Baby & Toddler Clothing Accessories > Baby & Toddler Gloves & Mittens
251
- Apparel & Accessories > Clothing Accessories > Baby & Toddler Clothing Accessories > Baby & Toddler Hats
252
- Apparel & Accessories > Clothing Accessories > Baby & Toddler Clothing Accessories > Baby Protective Wear
253
- Apparel & Accessories > Clothing Accessories > Balaclavas
254
- Apparel & Accessories > Clothing Accessories > Bandanas & Headties
255
- Apparel & Accessories > Clothing Accessories > Bandanas & Headties > Bandanas
256
- Apparel & Accessories > Clothing Accessories > Bandanas & Headties > Hair Care Wraps
257
- Apparel & Accessories > Clothing Accessories > Belt Buckles
258
- Apparel & Accessories > Clothing Accessories > Belts
259
- Apparel & Accessories > Clothing Accessories > Bridal Accessories
260
- Apparel & Accessories > Clothing Accessories > Bridal Accessories > Bridal Veils
261
- Apparel & Accessories > Clothing Accessories > Button Studs
262
- Apparel & Accessories > Clothing Accessories > Collar Stays
263
- Apparel & Accessories > Clothing Accessories > Cufflinks
264
- Apparel & Accessories > Clothing Accessories > Decorative Fans
265
- Apparel & Accessories > Clothing Accessories > Earmuffs
266
- Apparel & Accessories > Clothing Accessories > Gloves & Mittens
267
- Apparel & Accessories > Clothing Accessories > Hair Accessories
268
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Hair Bun & Volume Shapers
269
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Hair Combs
270
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Hair Extensions
271
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Hair Forks & Sticks
272
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Hair Nets
273
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Hair Pins, Claws & Clips
274
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Hair Pins, Claws & Clips > Barrettes
275
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Hair Pins, Claws & Clips > Hair Claws & Clips
276
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Hair Pins, Claws & Clips > Hair Pins
277
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Hair Wreaths
278
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Headbands
279
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Ponytail Holders
280
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Tiaras
281
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Wig Accessories
282
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Wig Accessories > Wig Caps
283
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Wig Accessories > Wig Glue & Tape
284
- Apparel & Accessories > Clothing Accessories > Hair Accessories > Wigs
285
- Apparel & Accessories > Clothing Accessories > Hand Muffs
286
- Apparel & Accessories > Clothing Accessories > Handkerchiefs
287
- Apparel & Accessories > Clothing Accessories > Hats
288
- Apparel & Accessories > Clothing Accessories > Headwear
289
- Apparel & Accessories > Clothing Accessories > Headwear > Fascinators
290
- Apparel & Accessories > Clothing Accessories > Headwear > Headdresses
291
- Apparel & Accessories > Clothing Accessories > Headwear > Turbans
292
- Apparel & Accessories > Clothing Accessories > Leg Warmers
293
- Apparel & Accessories > Clothing Accessories > Leis
294
- Apparel & Accessories > Clothing Accessories > Maternity Belts & Support Bands
295
- Apparel & Accessories > Clothing Accessories > Neck Gaiters
296
- Apparel & Accessories > Clothing Accessories > Neckties
297
- Apparel & Accessories > Clothing Accessories > Pinback Buttons
298
- Apparel & Accessories > Clothing Accessories > Sashes
299
- Apparel & Accessories > Clothing Accessories > Scarves & Shawls
300
- Apparel & Accessories > Clothing Accessories > Scarves & Shawls > Scarves
301
- Apparel & Accessories > Clothing Accessories > Scarves & Shawls > Shawls
302
- Apparel & Accessories > Clothing Accessories > Sunglasses
303
- Apparel & Accessories > Clothing Accessories > Suspenders
304
- Apparel & Accessories > Clothing Accessories > Tie Clips
305
- Apparel & Accessories > Clothing Accessories > Traditional Clothing Accessories
306
- Apparel & Accessories > Clothing Accessories > Traditional Clothing Accessories > Obis
307
- Apparel & Accessories > Clothing Accessories > Traditional Clothing Accessories > Tabi Socks
308
- Apparel & Accessories > Clothing Accessories > Wristbands
309
- Apparel & Accessories > Costumes & Accessories
310
- Apparel & Accessories > Costumes & Accessories > Costume Accessories
311
- Apparel & Accessories > Costumes & Accessories > Costume Accessories > Bald Caps
312
- Apparel & Accessories > Costumes & Accessories > Costume Accessories > Costume Accessory Sets
313
- Apparel & Accessories > Costumes & Accessories > Costume Accessories > Costume Capes
314
- Apparel & Accessories > Costumes & Accessories > Costume Accessories > Costume Gloves
315
- Apparel & Accessories > Costumes & Accessories > Costume Accessories > Costume Hats
316
- Apparel & Accessories > Costumes & Accessories > Costume Accessories > Costume Special Effects
317
- Apparel & Accessories > Costumes & Accessories > Costume Accessories > Costume Tobacco Products
318
- Apparel & Accessories > Costumes & Accessories > Costume Accessories > Pretend Jewelry
319
- Apparel & Accessories > Costumes & Accessories > Costume Shoes
320
- Apparel & Accessories > Costumes & Accessories > Costumes
321
- Apparel & Accessories > Costumes & Accessories > Masks
322
- Apparel & Accessories > Handbag & Wallet Accessories
323
- Apparel & Accessories > Handbag & Wallet Accessories > Checkbook Covers
324
- Apparel & Accessories > Handbag & Wallet Accessories > Keychains
325
- Apparel & Accessories > Handbag & Wallet Accessories > Lanyards
326
- Apparel & Accessories > Handbag & Wallet Accessories > Wallet Chains
327
- Apparel & Accessories > Handbags, Wallets & Cases
328
- Apparel & Accessories > Handbags, Wallets & Cases > Badge & Pass Holders
329
- Apparel & Accessories > Handbags, Wallets & Cases > Business Card Cases
330
- Apparel & Accessories > Handbags, Wallets & Cases > Handbags
331
- Apparel & Accessories > Handbags, Wallets & Cases > Wallets & Money Clips
332
- Apparel & Accessories > Jewelry
333
- Apparel & Accessories > Jewelry > Anklets
334
- Apparel & Accessories > Jewelry > Body Jewelry
335
- Apparel & Accessories > Jewelry > Bracelets
336
- Apparel & Accessories > Jewelry > Brooches & Lapel Pins
337
- Apparel & Accessories > Jewelry > Charms & Pendants
338
- Apparel & Accessories > Jewelry > Earrings
339
- Apparel & Accessories > Jewelry > Jewelry Sets
340
- Apparel & Accessories > Jewelry > Necklaces
341
- Apparel & Accessories > Jewelry > Rings
342
- Apparel & Accessories > Jewelry > Watch Accessories
343
- Apparel & Accessories > Jewelry > Watch Accessories > Watch Bands
344
- Apparel & Accessories > Jewelry > Watch Accessories > Watch Stickers & Decals
345
- Apparel & Accessories > Jewelry > Watch Accessories > Watch Winders
346
- Apparel & Accessories > Jewelry > Watches
347
- Apparel & Accessories > Shoe Accessories
348
- Apparel & Accessories > Shoe Accessories > Boot Liners
349
- Apparel & Accessories > Shoe Accessories > Gaiters
350
- Apparel & Accessories > Shoe Accessories > Shoe Covers
351
- Apparel & Accessories > Shoe Accessories > Shoelaces
352
- Apparel & Accessories > Shoe Accessories > Spurs
353
- Apparel & Accessories > Shoes
354
- Arts & Entertainment
355
- Arts & Entertainment > Event Tickets
356
- Arts & Entertainment > Hobbies & Creative Arts
357
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts
358
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Craft Kits
359
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Craft Kits > Candle Making Kits
360
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Craft Kits > Drawing & Painting Kits
361
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Craft Kits > Fabric Repair Kits
362
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Craft Kits > Incense Making Kits
363
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Craft Kits > Jewelry Making Kits
364
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Craft Kits > Mosaic Kits
365
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Craft Kits > Needlecraft Kits
366
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Craft Kits > Scrapbooking & Stamping Kits
367
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Craft Kits > Toy Craft Kits
368
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials
369
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Art & Craft Paper
370
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Art & Craft Paper > Cardstock & Scrapbooking Paper
371
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Art & Craft Paper > Cardstock & Scrapbooking Paper > Cardstock
372
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Art & Craft Paper > Cardstock & Scrapbooking Paper > Scrapbooking Paper
373
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Art & Craft Paper > Construction Paper
374
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Art & Craft Paper > Craft Foil
375
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Art & Craft Paper > Drawing & Painting Paper
376
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Art & Craft Paper > Origami Paper
377
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Art & Craft Paper > Transfer Paper
378
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Art & Craft Paper > Vellum Paper
379
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Fasteners & Closures
380
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Fasteners & Closures > Buttons & Snaps
381
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Fasteners & Closures > Clasps & Hooks
382
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Fasteners & Closures > Eyelets & Grommets
383
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Fasteners & Closures > Hook and Loop Fasteners
384
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Fasteners & Closures > Zipper Pulls
385
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Fasteners & Closures > Zippers
386
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Paint, Ink & Glaze
387
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Paint, Ink & Glaze > Art & Craft Paint
388
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Paint, Ink & Glaze > Art Fixatives
389
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Paint, Ink & Glaze > Art Ink
390
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Paint, Ink & Glaze > Ceramic & Pottery Glazes
391
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Paint, Ink & Glaze > Craft Dyes
392
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Paint, Ink & Glaze > Ink Pads
393
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Paint, Ink & Glaze > Paint Mediums
394
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Shapes & Bases
395
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Shapes & Bases > Craft Foam & Styrofoam
396
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Shapes & Bases > Craft Wood & Shapes
397
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Shapes & Bases > Papier Mache Shapes
398
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Craft Shapes & Bases > Wreath & Floral Frames
399
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Adhesives & Magnets
400
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Adhesives & Magnets > Craft & Office Glue
401
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Adhesives & Magnets > Craft Magnets
402
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Adhesives & Magnets > Decorative Tape
403
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Adhesives & Magnets > Floral Tape
404
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Adhesives & Magnets > Fusible Tape
405
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Fibers
406
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Fibers > Jewelry & Beading Cord
407
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Fibers > Thread & Floss
408
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Fibers > Unspun Fiber
409
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Fibers > Yarn
410
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Wire
411
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Wire > Craft Pipe Cleaners
412
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Wire > Floral Wire
413
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Crafting Wire > Jewelry & Beading Wire
414
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims
415
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Appliques & Patches
416
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Beads
417
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Bows & Yo-Yos
418
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Decorative Stickers
419
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Elastic
420
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Feathers
421
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Jewelry Findings
422
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Loose Stones
423
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Rhinestones & Flatbacks
424
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Ribbons & Trim
425
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Sequins & Glitter
426
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embellishments & Trims > Sew-in Labels
427
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Embossing Powder
428
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Filling & Padding Material
429
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Filling & Padding Material > Batting & Stuffing
430
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Filling & Padding Material > Filling Pellets
431
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Filling & Padding Material > Pillow Forms
432
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Leather & Vinyl
433
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Pottery & Sculpting Materials
434
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Pottery & Sculpting Materials > Clay & Modeling Dough
435
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Pottery & Sculpting Materials > Clay & Modeling Dough > Clay
436
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Pottery & Sculpting Materials > Clay & Modeling Dough > Modeling Dough
437
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Pottery & Sculpting Materials > Papier Mache Mixes
438
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Pottery & Sculpting Materials > Plaster Gauze
439
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Pottery & Sculpting Materials > Pottery Slips
440
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Raw Candle Wax
441
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Textiles
442
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Textiles > Crafting Canvas
443
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Textiles > Crafting Canvas > Needlecraft Canvas
444
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Textiles > Crafting Canvas > Painting Canvas
445
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Textiles > Crafting Canvas > Plastic Canvas
446
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Textiles > Fabric
447
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Textiles > Interfacing
448
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Textiles > Printable Fabric
449
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Wick Tabs
450
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Wicks
451
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tool Accessories
452
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tool Accessories > Craft Knife Blades
453
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tool Accessories > Craft Machine Cases & Covers
454
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tool Accessories > Sewing Machine Extension Tables
455
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tool Accessories > Sewing Machine Feet
456
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tool Accessories > Sewing Machine Replacement Parts
457
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tool Accessories > Spinning Wheel Accessories
458
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tool Accessories > Stamp Blocks
459
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools
460
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Blocking Mats
461
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Blocking Wires
462
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Color Mixing Tools
463
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Color Mixing Tools > Palette Knives
464
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Color Mixing Tools > Palettes
465
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Cutting & Embossing Tools
466
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Cutting & Embossing Tools > Craft & Office Scissors
467
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Cutting & Embossing Tools > Craft Cutters & Embossers
468
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Cutting & Embossing Tools > Craft Knives
469
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Cutting & Embossing Tools > Craft Scoring Tools
470
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Cutting & Embossing Tools > Embossing Heat Tools
471
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Cutting & Embossing Tools > Embossing Pens & Styluses
472
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Cutting & Embossing Tools > Seam Rippers
473
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Cutting & Embossing Tools > Thread & Yarn Cutters
474
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Decoration Makers
475
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Measuring & Marking Tools
476
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Measuring & Marking Tools > Art Brushes
477
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Measuring & Marking Tools > Brayer Rollers
478
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Measuring & Marking Tools > Decorative Stamps
479
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Measuring & Marking Tools > Drafting Compasses
480
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Measuring & Marking Tools > Screen Printing Squeegees
481
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Measuring & Marking Tools > Stencil Machines
482
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Measuring & Marking Tools > Stencils & Die Cuts
483
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Measuring & Marking Tools > Stitch Markers & Counters
484
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Measuring & Marking Tools > Textile Art Gauges & Rulers
485
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Craft Measuring & Marking Tools > Wood Burning Tools
486
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Cutting Mats
487
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Dress Forms
488
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Felting Pads & Mats
489
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Frames, Hoops & Stretchers
490
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Glue Guns
491
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Light Boxes
492
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Needles & Hooks
493
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Needles & Hooks > Crochet Hooks
494
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Needles & Hooks > Hand-Sewing Needles
495
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Needles & Hooks > Knitting Needles
496
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Needles & Hooks > Latch & Locker Hooks
497
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Needles & Hooks > Sewing Machine Needles
498
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Safety Pins
499
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Straight Pins
500
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Textile Craft Machines
501
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Textile Craft Machines > Felting Needles & Machines
502
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Textile Craft Machines > Hand Looms
503
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Textile Craft Machines > Mechanical Looms
504
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Textile Craft Machines > Sewing Machines
505
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Textile Craft Machines > Spinning Wheels
506
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thimbles & Sewing Palms
507
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thimbles & Sewing Palms > Sewing Palms
508
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thimbles & Sewing Palms > Thimbles
509
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thread & Yarn Tools
510
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thread & Yarn Tools > Fiber Cards & Brushes
511
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thread & Yarn Tools > Hand Spindles
512
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thread & Yarn Tools > Needle Threaders
513
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thread & Yarn Tools > Thread & Yarn Guides
514
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thread & Yarn Tools > Thread & Yarn Spools
515
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thread & Yarn Tools > Thread, Yarn & Bobbin Winders
516
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thread & Yarn Tools > Weaving Beaters
517
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Tools > Thread & Yarn Tools > Weaving Shuttles
518
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Craft Organization
519
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Craft Organization > Needle, Pin & Hook Organizers
520
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Craft Organization > Sewing Baskets & Kits
521
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Craft Organization > Thread & Yarn Organizers
522
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Crafting Patterns & Molds
523
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Crafting Patterns & Molds > Beading Patterns
524
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Crafting Patterns & Molds > Craft Molds
525
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Crafting Patterns & Molds > Felting Molds
526
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Crafting Patterns & Molds > Needlecraft Patterns
527
- Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Crafting Patterns & Molds > Sewing Patterns
528
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles
529
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Autographs
530
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Collectible Coins & Currency
531
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Collectible Coins & Currency > Collectible Banknotes
532
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Collectible Coins & Currency > Collectible Coins
533
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Collectible Trading Cards
534
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Collectible Weapons
535
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Collectible Weapons > Collectible Guns
536
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Collectible Weapons > Collectible Knives
537
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Collectible Weapons > Collectible Swords
538
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Collectible Weapons > Sword Stands & Displays
539
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Postage Stamps
540
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Rocks & Fossils
541
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Scale Model Accessories
542
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Scale Models
543
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Seal Stamps
544
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles
545
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Autographed Sports Paraphernalia
546
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Autographed Sports Paraphernalia > Auto Racing Autographed Paraphernalia
547
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Autographed Sports Paraphernalia > Baseball & Softball Autographed Paraphernalia
548
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Autographed Sports Paraphernalia > Basketball Autographed Paraphernalia
549
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Autographed Sports Paraphernalia > Boxing Autographed Paraphernalia
550
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Autographed Sports Paraphernalia > Football Autographed Paraphernalia
551
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Autographed Sports Paraphernalia > Hockey Autographed Paraphernalia
552
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Autographed Sports Paraphernalia > Soccer Autographed Paraphernalia
553
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Autographed Sports Paraphernalia > Tennis Autographed Sports Paraphernalia
554
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Sports Fan Accessories
555
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Sports Fan Accessories > Auto Racing Fan Accessories
556
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Sports Fan Accessories > Baseball & Softball Fan Accessories
557
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Sports Fan Accessories > Basketball Fan Accessories
558
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Sports Fan Accessories > Football Fan Accessories
559
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Sports Fan Accessories > Hockey Fan Accessories
560
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Sports Fan Accessories > Soccer Fan Accessories
561
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Sports Collectibles > Sports Fan Accessories > Tennis Fan Accessories
562
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles > Vintage Advertisements
563
- Arts & Entertainment > Hobbies & Creative Arts > Homebrewing & Winemaking Supplies
564
- Arts & Entertainment > Hobbies & Creative Arts > Homebrewing & Winemaking Supplies > Beer Brewing Grains & Malts
565
- Arts & Entertainment > Hobbies & Creative Arts > Homebrewing & Winemaking Supplies > Bottling Bottles
566
- Arts & Entertainment > Hobbies & Creative Arts > Homebrewing & Winemaking Supplies > Homebrewing & Winemaking Kits
567
- Arts & Entertainment > Hobbies & Creative Arts > Homebrewing & Winemaking Supplies > Wine Making
568
- Arts & Entertainment > Hobbies & Creative Arts > Juggling
569
- Arts & Entertainment > Hobbies & Creative Arts > Magic & Novelties
570
- Arts & Entertainment > Hobbies & Creative Arts > Model Making
571
- Arts & Entertainment > Hobbies & Creative Arts > Model Making > Model Rocketry
572
- Arts & Entertainment > Hobbies & Creative Arts > Model Making > Model Train Accessories
573
- Arts & Entertainment > Hobbies & Creative Arts > Model Making > Model Trains & Train Sets
574
- Arts & Entertainment > Hobbies & Creative Arts > Model Making > Scale Model Kits
575
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories
576
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories
577
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Care & Cleaning
578
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Care & Cleaning > Brass Instrument Care Kits
579
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Care & Cleaning > Brass Instrument Cleaners & Sanitizers
580
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Care & Cleaning > Brass Instrument Cleaning Tools
581
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Care & Cleaning > Brass Instrument Guards
582
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Care & Cleaning > Brass Instrument Lubricants
583
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Care & Cleaning > Brass Instrument Polishing Cloths
584
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Cases & Gigbags
585
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Mouthpieces
586
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Mutes
587
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Replacement Parts
588
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Brass Instrument Accessories > Brass Instrument Straps & Stands
589
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Conductor Batons
590
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Electronic Tuners
591
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Metronomes
592
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Music Benches & Stools
593
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Music Lyres & Flip Folders
594
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Music Stand Accessories
595
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Music Stand Accessories > Music Stand Bags
596
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Music Stand Accessories > Music Stand Lights
597
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Music Stand Accessories > Sheet Music Clips
598
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Music Stands
599
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Instrument Amplifier Accessories
600
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Instrument Amplifier Accessories > Musical Instrument Amplifier Cabinets
601
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Instrument Amplifier Accessories > Musical Instrument Amplifier Covers & Cases
602
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Instrument Amplifier Accessories > Musical Instrument Amplifier Footswitches
603
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Instrument Amplifier Accessories > Musical Instrument Amplifier Knobs
604
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Instrument Amplifier Accessories > Musical Instrument Amplifier Stands
605
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Instrument Amplifier Accessories > Musical Instrument Amplifier Tubes
606
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Instrument Amplifiers
607
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Keyboard Accessories
608
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Keyboard Accessories > Musical Keyboard Bags & Cases
609
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Keyboard Accessories > Musical Keyboard Stands
610
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Musical Keyboard Accessories > Sustain Pedals
611
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories
612
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Cymbal & Drum Cases
613
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Cymbal & Drum Mutes
614
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Drum Heads
615
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Drum Keys
616
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Drum Kit Hardware
617
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Drum Kit Hardware > Bass Drum Beaters
618
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Drum Kit Hardware > Drum Kit Mounting Hardware
619
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Drum Kit Hardware > Drum Pedals
620
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Drum Stick & Brush Accessories
621
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Drum Stick & Brush Accessories > Drum Stick & Brush Bags & Holders
622
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Drum Sticks & Brushes
623
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Electronic Drum Modules
624
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Hand Percussion Accessories
625
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Hand Percussion Accessories > Hand Percussion Bags & Cases
626
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Hand Percussion Accessories > Hand Percussion Stands & Mounts
627
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Percussion Mallets
628
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Percussion Accessories > Percussion Stands
629
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories
630
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories
631
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Acoustic Guitar Pickups
632
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Capos
633
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Electric Guitar Pickups
634
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Guitar Cases & Gig Bags
635
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Guitar Fittings & Parts
636
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Guitar Humidifiers
637
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Guitar Picks
638
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Guitar Slides
639
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Guitar Stands
640
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Guitar Straps
641
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Guitar String Winders
642
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Guitar Strings
643
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Guitar Accessories > Guitar Tuning Pegs
644
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Orchestral String Instrument Accessories
645
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Orchestral String Instrument Accessories > Orchestral String Instrument Bow Cases
646
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Orchestral String Instrument Accessories > Orchestral String Instrument Bows
647
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Orchestral String Instrument Accessories > Orchestral String Instrument Cases
648
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Orchestral String Instrument Accessories > Orchestral String Instrument Fittings & Parts
649
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Orchestral String Instrument Accessories > Orchestral String Instrument Mutes
650
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Orchestral String Instrument Accessories > Orchestral String Instrument Pickups
651
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Orchestral String Instrument Accessories > Orchestral String Instrument Stands
652
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > Orchestral String Instrument Accessories > Orchestral String Instrument Strings
653
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > String Instrument Care & Cleaning
654
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > String Instrument Care & Cleaning > Bow Rosin
655
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > String Instrument Care & Cleaning > String Instrument Cleaning Cloths
656
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > String Instrument Accessories > String Instrument Care & Cleaning > String Instrument Polish
657
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories
658
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Bassoon Accessories
659
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Bassoon Accessories > Bassoon Care & Cleaning
660
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Bassoon Accessories > Bassoon Care & Cleaning > Bassoon Swabs
661
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Bassoon Accessories > Bassoon Cases & Gigbags
662
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Bassoon Accessories > Bassoon Parts
663
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Bassoon Accessories > Bassoon Parts > Bassoon Bocals
664
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Bassoon Accessories > Bassoon Parts > Bassoon Small Parts
665
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Bassoon Accessories > Bassoon Reeds
666
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Bassoon Accessories > Bassoon Stands
667
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Bassoon Accessories > Bassoon Straps & Supports
668
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories
669
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Care & Cleaning
670
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Care & Cleaning > Clarinet Care Kits
671
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Care & Cleaning > Clarinet Pad Savers
672
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Care & Cleaning > Clarinet Swabs
673
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Cases & Gigbags
674
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Ligatures & Caps
675
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Parts
676
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Parts > Clarinet Barrels
677
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Parts > Clarinet Bells
678
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Parts > Clarinet Mouthpieces
679
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Parts > Clarinet Small Parts
680
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Pegs & Stands
681
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Reeds
682
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Clarinet Accessories > Clarinet Straps & Supports
683
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Flute Accessories
684
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Flute Accessories > Flute Care & Cleaning
685
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Flute Accessories > Flute Care & Cleaning > Flute Care Kits
686
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Flute Accessories > Flute Care & Cleaning > Flute Cleaning Rods
687
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Flute Accessories > Flute Care & Cleaning > Flute Swabs
688
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Flute Accessories > Flute Cases & Gigbags
689
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Flute Accessories > Flute Parts
690
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Flute Accessories > Flute Parts > Flute Headjoints
691
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Flute Accessories > Flute Parts > Flute Small Parts
692
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Flute Accessories > Flute Pegs & Stands
693
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Harmonica Accessories
694
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Harmonica Accessories > Harmonica Cases
695
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Harmonica Accessories > Harmonica Holders
696
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Oboe & English Horn Accessories
697
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Oboe & English Horn Accessories > Oboe Care & Cleaning
698
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Oboe & English Horn Accessories > Oboe Care & Cleaning > Oboe Care Kits
699
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Oboe & English Horn Accessories > Oboe Care & Cleaning > Oboe Swabs
700
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Oboe & English Horn Accessories > Oboe Cases & Gigbags
701
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Oboe & English Horn Accessories > Oboe Parts
702
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Oboe & English Horn Accessories > Oboe Parts > Oboe Small Parts
703
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Oboe & English Horn Accessories > Oboe Pegs & Stands
704
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Oboe & English Horn Accessories > Oboe Reeds
705
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Oboe & English Horn Accessories > Oboe Straps & Supports
706
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Recorder Accessories
707
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Recorder Accessories > Recorder Care & Cleaning
708
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Recorder Accessories > Recorder Cases
709
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Recorder Accessories > Recorder Parts
710
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories
711
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Care & Cleaning
712
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Care & Cleaning > Saxophone Care Kits
713
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Care & Cleaning > Saxophone Pad Savers
714
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Care & Cleaning > Saxophone Swabs
715
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Cases & Gigbags
716
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Ligatures & Caps
717
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Parts
718
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Parts > Saxophone Mouthpieces
719
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Parts > Saxophone Necks
720
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Parts > Saxophone Small Parts
721
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Pegs & Stands
722
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Reeds
723
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Saxophone Accessories > Saxophone Straps & Supports
724
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Woodwind Cork Grease
725
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Woodwind Polishing Cloths
726
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Woodwind Reed Cases
727
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instrument & Orchestra Accessories > Woodwind Instrument Accessories > Woodwind Reed Knives
728
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments
729
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Accordions & Concertinas
730
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Bagpipes
731
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Brass Instruments
732
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Brass Instruments > Alto & Baritone Horns
733
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Brass Instruments > Euphoniums
734
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Brass Instruments > French Horns
735
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Brass Instruments > Trombones
736
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Brass Instruments > Trumpets & Cornets
737
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Brass Instruments > Tubas
738
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Electronic Musical Instruments
739
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Electronic Musical Instruments > Audio Samplers
740
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Electronic Musical Instruments > MIDI Controllers
741
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Electronic Musical Instruments > Musical Keyboards
742
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Electronic Musical Instruments > Sound Synthesizers
743
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion
744
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Bass Drums
745
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Cymbals
746
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Drum Kits
747
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Electronic Drums
748
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Glockenspiels & Xylophones
749
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Gongs
750
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion
751
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Claves & Castanets
752
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Finger & Hand Cymbals
753
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Hand Bells & Chimes
754
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Hand Drums
755
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Hand Drums > Bongos
756
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Hand Drums > Cajons
757
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Hand Drums > Congas
758
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Hand Drums > Frame Drums
759
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Hand Drums > Goblet Drums
760
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Hand Drums > Tablas
761
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Hand Drums > Talking Drums
762
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Musical Blocks
763
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Musical Cowbells
764
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Musical Scrapers & Ratchets
765
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Musical Shakers
766
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Musical Triangles
767
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Tambourines
768
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hand Percussion > Vibraslaps
769
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Hi-Hats
770
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Practice Pads
771
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Snare Drums
772
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Percussion > Tom-Toms
773
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Pianos
774
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > String Instruments
775
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > String Instruments > Cellos
776
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > String Instruments > Guitars
777
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > String Instruments > Harps
778
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > String Instruments > Upright Basses
779
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > String Instruments > Violas
780
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > String Instruments > Violins
781
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds
782
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Bassoons
783
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Clarinets
784
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Flutes
785
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Flutophones
786
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Harmonicas
787
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Jew's Harps
788
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Melodicas
789
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Musical Pipes
790
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Oboes & English Horns
791
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Ocarinas
792
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Recorders
793
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Saxophones
794
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Tin Whistles
795
- Arts & Entertainment > Hobbies & Creative Arts > Musical Instruments > Woodwinds > Train Whistles
796
- Arts & Entertainment > Party & Celebration
797
- Arts & Entertainment > Party & Celebration > Gift Giving
798
- Arts & Entertainment > Party & Celebration > Gift Giving > Corsage & Boutonnière Pins
799
- Arts & Entertainment > Party & Celebration > Gift Giving > Corsages & Boutonnières
800
- Arts & Entertainment > Party & Celebration > Gift Giving > Fresh Cut Flowers
801
- Arts & Entertainment > Party & Celebration > Gift Giving > Gift Cards & Certificates
802
- Arts & Entertainment > Party & Celebration > Gift Giving > Gift Wrapping
803
- Arts & Entertainment > Party & Celebration > Gift Giving > Gift Wrapping > Gift Bags
804
- Arts & Entertainment > Party & Celebration > Gift Giving > Gift Wrapping > Gift Boxes & Tins
805
- Arts & Entertainment > Party & Celebration > Gift Giving > Gift Wrapping > Gift Tags & Labels
806
- Arts & Entertainment > Party & Celebration > Gift Giving > Gift Wrapping > Tissue Paper
807
- Arts & Entertainment > Party & Celebration > Gift Giving > Gift Wrapping > Wrapping Paper
808
- Arts & Entertainment > Party & Celebration > Gift Giving > Greeting & Note Cards
809
- Arts & Entertainment > Party & Celebration > Party Supplies
810
- Arts & Entertainment > Party & Celebration > Party Supplies > Advice Cards
811
- Arts & Entertainment > Party & Celebration > Party Supplies > Balloon Kits
812
- Arts & Entertainment > Party & Celebration > Party Supplies > Balloons
813
- Arts & Entertainment > Party & Celebration > Party Supplies > Banners
814
- Arts & Entertainment > Party & Celebration > Party Supplies > Birthday Candles
815
- Arts & Entertainment > Party & Celebration > Party Supplies > Chair Sashes
816
- Arts & Entertainment > Party & Celebration > Party Supplies > Cocktail Decorations
817
- Arts & Entertainment > Party & Celebration > Party Supplies > Confetti
818
- Arts & Entertainment > Party & Celebration > Party Supplies > Decorative Pom-Poms
819
- Arts & Entertainment > Party & Celebration > Party Supplies > Drinking Games
820
- Arts & Entertainment > Party & Celebration > Party Supplies > Drinking Games > Beer Pong
821
- Arts & Entertainment > Party & Celebration > Party Supplies > Drinking Games > Beer Pong > Beer Pong Tables
822
- Arts & Entertainment > Party & Celebration > Party Supplies > Drinking Straws & Stirrers
823
- Arts & Entertainment > Party & Celebration > Party Supplies > Envelope Seals
824
- Arts & Entertainment > Party & Celebration > Party Supplies > Event Programs
825
- Arts & Entertainment > Party & Celebration > Party Supplies > Fireworks & Firecrackers
826
- Arts & Entertainment > Party & Celebration > Party Supplies > Inflatable Party Decorations
827
- Arts & Entertainment > Party & Celebration > Party Supplies > Invitations
828
- Arts & Entertainment > Party & Celebration > Party Supplies > Noisemakers & Party Blowers
829
- Arts & Entertainment > Party & Celebration > Party Supplies > Party Favors
830
- Arts & Entertainment > Party & Celebration > Party Supplies > Party Favors > Wedding Favors
831
- Arts & Entertainment > Party & Celebration > Party Supplies > Party Games
832
- Arts & Entertainment > Party & Celebration > Party Supplies > Party Hats
833
- Arts & Entertainment > Party & Celebration > Party Supplies > Party Streamers & Curtains
834
- Arts & Entertainment > Party & Celebration > Party Supplies > Party Supply Kits
835
- Arts & Entertainment > Party & Celebration > Party Supplies > Piñatas
836
- Arts & Entertainment > Party & Celebration > Party Supplies > Place Card Holders
837
- Arts & Entertainment > Party & Celebration > Party Supplies > Place Cards
838
- Arts & Entertainment > Party & Celebration > Party Supplies > Response Cards
839
- Arts & Entertainment > Party & Celebration > Party Supplies > Sparklers
840
- Arts & Entertainment > Party & Celebration > Party Supplies > Special Occasion Card Boxes & Holders
841
- Arts & Entertainment > Party & Celebration > Party Supplies > Spray String
842
- Arts & Entertainment > Party & Celebration > Special Effects
843
- Arts & Entertainment > Party & Celebration > Special Effects > Disco Balls
844
- Arts & Entertainment > Party & Celebration > Special Effects > Fog Machines
845
- Arts & Entertainment > Party & Celebration > Special Effects > Special Effects Controllers
846
- Arts & Entertainment > Party & Celebration > Special Effects > Special Effects Light Stands
847
- Arts & Entertainment > Party & Celebration > Special Effects > Special Effects Lighting
848
- Arts & Entertainment > Party & Celebration > Trophies & Awards
849
- Arts & Entertainment > Party & Celebration > Trophies & Awards > Award Certificates
850
- Arts & Entertainment > Party & Celebration > Trophies & Awards > Award Pins & Medals
851
- Arts & Entertainment > Party & Celebration > Trophies & Awards > Award Plaques
852
- Arts & Entertainment > Party & Celebration > Trophies & Awards > Award Ribbons
853
- Arts & Entertainment > Party & Celebration > Trophies & Awards > Trophies
854
- Baby & Toddler
855
- Baby & Toddler > Baby Bathing
856
- Baby & Toddler > Baby Bathing > Baby Bathtubs & Bath Seats
857
- Baby & Toddler > Baby Bathing > Shower Visors
858
- Baby & Toddler > Baby Gift Sets
859
- Baby & Toddler > Baby Health
860
- Baby & Toddler > Baby Health > Baby Health & Grooming Kits
861
- Baby & Toddler > Baby Health > Nasal Aspirators
862
- Baby & Toddler > Baby Health > Pacifier Clips & Holders
863
- Baby & Toddler > Baby Health > Pacifier Wipes
864
- Baby & Toddler > Baby Health > Pacifiers & Teethers
865
- Baby & Toddler > Baby Safety
866
- Baby & Toddler > Baby Safety > Baby & Pet Gate Accessories
867
- Baby & Toddler > Baby Safety > Baby & Pet Gates
868
- Baby & Toddler > Baby Safety > Baby Monitors
869
- Baby & Toddler > Baby Safety > Baby Safety Harnesses & Leashes
870
- Baby & Toddler > Baby Safety > Baby Safety Locks & Guards
871
- Baby & Toddler > Baby Safety > Baby Safety Rails
872
- Baby & Toddler > Baby Toys & Activity Equipment
873
- Baby & Toddler > Baby Toys & Activity Equipment > Alphabet Toys
874
- Baby & Toddler > Baby Toys & Activity Equipment > Baby Activity Toys
875
- Baby & Toddler > Baby Toys & Activity Equipment > Baby Bouncers & Rockers
876
- Baby & Toddler > Baby Toys & Activity Equipment > Baby Jumpers & Swings
877
- Baby & Toddler > Baby Toys & Activity Equipment > Baby Mobile Accessories
878
- Baby & Toddler > Baby Toys & Activity Equipment > Baby Mobiles
879
- Baby & Toddler > Baby Toys & Activity Equipment > Baby Soothers
880
- Baby & Toddler > Baby Toys & Activity Equipment > Baby Walkers & Entertainers
881
- Baby & Toddler > Baby Toys & Activity Equipment > Play Mats & Gyms
882
- Baby & Toddler > Baby Toys & Activity Equipment > Play Mats & Gyms > Play Gyms
883
- Baby & Toddler > Baby Toys & Activity Equipment > Play Mats & Gyms > Play Mats
884
- Baby & Toddler > Baby Toys & Activity Equipment > Play Yards
885
- Baby & Toddler > Baby Toys & Activity Equipment > Push & Pull Toys
886
- Baby & Toddler > Baby Toys & Activity Equipment > Rattles
887
- Baby & Toddler > Baby Toys & Activity Equipment > Sorting & Stacking Toys
888
- Baby & Toddler > Baby Transport
889
- Baby & Toddler > Baby Transport > Baby & Toddler Car Seats
890
- Baby & Toddler > Baby Transport > Baby Carriers
891
- Baby & Toddler > Baby Transport > Baby Strollers
892
- Baby & Toddler > Baby Transport Accessories
893
- Baby & Toddler > Baby Transport Accessories > Baby & Toddler Car Seat Accessories
894
- Baby & Toddler > Baby Transport Accessories > Baby Carrier Accessories
895
- Baby & Toddler > Baby Transport Accessories > Baby Stroller Accessories
896
- Baby & Toddler > Baby Transport Accessories > Baby Transport Liners & Sacks
897
- Baby & Toddler > Baby Transport Accessories > Shopping Cart & High Chair Covers
898
- Baby & Toddler > Diapering
899
- Baby & Toddler > Diapering > Baby Wipe Dispensers & Warmers
900
- Baby & Toddler > Diapering > Baby Wipes
901
- Baby & Toddler > Diapering > Changing Mat & Tray Covers
902
- Baby & Toddler > Diapering > Changing Mats & Trays
903
- Baby & Toddler > Diapering > Diaper Kits
904
- Baby & Toddler > Diapering > Diaper Liners
905
- Baby & Toddler > Diapering > Diaper Organizers
906
- Baby & Toddler > Diapering > Diaper Pail Accessories
907
- Baby & Toddler > Diapering > Diaper Pails
908
- Baby & Toddler > Diapering > Diaper Rash Treatments
909
- Baby & Toddler > Diapering > Diaper Wet Bags
910
- Baby & Toddler > Diapering > Diapers
911
- Baby & Toddler > Nursing & Feeding
912
- Baby & Toddler > Nursing & Feeding > Baby & Toddler Food
913
- Baby & Toddler > Nursing & Feeding > Baby & Toddler Food > Baby Cereal
914
- Baby & Toddler > Nursing & Feeding > Baby & Toddler Food > Baby Drinks
915
- Baby & Toddler > Nursing & Feeding > Baby & Toddler Food > Baby Food
916
- Baby & Toddler > Nursing & Feeding > Baby & Toddler Food > Baby Formula
917
- Baby & Toddler > Nursing & Feeding > Baby & Toddler Food > Baby Snacks
918
- Baby & Toddler > Nursing & Feeding > Baby & Toddler Food > Toddler Nutrition Drinks & Shakes
919
- Baby & Toddler > Nursing & Feeding > Baby Bottle Nipples & Liners
920
- Baby & Toddler > Nursing & Feeding > Baby Bottle Nipples & Liners > Baby Bottle Liners
921
- Baby & Toddler > Nursing & Feeding > Baby Bottle Nipples & Liners > Baby Bottle Nipples
922
- Baby & Toddler > Nursing & Feeding > Baby Bottles
923
- Baby & Toddler > Nursing & Feeding > Baby Care Timers
924
- Baby & Toddler > Nursing & Feeding > Bibs
925
- Baby & Toddler > Nursing & Feeding > Bottle Warmers & Sterilizers
926
- Baby & Toddler > Nursing & Feeding > Breast Milk Storage Containers
927
- Baby & Toddler > Nursing & Feeding > Breast Pump Accessories
928
- Baby & Toddler > Nursing & Feeding > Breast Pumps
929
- Baby & Toddler > Nursing & Feeding > Burp Cloths
930
- Baby & Toddler > Nursing & Feeding > Nursing Covers
931
- Baby & Toddler > Nursing & Feeding > Nursing Pads & Shields
932
- Baby & Toddler > Nursing & Feeding > Nursing Pillow Covers
933
- Baby & Toddler > Nursing & Feeding > Nursing Pillows
934
- Baby & Toddler > Nursing & Feeding > Sippy Cups
935
- Baby & Toddler > Potty Training
936
- Baby & Toddler > Potty Training > Potty Seats
937
- Baby & Toddler > Potty Training > Potty Training Kits
938
- Baby & Toddler > Swaddling & Receiving Blankets
939
- Baby & Toddler > Swaddling & Receiving Blankets > Receiving Blankets
940
- Baby & Toddler > Swaddling & Receiving Blankets > Swaddling Blankets
941
- Business & Industrial
942
- Business & Industrial > Advertising & Marketing
943
- Business & Industrial > Advertising & Marketing > Brochures
944
- Business & Industrial > Advertising & Marketing > Trade Show Counters
945
- Business & Industrial > Advertising & Marketing > Trade Show Displays
946
- Business & Industrial > Agriculture
947
- Business & Industrial > Agriculture > Animal Husbandry
948
- Business & Industrial > Agriculture > Animal Husbandry > Egg Incubators
949
- Business & Industrial > Agriculture > Animal Husbandry > Livestock Feed
950
- Business & Industrial > Agriculture > Animal Husbandry > Livestock Feed > Cattle Feed
951
- Business & Industrial > Agriculture > Animal Husbandry > Livestock Feed > Chicken Feed
952
- Business & Industrial > Agriculture > Animal Husbandry > Livestock Feed > Goat & Sheep Feed
953
- Business & Industrial > Agriculture > Animal Husbandry > Livestock Feed > Mixed Herd Feed
954
- Business & Industrial > Agriculture > Animal Husbandry > Livestock Feed > Pig Feed
955
- Business & Industrial > Agriculture > Animal Husbandry > Livestock Feeders & Waterers
956
- Business & Industrial > Agriculture > Animal Husbandry > Livestock Halters
957
- Business & Industrial > Automation Control Components
958
- Business & Industrial > Automation Control Components > Programmable Logic Controllers
959
- Business & Industrial > Automation Control Components > Variable Frequency & Adjustable Speed Drives
960
- Business & Industrial > Construction
961
- Business & Industrial > Construction > Surveying
962
- Business & Industrial > Construction > Traffic Cones & Barrels
963
- Business & Industrial > Dentistry
964
- Business & Industrial > Dentistry > Dental Cement
965
- Business & Industrial > Dentistry > Dental Tools
966
- Business & Industrial > Dentistry > Dental Tools > Dappen Dishes
967
- Business & Industrial > Dentistry > Dental Tools > Dental Mirrors
968
- Business & Industrial > Dentistry > Dental Tools > Dental Tool Sets
969
- Business & Industrial > Dentistry > Dental Tools > Prophy Cups
970
- Business & Industrial > Dentistry > Dental Tools > Prophy Heads
971
- Business & Industrial > Dentistry > Prophy Paste
972
- Business & Industrial > Film & Television
973
- Business & Industrial > Finance & Insurance
974
- Business & Industrial > Finance & Insurance > Bullion
975
- Business & Industrial > Food Service
976
- Business & Industrial > Food Service > Bakery Boxes
977
- Business & Industrial > Food Service > Bus Tubs
978
- Business & Industrial > Food Service > Check Presenters
979
- Business & Industrial > Food Service > Concession Food Containers
980
- Business & Industrial > Food Service > Disposable Lids
981
- Business & Industrial > Food Service > Disposable Serveware
982
- Business & Industrial > Food Service > Disposable Serveware > Disposable Serving Trays
983
- Business & Industrial > Food Service > Disposable Tableware
984
- Business & Industrial > Food Service > Disposable Tableware > Disposable Bowls
985
- Business & Industrial > Food Service > Disposable Tableware > Disposable Cups
986
- Business & Industrial > Food Service > Disposable Tableware > Disposable Cutlery
987
- Business & Industrial > Food Service > Disposable Tableware > Disposable Plates
988
- Business & Industrial > Food Service > Food Service Baskets
989
- Business & Industrial > Food Service > Food Service Carts
990
- Business & Industrial > Food Service > Food Washers & Dryers
991
- Business & Industrial > Food Service > Hot Dog Rollers
992
- Business & Industrial > Food Service > Ice Bins
993
- Business & Industrial > Food Service > Plate & Dish Warmers
994
- Business & Industrial > Food Service > Sneeze Guards
995
- Business & Industrial > Food Service > Take-Out Containers
996
- Business & Industrial > Food Service > Tilt Skillets
997
- Business & Industrial > Food Service > Vending Machines
998
- Business & Industrial > Forestry & Logging
999
- Business & Industrial > Hairdressing & Cosmetology
1000
- Business & Industrial > Hairdressing & Cosmetology > Hairdressing Capes & Neck Covers
1001
- Business & Industrial > Hairdressing & Cosmetology > Pedicure Chairs
1002
- Business & Industrial > Hairdressing & Cosmetology > Salon Chairs
1003
- Business & Industrial > Heavy Machinery
1004
- Business & Industrial > Heavy Machinery > Chippers
1005
- Business & Industrial > Hotel & Hospitality
1006
- Business & Industrial > Industrial Storage
1007
- Business & Industrial > Industrial Storage > Industrial Cabinets
1008
- Business & Industrial > Industrial Storage > Industrial Shelving
1009
- Business & Industrial > Industrial Storage > Shipping Containers
1010
- Business & Industrial > Industrial Storage > Wire Partitions, Enclosures & Doors
1011
- Business & Industrial > Industrial Storage Accessories
1012
- Business & Industrial > Janitorial Carts & Caddies
1013
- Business & Industrial > Law Enforcement
1014
- Business & Industrial > Law Enforcement > Cuffs
1015
- Business & Industrial > Law Enforcement > Metal Detectors
1016
- Business & Industrial > Manufacturing
1017
- Business & Industrial > Material Handling
1018
- Business & Industrial > Material Handling > Conveyors
1019
- Business & Industrial > Material Handling > Lifts & Hoists
1020
- Business & Industrial > Material Handling > Lifts & Hoists > Hoists, Cranes & Trolleys
1021
- Business & Industrial > Material Handling > Lifts & Hoists > Jacks & Lift Trucks
1022
- Business & Industrial > Material Handling > Lifts & Hoists > Personnel Lifts
1023
- Business & Industrial > Material Handling > Lifts & Hoists > Pulleys, Blocks & Sheaves
1024
- Business & Industrial > Material Handling > Lifts & Hoists > Winches
1025
- Business & Industrial > Material Handling > Pallets & Loading Platforms
1026
- Business & Industrial > Medical
1027
- Business & Industrial > Medical > Hospital Curtains
1028
- Business & Industrial > Medical > Hospital Gowns
1029
- Business & Industrial > Medical > Medical Bedding
1030
- Business & Industrial > Medical > Medical Equipment
1031
- Business & Industrial > Medical > Medical Equipment > Automated External Defibrillators
1032
- Business & Industrial > Medical > Medical Equipment > Gait Belts
1033
- Business & Industrial > Medical > Medical Equipment > Medical Reflex Hammers & Tuning Forks
1034
- Business & Industrial > Medical > Medical Equipment > Medical Stretchers & Gurneys
1035
- Business & Industrial > Medical > Medical Equipment > Otoscopes & Ophthalmoscopes
1036
- Business & Industrial > Medical > Medical Equipment > Patient Lifts
1037
- Business & Industrial > Medical > Medical Equipment > Stethoscopes
1038
- Business & Industrial > Medical > Medical Equipment > Vital Signs Monitor Accessories
1039
- Business & Industrial > Medical > Medical Equipment > Vital Signs Monitors
1040
- Business & Industrial > Medical > Medical Furniture
1041
- Business & Industrial > Medical > Medical Furniture > Chiropractic Tables
1042
- Business & Industrial > Medical > Medical Furniture > Examination Chairs & Tables
1043
- Business & Industrial > Medical > Medical Furniture > Homecare & Hospital Beds
1044
- Business & Industrial > Medical > Medical Furniture > Medical Cabinets
1045
- Business & Industrial > Medical > Medical Furniture > Medical Carts
1046
- Business & Industrial > Medical > Medical Furniture > Medical Carts > Crash Carts
1047
- Business & Industrial > Medical > Medical Furniture > Medical Carts > IV Poles & Carts
1048
- Business & Industrial > Medical > Medical Furniture > Surgical Tables
1049
- Business & Industrial > Medical > Medical Instruments
1050
- Business & Industrial > Medical > Medical Instruments > Medical Forceps
1051
- Business & Industrial > Medical > Medical Instruments > Scalpel Blades
1052
- Business & Industrial > Medical > Medical Instruments > Scalpels
1053
- Business & Industrial > Medical > Medical Instruments > Surgical Needles & Sutures
1054
- Business & Industrial > Medical > Medical Supplies
1055
- Business & Industrial > Medical > Medical Supplies > Disposable Gloves
1056
- Business & Industrial > Medical > Medical Supplies > Finger Cots
1057
- Business & Industrial > Medical > Medical Supplies > Medical Needles & Syringes
1058
- Business & Industrial > Medical > Medical Supplies > Medical Needles & Syringes > Medical Needle & Syringe Sets
1059
- Business & Industrial > Medical > Medical Supplies > Medical Needles & Syringes > Medical Needles
1060
- Business & Industrial > Medical > Medical Supplies > Medical Needles & Syringes > Medical Syringes
1061
- Business & Industrial > Medical > Medical Supplies > Ostomy Supplies
1062
- Business & Industrial > Medical > Medical Supplies > Tongue Depressors
1063
- Business & Industrial > Medical > Medical Teaching Equipment
1064
- Business & Industrial > Medical > Medical Teaching Equipment > Medical & Emergency Response Training Mannequins
1065
- Business & Industrial > Medical > Scrub Caps
1066
- Business & Industrial > Medical > Scrubs
1067
- Business & Industrial > Medical > Surgical Gowns
1068
- Business & Industrial > Mining & Quarrying
1069
- Business & Industrial > Piercing & Tattooing
1070
- Business & Industrial > Piercing & Tattooing > Piercing Supplies
1071
- Business & Industrial > Piercing & Tattooing > Piercing Supplies > Piercing Needles
1072
- Business & Industrial > Piercing & Tattooing > Tattooing Supplies
1073
- Business & Industrial > Piercing & Tattooing > Tattooing Supplies > Tattoo Cover-Ups
1074
- Business & Industrial > Piercing & Tattooing > Tattooing Supplies > Tattooing Inks
1075
- Business & Industrial > Piercing & Tattooing > Tattooing Supplies > Tattooing Machines
1076
- Business & Industrial > Piercing & Tattooing > Tattooing Supplies > Tattooing Needles
1077
- Business & Industrial > Retail
1078
- Business & Industrial > Retail > Clothing Display Racks
1079
- Business & Industrial > Retail > Display Mannequins
1080
- Business & Industrial > Retail > Mannequin Parts
1081
- Business & Industrial > Retail > Money Handling
1082
- Business & Industrial > Retail > Money Handling > Banknote Verifiers
1083
- Business & Industrial > Retail > Money Handling > Cash Register & POS Terminal Accessories
1084
- Business & Industrial > Retail > Money Handling > Cash Register & POS Terminal Accessories > Cash Drawers & Trays
1085
- Business & Industrial > Retail > Money Handling > Cash Register & POS Terminal Accessories > Credit Card Terminals
1086
- Business & Industrial > Retail > Money Handling > Cash Register & POS Terminal Accessories > Signature Capture Pads
1087
- Business & Industrial > Retail > Money Handling > Cash Registers & POS Terminals
1088
- Business & Industrial > Retail > Money Handling > Cash Registers & POS Terminals > Cash Registers
1089
- Business & Industrial > Retail > Money Handling > Cash Registers & POS Terminals > POS Terminals
1090
- Business & Industrial > Retail > Money Handling > Coin & Bill Counters
1091
- Business & Industrial > Retail > Money Handling > Money Changers
1092
- Business & Industrial > Retail > Money Handling > Money Deposit Bags
1093
- Business & Industrial > Retail > Money Handling > Paper Coin Wrappers & Bill Straps
1094
- Business & Industrial > Retail > Paper & Plastic Shopping Bags
1095
- Business & Industrial > Retail > Pricing Guns
1096
- Business & Industrial > Retail > Retail Display Cases
1097
- Business & Industrial > Retail > Retail Display Props & Models
1098
- Business & Industrial > Science & Laboratory
1099
- Business & Industrial > Science & Laboratory > Biochemicals
1100
- Business & Industrial > Science & Laboratory > Dissection Kits
1101
- Business & Industrial > Science & Laboratory > Laboratory Chemicals
1102
- Business & Industrial > Science & Laboratory > Laboratory Equipment
1103
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Autoclaves
1104
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Centrifuges
1105
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Dry Ice Makers
1106
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Freeze-Drying Machines
1107
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Laboratory Blenders
1108
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Laboratory Freezers
1109
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Laboratory Funnels
1110
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Laboratory Hot Plates
1111
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Laboratory Ovens
1112
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Microscope Accessories
1113
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Microscope Accessories > Microscope Cameras
1114
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Microscope Accessories > Microscope Eyepieces & Adapters
1115
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Microscope Accessories > Microscope Objective Lenses
1116
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Microscope Accessories > Microscope Replacement Bulbs
1117
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Microscope Accessories > Microscope Slides
1118
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Microscopes
1119
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Microtomes
1120
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Spectrometer Accessories
1121
- Business & Industrial > Science & Laboratory > Laboratory Equipment > Spectrometers
1122
- Business & Industrial > Science & Laboratory > Laboratory Specimens
1123
- Business & Industrial > Science & Laboratory > Laboratory Supplies
1124
- Business & Industrial > Science & Laboratory > Laboratory Supplies > Beakers
1125
- Business & Industrial > Science & Laboratory > Laboratory Supplies > Graduated Cylinders
1126
- Business & Industrial > Science & Laboratory > Laboratory Supplies > Laboratory Flasks
1127
- Business & Industrial > Science & Laboratory > Laboratory Supplies > Petri Dishes
1128
- Business & Industrial > Science & Laboratory > Laboratory Supplies > Pipettes
1129
- Business & Industrial > Science & Laboratory > Laboratory Supplies > Test Tube Racks
1130
- Business & Industrial > Science & Laboratory > Laboratory Supplies > Test Tubes
1131
- Business & Industrial > Science & Laboratory > Laboratory Supplies > Wash Bottles
1132
- Business & Industrial > Signage
1133
- Business & Industrial > Signage > Business Hour Signs
1134
- Business & Industrial > Signage > Digital Signs
1135
- Business & Industrial > Signage > Electric Signs
1136
- Business & Industrial > Signage > Electric Signs > LED Signs
1137
- Business & Industrial > Signage > Electric Signs > Neon Signs
1138
- Business & Industrial > Signage > Emergency & Exit Signs
1139
- Business & Industrial > Signage > Facility Identification Signs
1140
- Business & Industrial > Signage > Open & Closed Signs
1141
- Business & Industrial > Signage > Parking Signs & Permits
1142
- Business & Industrial > Signage > Policy Signs
1143
- Business & Industrial > Signage > Retail & Sale Signs
1144
- Business & Industrial > Signage > Road & Traffic Signs
1145
- Business & Industrial > Signage > Safety & Warning Signs
1146
- Business & Industrial > Signage > Security Signs
1147
- Business & Industrial > Signage > Sidewalk & Yard Signs
1148
- Business & Industrial > Work Safety Protective Gear
1149
- Business & Industrial > Work Safety Protective Gear > Bullet Proof Vests
1150
- Business & Industrial > Work Safety Protective Gear > Gas Mask & Respirator Accessories
1151
- Business & Industrial > Work Safety Protective Gear > Hardhats
1152
- Business & Industrial > Work Safety Protective Gear > Hazardous Material Suits
1153
- Business & Industrial > Work Safety Protective Gear > Protective Aprons
1154
- Business & Industrial > Work Safety Protective Gear > Protective Eyewear
1155
- Business & Industrial > Work Safety Protective Gear > Protective Masks
1156
- Business & Industrial > Work Safety Protective Gear > Protective Masks > Dust Masks
1157
- Business & Industrial > Work Safety Protective Gear > Protective Masks > Fireman's Masks
1158
- Business & Industrial > Work Safety Protective Gear > Protective Masks > Gas Masks & Respirators
1159
- Business & Industrial > Work Safety Protective Gear > Protective Masks > Medical Masks
1160
- Business & Industrial > Work Safety Protective Gear > Safety Gloves
1161
- Business & Industrial > Work Safety Protective Gear > Safety Knee Pads
1162
- Business & Industrial > Work Safety Protective Gear > Welding Helmets
1163
- Business & Industrial > Work Safety Protective Gear > Work Safety Harnesses
1164
- Business & Industrial > Work Safety Protective Gear > Work Safety Tethers
1165
- Cameras & Optics
1166
- Cameras & Optics > Camera & Optic Accessories
1167
- Cameras & Optics > Camera & Optic Accessories > Camera & Optic Replacement Cables
1168
- Cameras & Optics > Camera & Optic Accessories > Camera & Video Camera Lenses
1169
- Cameras & Optics > Camera & Optic Accessories > Camera & Video Camera Lenses > Camera Lenses
1170
- Cameras & Optics > Camera & Optic Accessories > Camera & Video Camera Lenses > Surveillance Camera Lenses
1171
- Cameras & Optics > Camera & Optic Accessories > Camera & Video Camera Lenses > Video Camera Lenses
1172
- Cameras & Optics > Camera & Optic Accessories > Camera Lens Accessories
1173
- Cameras & Optics > Camera & Optic Accessories > Camera Lens Accessories > Lens & Filter Adapter Rings
1174
- Cameras & Optics > Camera & Optic Accessories > Camera Lens Accessories > Lens Bags
1175
- Cameras & Optics > Camera & Optic Accessories > Camera Lens Accessories > Lens Caps
1176
- Cameras & Optics > Camera & Optic Accessories > Camera Lens Accessories > Lens Converters
1177
- Cameras & Optics > Camera & Optic Accessories > Camera Lens Accessories > Lens Filters
1178
- Cameras & Optics > Camera & Optic Accessories > Camera Lens Accessories > Lens Hoods
1179
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories
1180
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Accessory Sets
1181
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Bags & Cases
1182
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Body Replacement Panels & Doors
1183
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Digital Backs
1184
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Film
1185
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Flash Accessories
1186
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Flashes
1187
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Focus Devices
1188
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Gears
1189
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Grips
1190
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Image Sensors
1191
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Lens Zoom Units
1192
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Remote Controls
1193
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Replacement Buttons & Knobs
1194
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Replacement Screens & Displays
1195
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Silencers & Sound Blimps
1196
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Stabilizers & Supports
1197
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Straps
1198
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Camera Sun Hoods & Viewfinder Attachments
1199
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Flash Brackets
1200
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > On-Camera Monitors
1201
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Surveillance Camera Accessories
1202
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Underwater Camera Housing Accessories
1203
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Underwater Camera Housings
1204
- Cameras & Optics > Camera & Optic Accessories > Camera Parts & Accessories > Video Camera Lights
1205
- Cameras & Optics > Camera & Optic Accessories > Optic Accessories
1206
- Cameras & Optics > Camera & Optic Accessories > Optic Accessories > Binocular & Monocular Accessories
1207
- Cameras & Optics > Camera & Optic Accessories > Optic Accessories > Optics Bags & Cases
1208
- Cameras & Optics > Camera & Optic Accessories > Optic Accessories > Rangefinder Accessories
1209
- Cameras & Optics > Camera & Optic Accessories > Optic Accessories > Spotting Scope Accessories
1210
- Cameras & Optics > Camera & Optic Accessories > Optic Accessories > Telescope Accessories
1211
- Cameras & Optics > Camera & Optic Accessories > Optic Accessories > Thermal Optic Accessories
1212
- Cameras & Optics > Camera & Optic Accessories > Optic Accessories > Weapon Scope & Sight Accessories
1213
- Cameras & Optics > Camera & Optic Accessories > Tripod & Monopod Accessories
1214
- Cameras & Optics > Camera & Optic Accessories > Tripod & Monopod Accessories > Tripod & Monopod Cases
1215
- Cameras & Optics > Camera & Optic Accessories > Tripod & Monopod Accessories > Tripod & Monopod Heads
1216
- Cameras & Optics > Camera & Optic Accessories > Tripod & Monopod Accessories > Tripod Collars & Mounts
1217
- Cameras & Optics > Camera & Optic Accessories > Tripod & Monopod Accessories > Tripod Handles
1218
- Cameras & Optics > Camera & Optic Accessories > Tripod & Monopod Accessories > Tripod Spreaders
1219
- Cameras & Optics > Camera & Optic Accessories > Tripods & Monopods
1220
- Cameras & Optics > Cameras
1221
- Cameras & Optics > Cameras > Borescopes
1222
- Cameras & Optics > Cameras > Digital Cameras
1223
- Cameras & Optics > Cameras > Disposable Cameras
1224
- Cameras & Optics > Cameras > Film Cameras
1225
- Cameras & Optics > Cameras > Surveillance Cameras
1226
- Cameras & Optics > Cameras > Trail Cameras
1227
- Cameras & Optics > Cameras > Video Cameras
1228
- Cameras & Optics > Cameras > Webcams
1229
- Cameras & Optics > Optics
1230
- Cameras & Optics > Optics > Binoculars
1231
- Cameras & Optics > Optics > Monoculars
1232
- Cameras & Optics > Optics > Rangefinders
1233
- Cameras & Optics > Optics > Scopes
1234
- Cameras & Optics > Optics > Scopes > Spotting Scopes
1235
- Cameras & Optics > Optics > Scopes > Telescopes
1236
- Cameras & Optics > Optics > Scopes > Weapon Scopes & Sights
1237
- Cameras & Optics > Photography
1238
- Cameras & Optics > Photography > Darkroom
1239
- Cameras & Optics > Photography > Darkroom > Developing & Processing Equipment
1240
- Cameras & Optics > Photography > Darkroom > Developing & Processing Equipment > Copystands
1241
- Cameras & Optics > Photography > Darkroom > Developing & Processing Equipment > Darkroom Sinks
1242
- Cameras & Optics > Photography > Darkroom > Developing & Processing Equipment > Developing Tanks & Reels
1243
- Cameras & Optics > Photography > Darkroom > Developing & Processing Equipment > Print Trays, Washers & Dryers
1244
- Cameras & Optics > Photography > Darkroom > Developing & Processing Equipment > Retouching Equipment & Supplies
1245
- Cameras & Optics > Photography > Darkroom > Enlarging Equipment
1246
- Cameras & Optics > Photography > Darkroom > Enlarging Equipment > Darkroom Easels
1247
- Cameras & Optics > Photography > Darkroom > Enlarging Equipment > Darkroom Timers
1248
- Cameras & Optics > Photography > Darkroom > Enlarging Equipment > Focusing Aids
1249
- Cameras & Optics > Photography > Darkroom > Enlarging Equipment > Photographic Analyzers
1250
- Cameras & Optics > Photography > Darkroom > Enlarging Equipment > Photographic Enlargers
1251
- Cameras & Optics > Photography > Darkroom > Photographic Chemicals
1252
- Cameras & Optics > Photography > Darkroom > Photographic Paper
1253
- Cameras & Optics > Photography > Darkroom > Safelights
1254
- Cameras & Optics > Photography > Lighting & Studio
1255
- Cameras & Optics > Photography > Lighting & Studio > Light Meter Accessories
1256
- Cameras & Optics > Photography > Lighting & Studio > Light Meters
1257
- Cameras & Optics > Photography > Lighting & Studio > Studio Backgrounds
1258
- Cameras & Optics > Photography > Lighting & Studio > Studio Light & Flash Accessories
1259
- Cameras & Optics > Photography > Lighting & Studio > Studio Lighting Controls
1260
- Cameras & Optics > Photography > Lighting & Studio > Studio Lighting Controls > Flash Diffusers
1261
- Cameras & Optics > Photography > Lighting & Studio > Studio Lighting Controls > Flash Reflectors
1262
- Cameras & Optics > Photography > Lighting & Studio > Studio Lighting Controls > Lighting Filters & Gobos
1263
- Cameras & Optics > Photography > Lighting & Studio > Studio Lighting Controls > Softboxes
1264
- Cameras & Optics > Photography > Lighting & Studio > Studio Lights & Flashes
1265
- Cameras & Optics > Photography > Lighting & Studio > Studio Stand & Mount Accessories
1266
- Cameras & Optics > Photography > Lighting & Studio > Studio Stands & Mounts
1267
- Cameras & Optics > Photography > Photo Mounting Supplies
1268
- Cameras & Optics > Photography > Photo Negative & Slide Storage
1269
- Electronics
1270
- Electronics > Arcade Equipment
1271
- Electronics > Arcade Equipment > Basketball Arcade Games
1272
- Electronics > Arcade Equipment > Pinball Machine Accessories
1273
- Electronics > Arcade Equipment > Pinball Machines
1274
- Electronics > Arcade Equipment > Skee-Ball Machines
1275
- Electronics > Arcade Equipment > Video Game Arcade Cabinet Accessories
1276
- Electronics > Arcade Equipment > Video Game Arcade Cabinets
1277
- Electronics > Audio
1278
- Electronics > Audio > Audio Accessories
1279
- Electronics > Audio > Audio Accessories > Audio & Video Receiver Accessories
1280
- Electronics > Audio > Audio Accessories > Headphone & Headset Accessories
1281
- Electronics > Audio > Audio Accessories > Headphone & Headset Accessories > Headphone Cushions & Tips
1282
- Electronics > Audio > Audio Accessories > Karaoke System Accessories
1283
- Electronics > Audio > Audio Accessories > Karaoke System Accessories > Karaoke Chips
1284
- Electronics > Audio > Audio Accessories > MP3 Player Accessories
1285
- Electronics > Audio > Audio Accessories > MP3 Player Accessories > MP3 Player & Mobile Phone Accessory Sets
1286
- Electronics > Audio > Audio Accessories > MP3 Player Accessories > MP3 Player Cases
1287
- Electronics > Audio > Audio Accessories > Microphone Accessories
1288
- Electronics > Audio > Audio Accessories > Microphone Stands
1289
- Electronics > Audio > Audio Accessories > Satellite Radio Accessories
1290
- Electronics > Audio > Audio Accessories > Speaker Accessories
1291
- Electronics > Audio > Audio Accessories > Speaker Accessories > Speaker Bags, Covers & Cases
1292
- Electronics > Audio > Audio Accessories > Speaker Accessories > Speaker Components & Kits
1293
- Electronics > Audio > Audio Accessories > Speaker Accessories > Speaker Stand Bags
1294
- Electronics > Audio > Audio Accessories > Speaker Accessories > Speaker Stands & Mounts
1295
- Electronics > Audio > Audio Accessories > Speaker Accessories > Tactile Transducers
1296
- Electronics > Audio > Audio Accessories > Turntable Accessories
1297
- Electronics > Audio > Audio Components
1298
- Electronics > Audio > Audio Components > Audio & Video Receivers
1299
- Electronics > Audio > Audio Components > Audio Amplifiers
1300
- Electronics > Audio > Audio Components > Audio Amplifiers > Headphone Amplifiers
1301
- Electronics > Audio > Audio Components > Audio Amplifiers > Power Amplifiers
1302
- Electronics > Audio > Audio Components > Audio Mixers
1303
- Electronics > Audio > Audio Components > Audio Transmitters
1304
- Electronics > Audio > Audio Components > Audio Transmitters > Bluetooth Transmitters
1305
- Electronics > Audio > Audio Components > Audio Transmitters > FM Transmitters
1306
- Electronics > Audio > Audio Components > Channel Strips
1307
- Electronics > Audio > Audio Components > Direct Boxes
1308
- Electronics > Audio > Audio Components > Headphones & Headsets
1309
- Electronics > Audio > Audio Components > Headphones & Headsets > Headphones
1310
- Electronics > Audio > Audio Components > Headphones & Headsets > Headsets
1311
- Electronics > Audio > Audio Components > Microphones
1312
- Electronics > Audio > Audio Components > Signal Processors
1313
- Electronics > Audio > Audio Components > Signal Processors > Crossovers
1314
- Electronics > Audio > Audio Components > Signal Processors > Effects Processors
1315
- Electronics > Audio > Audio Components > Signal Processors > Equalizers
1316
- Electronics > Audio > Audio Components > Signal Processors > Loudspeaker Management Systems
1317
- Electronics > Audio > Audio Components > Signal Processors > Microphone Preamps
1318
- Electronics > Audio > Audio Components > Signal Processors > Noise Gates & Compressors
1319
- Electronics > Audio > Audio Components > Signal Processors > Phono Preamps
1320
- Electronics > Audio > Audio Components > Speakers
1321
- Electronics > Audio > Audio Components > Studio Recording Bundles
1322
- Electronics > Audio > Audio Players & Recorders
1323
- Electronics > Audio > Audio Players & Recorders > Boomboxes
1324
- Electronics > Audio > Audio Players & Recorders > CD Players & Recorders
1325
- Electronics > Audio > Audio Players & Recorders > Cassette Players & Recorders
1326
- Electronics > Audio > Audio Players & Recorders > Home Theater Systems
1327
- Electronics > Audio > Audio Players & Recorders > Jukeboxes
1328
- Electronics > Audio > Audio Players & Recorders > Karaoke Systems
1329
- Electronics > Audio > Audio Players & Recorders > MP3 Players
1330
- Electronics > Audio > Audio Players & Recorders > MiniDisc Players & Recorders
1331
- Electronics > Audio > Audio Players & Recorders > Multitrack Recorders
1332
- Electronics > Audio > Audio Players & Recorders > Radios
1333
- Electronics > Audio > Audio Players & Recorders > Reel-to-Reel Tape Players & Recorders
1334
- Electronics > Audio > Audio Players & Recorders > Stereo Systems
1335
- Electronics > Audio > Audio Players & Recorders > Turntables & Record Players
1336
- Electronics > Audio > Audio Players & Recorders > Voice Recorders
1337
- Electronics > Audio > Bullhorns
1338
- Electronics > Audio > DJ & Specialty Audio
1339
- Electronics > Audio > DJ & Specialty Audio > DJ CD Players
1340
- Electronics > Audio > DJ & Specialty Audio > DJ Systems
1341
- Electronics > Audio > Public Address Systems
1342
- Electronics > Audio > Stage Equipment
1343
- Electronics > Audio > Stage Equipment > Wireless Transmitters
1344
- Electronics > Circuit Boards & Components
1345
- Electronics > Circuit Boards & Components > Circuit Board Accessories
1346
- Electronics > Circuit Boards & Components > Circuit Decoders & Encoders
1347
- Electronics > Circuit Boards & Components > Circuit Prototyping
1348
- Electronics > Circuit Boards & Components > Circuit Prototyping > Breadboards
1349
- Electronics > Circuit Boards & Components > Electronic Filters
1350
- Electronics > Circuit Boards & Components > Passive Circuit Components
1351
- Electronics > Circuit Boards & Components > Passive Circuit Components > Capacitors
1352
- Electronics > Circuit Boards & Components > Passive Circuit Components > Electronic Oscillators
1353
- Electronics > Circuit Boards & Components > Passive Circuit Components > Inductors
1354
- Electronics > Circuit Boards & Components > Passive Circuit Components > Resistors
1355
- Electronics > Circuit Boards & Components > Printed Circuit Boards
1356
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Camera Circuit Boards
1357
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Computer Circuit Boards
1358
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Computer Circuit Boards > Computer Inverter Boards
1359
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Computer Circuit Boards > Hard Drive Circuit Boards
1360
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Computer Circuit Boards > Motherboards
1361
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Development Boards
1362
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Exercise Machine Circuit Boards
1363
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Household Appliance Circuit Boards
1364
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Pool & Spa Circuit Boards
1365
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Printer, Copier, & Fax Machine Circuit Boards
1366
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Scanner Circuit Boards
1367
- Electronics > Circuit Boards & Components > Printed Circuit Boards > Television Circuit Boards
1368
- Electronics > Circuit Boards & Components > Semiconductors
1369
- Electronics > Circuit Boards & Components > Semiconductors > Diodes
1370
- Electronics > Circuit Boards & Components > Semiconductors > Integrated Circuits & Chips
1371
- Electronics > Circuit Boards & Components > Semiconductors > Microcontrollers
1372
- Electronics > Circuit Boards & Components > Semiconductors > Transistors
1373
- Electronics > Communications
1374
- Electronics > Communications > Answering Machines
1375
- Electronics > Communications > Caller IDs
1376
- Electronics > Communications > Communication Radio Accessories
1377
- Electronics > Communications > Communication Radios
1378
- Electronics > Communications > Communication Radios > CB Radios
1379
- Electronics > Communications > Communication Radios > Radio Scanners
1380
- Electronics > Communications > Communication Radios > Two-Way Radios
1381
- Electronics > Communications > Intercom Accessories
1382
- Electronics > Communications > Intercoms
1383
- Electronics > Communications > Pagers
1384
- Electronics > Communications > Telephony
1385
- Electronics > Communications > Telephony > Conference Phones
1386
- Electronics > Communications > Telephony > Corded Phones
1387
- Electronics > Communications > Telephony > Cordless Phones
1388
- Electronics > Communications > Telephony > Mobile Phone Accessories
1389
- Electronics > Communications > Telephony > Mobile Phone Accessories > Mobile Phone Camera Accessories
1390
- Electronics > Communications > Telephony > Mobile Phone Accessories > Mobile Phone Cases
1391
- Electronics > Communications > Telephony > Mobile Phone Accessories > Mobile Phone Charms & Straps
1392
- Electronics > Communications > Telephony > Mobile Phone Accessories > Mobile Phone Pre-Paid Cards & SIM Cards
1393
- Electronics > Communications > Telephony > Mobile Phone Accessories > Mobile Phone Pre-Paid Cards & SIM Cards > Mobile Phone Pre-Paid Cards
1394
- Electronics > Communications > Telephony > Mobile Phone Accessories > Mobile Phone Pre-Paid Cards & SIM Cards > SIM Cards
1395
- Electronics > Communications > Telephony > Mobile Phone Accessories > Mobile Phone Replacement Parts
1396
- Electronics > Communications > Telephony > Mobile Phone Accessories > Mobile Phone Stands
1397
- Electronics > Communications > Telephony > Mobile Phone Accessories > SIM Card Ejection Tools
1398
- Electronics > Communications > Telephony > Mobile Phones
1399
- Electronics > Communications > Telephony > Mobile Phones > Contract Mobile Phones
1400
- Electronics > Communications > Telephony > Mobile Phones > Pre-paid Mobile Phones
1401
- Electronics > Communications > Telephony > Mobile Phones > Unlocked Mobile Phones
1402
- Electronics > Communications > Telephony > Satellite Phones
1403
- Electronics > Communications > Telephony > Telephone Accessories
1404
- Electronics > Communications > Telephony > Telephone Accessories > Phone Cards
1405
- Electronics > Communications > Video Conferencing
1406
- Electronics > Components
1407
- Electronics > Components > Accelerometers
1408
- Electronics > Components > Converters
1409
- Electronics > Components > Converters > Audio Converters
1410
- Electronics > Components > Converters > Scan Converters
1411
- Electronics > Components > Electronics Component Connectors
1412
- Electronics > Components > Modulators
1413
- Electronics > Components > Splitters
1414
- Electronics > Computers
1415
- Electronics > Computers > Barebone Computers
1416
- Electronics > Computers > Computer Servers
1417
- Electronics > Computers > Desktop Computers
1418
- Electronics > Computers > Handheld Devices
1419
- Electronics > Computers > Handheld Devices > Data Collectors
1420
- Electronics > Computers > Handheld Devices > E-Book Readers
1421
- Electronics > Computers > Handheld Devices > PDAs
1422
- Electronics > Computers > Interactive Kiosks
1423
- Electronics > Computers > Laptops
1424
- Electronics > Computers > Smart Glasses
1425
- Electronics > Computers > Tablet Computers
1426
- Electronics > Computers > Thin & Zero Clients
1427
- Electronics > Computers > Thin & Zero Clients > Thin Client Computers
1428
- Electronics > Computers > Thin & Zero Clients > Zero Client Computers
1429
- Electronics > Computers > Touch Table Computers
1430
- Electronics > Electronics Accessories
1431
- Electronics > Electronics Accessories > Adapters
1432
- Electronics > Electronics Accessories > Adapters > Audio & Video Cable Adapters & Couplers
1433
- Electronics > Electronics Accessories > Adapters > Memory Card Adapters
1434
- Electronics > Electronics Accessories > Adapters > USB Adapters
1435
- Electronics > Electronics Accessories > Antenna Accessories
1436
- Electronics > Electronics Accessories > Antenna Accessories > Antenna Mounts & Brackets
1437
- Electronics > Electronics Accessories > Antenna Accessories > Antenna Rotators
1438
- Electronics > Electronics Accessories > Antenna Accessories > Satellite LNBs
1439
- Electronics > Electronics Accessories > Antennas
1440
- Electronics > Electronics Accessories > Audio & Video Splitters & Switches
1441
- Electronics > Electronics Accessories > Audio & Video Splitters & Switches > DVI Splitters & Switches
1442
- Electronics > Electronics Accessories > Audio & Video Splitters & Switches > HDMI Splitters & Switches
1443
- Electronics > Electronics Accessories > Audio & Video Splitters & Switches > VGA Splitters & Switches
1444
- Electronics > Electronics Accessories > Blank Media
1445
- Electronics > Electronics Accessories > Cable Management
1446
- Electronics > Electronics Accessories > Cable Management > Cable Clips
1447
- Electronics > Electronics Accessories > Cable Management > Cable Tie Guns
1448
- Electronics > Electronics Accessories > Cable Management > Cable Trays
1449
- Electronics > Electronics Accessories > Cable Management > Patch Panels
1450
- Electronics > Electronics Accessories > Cable Management > Wire & Cable Identification Markers
1451
- Electronics > Electronics Accessories > Cable Management > Wire & Cable Sleeves
1452
- Electronics > Electronics Accessories > Cable Management > Wire & Cable Ties
1453
- Electronics > Electronics Accessories > Cables
1454
- Electronics > Electronics Accessories > Cables > Audio & Video Cables
1455
- Electronics > Electronics Accessories > Cables > KVM Cables
1456
- Electronics > Electronics Accessories > Cables > Network Cables
1457
- Electronics > Electronics Accessories > Cables > Storage & Data Transfer Cables
1458
- Electronics > Electronics Accessories > Cables > System & Power Cables
1459
- Electronics > Electronics Accessories > Cables > Telephone Cables
1460
- Electronics > Electronics Accessories > Computer Accessories
1461
- Electronics > Electronics Accessories > Computer Accessories > Computer Accessory Sets
1462
- Electronics > Electronics Accessories > Computer Accessories > Computer Covers & Skins
1463
- Electronics > Electronics Accessories > Computer Accessories > Computer Risers & Stands
1464
- Electronics > Electronics Accessories > Computer Accessories > Handheld Device Accessories
1465
- Electronics > Electronics Accessories > Computer Accessories > Handheld Device Accessories > E-Book Reader Accessories
1466
- Electronics > Electronics Accessories > Computer Accessories > Handheld Device Accessories > E-Book Reader Accessories > E-Book Reader Cases
1467
- Electronics > Electronics Accessories > Computer Accessories > Handheld Device Accessories > PDA Accessories
1468
- Electronics > Electronics Accessories > Computer Accessories > Handheld Device Accessories > PDA Accessories > PDA Cases
1469
- Electronics > Electronics Accessories > Computer Accessories > Keyboard & Mouse Wrist Rests
1470
- Electronics > Electronics Accessories > Computer Accessories > Keyboard Trays & Platforms
1471
- Electronics > Electronics Accessories > Computer Accessories > Laptop Docking Stations
1472
- Electronics > Electronics Accessories > Computer Accessories > Mouse Pads
1473
- Electronics > Electronics Accessories > Computer Accessories > Stylus Pen Nibs & Refills
1474
- Electronics > Electronics Accessories > Computer Accessories > Stylus Pens
1475
- Electronics > Electronics Accessories > Computer Accessories > Tablet Computer Docks & Stands
1476
- Electronics > Electronics Accessories > Computer Components
1477
- Electronics > Electronics Accessories > Computer Components > Blade Server Enclosures
1478
- Electronics > Electronics Accessories > Computer Components > Computer Backplates & I/O Shields
1479
- Electronics > Electronics Accessories > Computer Components > Computer Power Supplies
1480
- Electronics > Electronics Accessories > Computer Components > Computer Processors
1481
- Electronics > Electronics Accessories > Computer Components > Computer Racks & Mounts
1482
- Electronics > Electronics Accessories > Computer Components > Computer Starter Kits
1483
- Electronics > Electronics Accessories > Computer Components > Computer System Cooling Parts
1484
- Electronics > Electronics Accessories > Computer Components > Desktop Computer & Server Cases
1485
- Electronics > Electronics Accessories > Computer Components > E-Book Reader Parts
1486
- Electronics > Electronics Accessories > Computer Components > E-Book Reader Parts > E-Book Reader Screens & Screen Digitizers
1487
- Electronics > Electronics Accessories > Computer Components > I/O Cards & Adapters
1488
- Electronics > Electronics Accessories > Computer Components > I/O Cards & Adapters > Audio Cards & Adapters
1489
- Electronics > Electronics Accessories > Computer Components > I/O Cards & Adapters > Computer Interface Cards & Adapters
1490
- Electronics > Electronics Accessories > Computer Components > I/O Cards & Adapters > Riser Cards
1491
- Electronics > Electronics Accessories > Computer Components > I/O Cards & Adapters > TV Tuner Cards & Adapters
1492
- Electronics > Electronics Accessories > Computer Components > I/O Cards & Adapters > Video Cards & Adapters
1493
- Electronics > Electronics Accessories > Computer Components > Input Device Accessories
1494
- Electronics > Electronics Accessories > Computer Components > Input Device Accessories > Barcode Scanner Stands
1495
- Electronics > Electronics Accessories > Computer Components > Input Device Accessories > Game Controller Accessories
1496
- Electronics > Electronics Accessories > Computer Components > Input Device Accessories > Keyboard Keys & Caps
1497
- Electronics > Electronics Accessories > Computer Components > Input Device Accessories > Mice & Trackball Accessories
1498
- Electronics > Electronics Accessories > Computer Components > Input Devices
1499
- Electronics > Electronics Accessories > Computer Components > Input Devices > Barcode Scanners
1500
- Electronics > Electronics Accessories > Computer Components > Input Devices > Digital Note Taking Pens
1501
- Electronics > Electronics Accessories > Computer Components > Input Devices > Electronic Card Readers
1502
- Electronics > Electronics Accessories > Computer Components > Input Devices > Fingerprint Readers
1503
- Electronics > Electronics Accessories > Computer Components > Input Devices > Game Controllers
1504
- Electronics > Electronics Accessories > Computer Components > Input Devices > Game Controllers > Game Racing Wheels
1505
- Electronics > Electronics Accessories > Computer Components > Input Devices > Game Controllers > Game Remotes
1506
- Electronics > Electronics Accessories > Computer Components > Input Devices > Game Controllers > Gaming Pads
1507
- Electronics > Electronics Accessories > Computer Components > Input Devices > Game Controllers > Joystick Controllers
1508
- Electronics > Electronics Accessories > Computer Components > Input Devices > Game Controllers > Musical Instrument Game Controllers
1509
- Electronics > Electronics Accessories > Computer Components > Input Devices > Gesture Control Input Devices
1510
- Electronics > Electronics Accessories > Computer Components > Input Devices > Graphics Tablets
1511
- Electronics > Electronics Accessories > Computer Components > Input Devices > KVM Switches
1512
- Electronics > Electronics Accessories > Computer Components > Input Devices > Keyboards
1513
- Electronics > Electronics Accessories > Computer Components > Input Devices > Memory Card Readers
1514
- Electronics > Electronics Accessories > Computer Components > Input Devices > Mice & Trackballs
1515
- Electronics > Electronics Accessories > Computer Components > Input Devices > Numeric Keypads
1516
- Electronics > Electronics Accessories > Computer Components > Input Devices > Touchpads
1517
- Electronics > Electronics Accessories > Computer Components > Laptop Parts
1518
- Electronics > Electronics Accessories > Computer Components > Laptop Parts > Laptop Hinges
1519
- Electronics > Electronics Accessories > Computer Components > Laptop Parts > Laptop Housings & Trim
1520
- Electronics > Electronics Accessories > Computer Components > Laptop Parts > Laptop Replacement Cables
1521
- Electronics > Electronics Accessories > Computer Components > Laptop Parts > Laptop Replacement Keyboards
1522
- Electronics > Electronics Accessories > Computer Components > Laptop Parts > Laptop Replacement Screens
1523
- Electronics > Electronics Accessories > Computer Components > Laptop Parts > Laptop Replacement Speakers
1524
- Electronics > Electronics Accessories > Computer Components > Laptop Parts > Laptop Screen Digitizers
1525
- Electronics > Electronics Accessories > Computer Components > Storage Devices
1526
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Disk Duplicators
1527
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Disk Duplicators > CD/DVD Duplicators
1528
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Disk Duplicators > Hard Drive Duplicators
1529
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Disk Duplicators > USB Drive Duplicators
1530
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Floppy Drives
1531
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Hard Drive Accessories
1532
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Hard Drive Accessories > Hard Drive Carrying Cases
1533
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Hard Drive Accessories > Hard Drive Docks
1534
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Hard Drive Accessories > Hard Drive Enclosures & Mounts
1535
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Hard Drive Arrays
1536
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Hard Drives
1537
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Network Storage Systems
1538
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Optical Drives
1539
- Electronics > Electronics Accessories > Computer Components > Storage Devices > Tape Drives
1540
- Electronics > Electronics Accessories > Computer Components > Storage Devices > USB Flash Drives
1541
- Electronics > Electronics Accessories > Computer Components > Tablet Computer Parts
1542
- Electronics > Electronics Accessories > Computer Components > Tablet Computer Parts > Tablet Computer Housings & Trim
1543
- Electronics > Electronics Accessories > Computer Components > Tablet Computer Parts > Tablet Computer Replacement Speakers
1544
- Electronics > Electronics Accessories > Computer Components > Tablet Computer Parts > Tablet Computer Screens & Screen Digitizers
1545
- Electronics > Electronics Accessories > Computer Components > USB & FireWire Hubs
1546
- Electronics > Electronics Accessories > Electronics Cleaners
1547
- Electronics > Electronics Accessories > Electronics Films & Shields
1548
- Electronics > Electronics Accessories > Electronics Films & Shields > Electronics Stickers & Decals
1549
- Electronics > Electronics Accessories > Electronics Films & Shields > Keyboard Protectors
1550
- Electronics > Electronics Accessories > Electronics Films & Shields > Privacy Filters
1551
- Electronics > Electronics Accessories > Electronics Films & Shields > Screen Protectors
1552
- Electronics > Electronics Accessories > Memory
1553
- Electronics > Electronics Accessories > Memory > Cache Memory
1554
- Electronics > Electronics Accessories > Memory > Flash Memory
1555
- Electronics > Electronics Accessories > Memory > Flash Memory > Flash Memory Cards
1556
- Electronics > Electronics Accessories > Memory > RAM
1557
- Electronics > Electronics Accessories > Memory > ROM
1558
- Electronics > Electronics Accessories > Memory > Video Memory
1559
- Electronics > Electronics Accessories > Memory Accessories
1560
- Electronics > Electronics Accessories > Memory Accessories > Memory Cases
1561
- Electronics > Electronics Accessories > Mobile Phone & Tablet Tripods & Monopods
1562
- Electronics > Electronics Accessories > Power
1563
- Electronics > Electronics Accessories > Power > Batteries
1564
- Electronics > Electronics Accessories > Power > Batteries > Camera Batteries
1565
- Electronics > Electronics Accessories > Power > Batteries > Cordless Phone Batteries
1566
- Electronics > Electronics Accessories > Power > Batteries > E-Book Reader Batteries
1567
- Electronics > Electronics Accessories > Power > Batteries > General Purpose Batteries
1568
- Electronics > Electronics Accessories > Power > Batteries > Laptop Batteries
1569
- Electronics > Electronics Accessories > Power > Batteries > MP3 Player Batteries
1570
- Electronics > Electronics Accessories > Power > Batteries > Mobile Phone Batteries
1571
- Electronics > Electronics Accessories > Power > Batteries > PDA Batteries
1572
- Electronics > Electronics Accessories > Power > Batteries > Tablet Computer Batteries
1573
- Electronics > Electronics Accessories > Power > Batteries > UPS Batteries
1574
- Electronics > Electronics Accessories > Power > Batteries > Video Camera Batteries
1575
- Electronics > Electronics Accessories > Power > Batteries > Video Game Console & Controller Batteries
1576
- Electronics > Electronics Accessories > Power > Battery Accessories
1577
- Electronics > Electronics Accessories > Power > Battery Accessories > Battery Charge Controllers
1578
- Electronics > Electronics Accessories > Power > Battery Accessories > Battery Holders
1579
- Electronics > Electronics Accessories > Power > Battery Accessories > Camera Battery Chargers
1580
- Electronics > Electronics Accessories > Power > Battery Accessories > General Purpose Battery Chargers
1581
- Electronics > Electronics Accessories > Power > Battery Accessories > General Purpose Battery Testers
1582
- Electronics > Electronics Accessories > Power > Fuel Cells
1583
- Electronics > Electronics Accessories > Power > Power Adapter & Charger Accessories
1584
- Electronics > Electronics Accessories > Power > Power Adapters & Chargers
1585
- Electronics > Electronics Accessories > Power > Power Control Units
1586
- Electronics > Electronics Accessories > Power > Power Strips & Surge Suppressors
1587
- Electronics > Electronics Accessories > Power > Power Supply Enclosures
1588
- Electronics > Electronics Accessories > Power > Surge Protection Devices
1589
- Electronics > Electronics Accessories > Power > Travel Converters & Adapters
1590
- Electronics > Electronics Accessories > Power > UPS
1591
- Electronics > Electronics Accessories > Power > UPS Accessories
1592
- Electronics > Electronics Accessories > Remote Controls
1593
- Electronics > Electronics Accessories > Signal Boosters
1594
- Electronics > Electronics Accessories > Signal Jammers
1595
- Electronics > Electronics Accessories > Signal Jammers > GPS Jammers
1596
- Electronics > Electronics Accessories > Signal Jammers > Mobile Phone Jammers
1597
- Electronics > Electronics Accessories > Signal Jammers > Radar Jammers
1598
- Electronics > GPS Accessories
1599
- Electronics > GPS Accessories > GPS Cases
1600
- Electronics > GPS Accessories > GPS Mounts
1601
- Electronics > GPS Navigation Systems
1602
- Electronics > GPS Tracking Devices
1603
- Electronics > Marine Electronics
1604
- Electronics > Marine Electronics > Fish Finders
1605
- Electronics > Marine Electronics > Marine Audio & Video Receivers
1606
- Electronics > Marine Electronics > Marine Chartplotters & GPS
1607
- Electronics > Marine Electronics > Marine Radar
1608
- Electronics > Marine Electronics > Marine Radios
1609
- Electronics > Marine Electronics > Marine Speakers
1610
- Electronics > Networking
1611
- Electronics > Networking > Bridges & Routers
1612
- Electronics > Networking > Bridges & Routers > Network Bridges
1613
- Electronics > Networking > Bridges & Routers > VoIP Gateways & Routers
1614
- Electronics > Networking > Bridges & Routers > Wireless Access Points
1615
- Electronics > Networking > Bridges & Routers > Wireless Routers
1616
- Electronics > Networking > Concentrators & Multiplexers
1617
- Electronics > Networking > Hubs & Switches
1618
- Electronics > Networking > Modem Accessories
1619
- Electronics > Networking > Modems
1620
- Electronics > Networking > Network Cards & Adapters
1621
- Electronics > Networking > Network Security & Firewall Devices
1622
- Electronics > Networking > Power Over Ethernet Adapters
1623
- Electronics > Networking > Print Servers
1624
- Electronics > Networking > Repeaters & Transceivers
1625
- Electronics > Print, Copy, Scan & Fax
1626
- Electronics > Print, Copy, Scan & Fax > 3D Printer Accessories
1627
- Electronics > Print, Copy, Scan & Fax > 3D Printers
1628
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories
1629
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer Consumables
1630
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer Consumables > Printer Drums & Drum Kits
1631
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer Consumables > Printer Filters
1632
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer Consumables > Printer Maintenance Kits
1633
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer Consumables > Printer Ribbons
1634
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer Consumables > Printheads
1635
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer Consumables > Toner & Inkjet Cartridge Refills
1636
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer Consumables > Toner & Inkjet Cartridges
1637
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer Duplexers
1638
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer Memory
1639
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer Stands
1640
- Electronics > Print, Copy, Scan & Fax > Printer, Copier & Fax Machine Accessories > Printer, Copier & Fax Machine Replacement Parts
1641
- Electronics > Print, Copy, Scan & Fax > Printers, Copiers & Fax Machines
1642
- Electronics > Print, Copy, Scan & Fax > Scanner Accessories
1643
- Electronics > Print, Copy, Scan & Fax > Scanners
1644
- Electronics > Radar Detectors
1645
- Electronics > Speed Radars
1646
- Electronics > Toll Collection Devices
1647
- Electronics > Video
1648
- Electronics > Video > Computer Monitors
1649
- Electronics > Video > Projectors
1650
- Electronics > Video > Projectors > Multimedia Projectors
1651
- Electronics > Video > Projectors > Overhead Projectors
1652
- Electronics > Video > Projectors > Slide Projectors
1653
- Electronics > Video > Satellite & Cable TV
1654
- Electronics > Video > Satellite & Cable TV > Cable TV Receivers
1655
- Electronics > Video > Satellite & Cable TV > Satellite Receivers
1656
- Electronics > Video > Televisions
1657
- Electronics > Video > Video Accessories
1658
- Electronics > Video > Video Accessories > 3D Glasses
1659
- Electronics > Video > Video Accessories > Computer Monitor Accessories
1660
- Electronics > Video > Video Accessories > Computer Monitor Accessories > Color Calibrators
1661
- Electronics > Video > Video Accessories > Projector Accessories
1662
- Electronics > Video > Video Accessories > Projector Accessories > Projection & Tripod Skirts
1663
- Electronics > Video > Video Accessories > Projector Accessories > Projection Screen Stands
1664
- Electronics > Video > Video Accessories > Projector Accessories > Projection Screens
1665
- Electronics > Video > Video Accessories > Projector Accessories > Projector Mounts
1666
- Electronics > Video > Video Accessories > Projector Accessories > Projector Replacement Lamps
1667
- Electronics > Video > Video Accessories > Rewinders
1668
- Electronics > Video > Video Accessories > Television Parts & Accessories
1669
- Electronics > Video > Video Accessories > Television Parts & Accessories > TV & Monitor Mounts
1670
- Electronics > Video > Video Accessories > Television Parts & Accessories > TV Converter Boxes
1671
- Electronics > Video > Video Accessories > Television Parts & Accessories > TV Replacement Lamps
1672
- Electronics > Video > Video Accessories > Television Parts & Accessories > TV Replacement Speakers
1673
- Electronics > Video > Video Editing Hardware & Production Equipment
1674
- Electronics > Video > Video Multiplexers
1675
- Electronics > Video > Video Players & Recorders
1676
- Electronics > Video > Video Players & Recorders > DVD & Blu-ray Players
1677
- Electronics > Video > Video Players & Recorders > DVD Recorders
1678
- Electronics > Video > Video Players & Recorders > Digital Video Recorders
1679
- Electronics > Video > Video Players & Recorders > Streaming & Home Media Players
1680
- Electronics > Video > Video Players & Recorders > VCRs
1681
- Electronics > Video > Video Servers
1682
- Electronics > Video > Video Transmitters
1683
- Electronics > Video Game Console Accessories
1684
- Electronics > Video Game Console Accessories > Home Game Console Accessories
1685
- Electronics > Video Game Console Accessories > Portable Game Console Accessories
1686
- Electronics > Video Game Consoles
1687
- Food, Beverages & Tobacco
1688
- Food, Beverages & Tobacco > Beverages
1689
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages
1690
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Beer
1691
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Bitters
1692
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Cocktail Mixes
1693
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Cocktail Mixes > Frozen Cocktail Mixes
1694
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Cocktail Mixes > Shelf-stable Cocktail Mixes
1695
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Flavored Alcoholic Beverages
1696
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Hard Cider
1697
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits
1698
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits > Absinthe
1699
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits > Brandy
1700
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits > Gin
1701
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits > Liqueurs
1702
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits > Rum
1703
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits > Shochu & Soju
1704
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits > Shochu & Soju > Shochu
1705
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits > Shochu & Soju > Soju
1706
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits > Tequila
1707
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits > Vodka
1708
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Liquor & Spirits > Whiskey
1709
- Food, Beverages & Tobacco > Beverages > Alcoholic Beverages > Wine
1710
- Food, Beverages & Tobacco > Beverages > Buttermilk
1711
- Food, Beverages & Tobacco > Beverages > Coffee
1712
- Food, Beverages & Tobacco > Beverages > Eggnog
1713
- Food, Beverages & Tobacco > Beverages > Fruit Flavored Drinks
1714
- Food, Beverages & Tobacco > Beverages > Hot Chocolate
1715
- Food, Beverages & Tobacco > Beverages > Juice
1716
- Food, Beverages & Tobacco > Beverages > Milk
1717
- Food, Beverages & Tobacco > Beverages > Non-Dairy Milk
1718
- Food, Beverages & Tobacco > Beverages > Powdered Beverage Mixes
1719
- Food, Beverages & Tobacco > Beverages > Soda
1720
- Food, Beverages & Tobacco > Beverages > Sports & Energy Drinks
1721
- Food, Beverages & Tobacco > Beverages > Tea & Infusions
1722
- Food, Beverages & Tobacco > Beverages > Vinegar Drinks
1723
- Food, Beverages & Tobacco > Beverages > Water
1724
- Food, Beverages & Tobacco > Beverages > Water > Carbonated Water
1725
- Food, Beverages & Tobacco > Beverages > Water > Carbonated Water > Flavored Carbonated Water
1726
- Food, Beverages & Tobacco > Beverages > Water > Carbonated Water > Unflavored Carbonated Water
1727
- Food, Beverages & Tobacco > Beverages > Water > Distilled Water
1728
- Food, Beverages & Tobacco > Beverages > Water > Flat Mineral Water
1729
- Food, Beverages & Tobacco > Beverages > Water > Spring Water
1730
- Food, Beverages & Tobacco > Food Items
1731
- Food, Beverages & Tobacco > Food Items > Bakery
1732
- Food, Beverages & Tobacco > Food Items > Bakery > Bagels
1733
- Food, Beverages & Tobacco > Food Items > Bakery > Bakery Assortments
1734
- Food, Beverages & Tobacco > Food Items > Bakery > Breads & Buns
1735
- Food, Beverages & Tobacco > Food Items > Bakery > Cakes & Dessert Bars
1736
- Food, Beverages & Tobacco > Food Items > Bakery > Coffee Cakes
1737
- Food, Beverages & Tobacco > Food Items > Bakery > Cookies
1738
- Food, Beverages & Tobacco > Food Items > Bakery > Cupcakes
1739
- Food, Beverages & Tobacco > Food Items > Bakery > Donuts
1740
- Food, Beverages & Tobacco > Food Items > Bakery > Fudge
1741
- Food, Beverages & Tobacco > Food Items > Bakery > Ice Cream Cones
1742
- Food, Beverages & Tobacco > Food Items > Bakery > Muffins
1743
- Food, Beverages & Tobacco > Food Items > Bakery > Pastries & Scones
1744
- Food, Beverages & Tobacco > Food Items > Bakery > Pies & Tarts
1745
- Food, Beverages & Tobacco > Food Items > Bakery > Taco Shells & Tostadas
1746
- Food, Beverages & Tobacco > Food Items > Bakery > Tortillas & Wraps
1747
- Food, Beverages & Tobacco > Food Items > Candied & Chocolate Covered Fruit
1748
- Food, Beverages & Tobacco > Food Items > Candy & Chocolate
1749
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces
1750
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Cocktail Sauce
1751
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Curry Sauce
1752
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Dessert Toppings
1753
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Dessert Toppings > Fruit Toppings
1754
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Dessert Toppings > Ice Cream Syrup
1755
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Fish Sauce
1756
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Gravy
1757
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Honey
1758
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Horseradish Sauce
1759
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Hot Sauce
1760
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Ketchup
1761
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Marinades & Grilling Sauces
1762
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Mayonnaise
1763
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Mustard
1764
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Olives & Capers
1765
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Pasta Sauce
1766
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Pickled Fruits & Vegetables
1767
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Pizza Sauce
1768
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Relish & Chutney
1769
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Salad Dressing
1770
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Satay Sauce
1771
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Soy Sauce
1772
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Sweet and Sour Sauces
1773
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Syrup
1774
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Tahini
1775
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Tartar Sauce
1776
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > White & Cream Sauces
1777
- Food, Beverages & Tobacco > Food Items > Condiments & Sauces > Worcestershire Sauce
1778
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients
1779
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Baking Chips
1780
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Baking Chocolate
1781
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Baking Flavors & Extracts
1782
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Baking Mixes
1783
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Baking Powder
1784
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Baking Soda
1785
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Batter & Coating Mixes
1786
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Bean Paste
1787
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Bread Crumbs
1788
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Canned & Dry Milk
1789
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Cookie Decorating Kits
1790
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Cooking Oils
1791
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Cooking Starch
1792
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Cooking Wine
1793
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Corn Syrup
1794
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Dough
1795
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Dough > Bread & Pastry Dough
1796
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Dough > Cookie & Brownie Dough
1797
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Dough > Pie Crusts
1798
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Edible Baking Decorations
1799
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Egg Replacers
1800
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Floss Sugar
1801
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Flour
1802
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Food Coloring
1803
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Frosting & Icing
1804
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Lemon & Lime Juice
1805
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Marshmallows
1806
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Meal
1807
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Molasses
1808
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Pie & Pastry Fillings
1809
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Shortening & Lard
1810
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Starter Cultures
1811
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Sugar & Sweeteners
1812
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Tapioca Pearls
1813
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Tomato Paste
1814
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Unflavored Gelatin
1815
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Vinegar
1816
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Waffle & Pancake Mixes
1817
- Food, Beverages & Tobacco > Food Items > Cooking & Baking Ingredients > Yeast
1818
- Food, Beverages & Tobacco > Food Items > Dairy Products
1819
- Food, Beverages & Tobacco > Food Items > Dairy Products > Butter & Margarine
1820
- Food, Beverages & Tobacco > Food Items > Dairy Products > Cheese
1821
- Food, Beverages & Tobacco > Food Items > Dairy Products > Coffee Creamer
1822
- Food, Beverages & Tobacco > Food Items > Dairy Products > Cottage Cheese
1823
- Food, Beverages & Tobacco > Food Items > Dairy Products > Cream
1824
- Food, Beverages & Tobacco > Food Items > Dairy Products > Sour Cream
1825
- Food, Beverages & Tobacco > Food Items > Dairy Products > Whipped Cream
1826
- Food, Beverages & Tobacco > Food Items > Dairy Products > Yogurt
1827
- Food, Beverages & Tobacco > Food Items > Dips & Spreads
1828
- Food, Beverages & Tobacco > Food Items > Dips & Spreads > Apple Butter
1829
- Food, Beverages & Tobacco > Food Items > Dips & Spreads > Cheese Dips & Spreads
1830
- Food, Beverages & Tobacco > Food Items > Dips & Spreads > Cream Cheese
1831
- Food, Beverages & Tobacco > Food Items > Dips & Spreads > Guacamole
1832
- Food, Beverages & Tobacco > Food Items > Dips & Spreads > Hummus
1833
- Food, Beverages & Tobacco > Food Items > Dips & Spreads > Jams & Jellies
1834
- Food, Beverages & Tobacco > Food Items > Dips & Spreads > Nut Butters
1835
- Food, Beverages & Tobacco > Food Items > Dips & Spreads > Salsa
1836
- Food, Beverages & Tobacco > Food Items > Dips & Spreads > Tapenade
1837
- Food, Beverages & Tobacco > Food Items > Dips & Spreads > Vegetable Dip
1838
- Food, Beverages & Tobacco > Food Items > Food Gift Baskets
1839
- Food, Beverages & Tobacco > Food Items > Frozen Desserts & Novelties
1840
- Food, Beverages & Tobacco > Food Items > Frozen Desserts & Novelties > Ice Cream & Frozen Yogurt
1841
- Food, Beverages & Tobacco > Food Items > Frozen Desserts & Novelties > Ice Cream Novelties
1842
- Food, Beverages & Tobacco > Food Items > Frozen Desserts & Novelties > Ice Pops
1843
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables
1844
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Canned & Jarred Fruits
1845
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Canned & Jarred Vegetables
1846
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Canned & Prepared Beans
1847
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Dried Fruits
1848
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Dried Vegetables
1849
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Dry Beans
1850
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits
1851
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Apples
1852
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Atemoyas
1853
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Avocados
1854
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Babacos
1855
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Bananas
1856
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Berries
1857
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Breadfruit
1858
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Cactus Pears
1859
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Cherimoyas
1860
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Citrus Fruits
1861
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Citrus Fruits > Grapefruits
1862
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Citrus Fruits > Kumquats
1863
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Citrus Fruits > Lemons
1864
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Citrus Fruits > Limequats
1865
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Citrus Fruits > Limes
1866
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Citrus Fruits > Oranges
1867
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Citrus Fruits > Tangelos
1868
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Coconuts
1869
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Dates
1870
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Feijoas
1871
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Figs
1872
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Fruit Mixes
1873
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Grapes
1874
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Guavas
1875
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Homely Fruits
1876
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Kiwis
1877
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Longan
1878
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Loquats
1879
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Lychees
1880
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Madroño
1881
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Mamey
1882
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Mangosteens
1883
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Melons
1884
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Papayas
1885
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Passion Fruit
1886
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Pears
1887
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Persimmons
1888
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Physalis
1889
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Pineapples
1890
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Pitahayas
1891
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Pomegranates
1892
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Quince
1893
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Rambutans
1894
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Sapodillo
1895
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Sapote
1896
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Soursops
1897
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Starfruits
1898
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Stone Fruits
1899
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Stone Fruits > Apricots
1900
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Stone Fruits > Cherries
1901
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Stone Fruits > Mangoes
1902
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Stone Fruits > Peaches & Nectarines
1903
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Stone Fruits > Plumcots
1904
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Stone Fruits > Plums
1905
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Sugar Apples
1906
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Fruits > Tamarindo
1907
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables
1908
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Arracachas
1909
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Artichokes
1910
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Asparagus
1911
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Beans
1912
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Beets
1913
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Borage
1914
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Broccoli
1915
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Brussel Sprouts
1916
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Cabbage
1917
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Cactus Leaves
1918
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Cardoon
1919
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Carrots
1920
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Cauliflower
1921
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Celery
1922
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Celery Roots
1923
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Corn
1924
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Cucumbers
1925
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Eggplants
1926
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Fennel Bulbs
1927
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Fiddlehead Ferns
1928
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Gai Choy
1929
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Gai Lan
1930
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Garlic
1931
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Ginger Root
1932
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Gobo Root
1933
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens
1934
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > Arugula
1935
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > Beet Greens
1936
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > Bok Choy
1937
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > Chard
1938
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > Chicory
1939
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > Choy Sum
1940
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > Kale
1941
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > Lettuce
1942
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > On Choy
1943
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > Salad Mixes
1944
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > Spinach
1945
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Greens > Yu Choy
1946
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Horseradish Root
1947
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Jicama
1948
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Kohlrabi
1949
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Leeks
1950
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Lotus Roots
1951
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Malangas
1952
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Mushrooms
1953
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Okra
1954
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Onions
1955
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Parsley Roots
1956
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Parsnips
1957
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Peas
1958
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Peppers
1959
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Potatoes
1960
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Radishes
1961
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Rhubarb
1962
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Shallots
1963
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Sprouts
1964
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Squashes & Gourds
1965
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Sugar Cane
1966
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Sunchokes
1967
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Sweet Potatoes
1968
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Tamarillos
1969
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Taro Root
1970
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Tomatoes
1971
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Turnips & Rutabagas
1972
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Vegetable Mixes
1973
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Water Chestnuts
1974
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Watercress
1975
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Wheatgrass
1976
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Yams
1977
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fresh & Frozen Vegetables > Yuca Root
1978
- Food, Beverages & Tobacco > Food Items > Fruits & Vegetables > Fruit Sauces
1979
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal
1980
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal > Amaranth
1981
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal > Barley
1982
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal > Buckwheat
1983
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal > Cereal & Granola
1984
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal > Couscous
1985
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal > Millet
1986
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal > Oats, Grits & Hot Cereal
1987
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal > Quinoa
1988
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal > Rice
1989
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal > Rye
1990
- Food, Beverages & Tobacco > Food Items > Grains, Rice & Cereal > Wheat
1991
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs
1992
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Eggs
1993
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Eggs > Egg Whites
1994
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Eggs > Liquid & Frozen Eggs
1995
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Eggs > Prepared Eggs
1996
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Eggs > Whole Eggs
1997
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Meat
1998
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Meat > Canned Meats
1999
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Meat > Fresh & Frozen Meats
2000
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Meat > Lunch & Deli Meats
2001
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Seafood
2002
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Seafood > Canned Seafood
2003
- Food, Beverages & Tobacco > Food Items > Meat, Seafood & Eggs > Seafood > Fresh & Frozen Seafood
2004
- Food, Beverages & Tobacco > Food Items > Nuts & Seeds
2005
- Food, Beverages & Tobacco > Food Items > Pasta & Noodles
2006
- Food, Beverages & Tobacco > Food Items > Prepared Foods
2007
- Food, Beverages & Tobacco > Food Items > Prepared Foods > Prepared Appetizers & Side Dishes
2008
- Food, Beverages & Tobacco > Food Items > Prepared Foods > Prepared Meals & Entrées
2009
- Food, Beverages & Tobacco > Food Items > Seasonings & Spices
2010
- Food, Beverages & Tobacco > Food Items > Seasonings & Spices > Herbs & Spices
2011
- Food, Beverages & Tobacco > Food Items > Seasonings & Spices > MSG
2012
- Food, Beverages & Tobacco > Food Items > Seasonings & Spices > Pepper
2013
- Food, Beverages & Tobacco > Food Items > Seasonings & Spices > Salt
2014
- Food, Beverages & Tobacco > Food Items > Snack Foods
2015
- Food, Beverages & Tobacco > Food Items > Snack Foods > Breadsticks
2016
- Food, Beverages & Tobacco > Food Items > Snack Foods > Cereal & Granola Bars
2017
- Food, Beverages & Tobacco > Food Items > Snack Foods > Cereal & Granola Bars > Cereal Bars
2018
- Food, Beverages & Tobacco > Food Items > Snack Foods > Cereal & Granola Bars > Granola Bars
2019
- Food, Beverages & Tobacco > Food Items > Snack Foods > Cheese Puffs
2020
- Food, Beverages & Tobacco > Food Items > Snack Foods > Chips
2021
- Food, Beverages & Tobacco > Food Items > Snack Foods > Crackers
2022
- Food, Beverages & Tobacco > Food Items > Snack Foods > Croutons
2023
- Food, Beverages & Tobacco > Food Items > Snack Foods > Fruit Snacks
2024
- Food, Beverages & Tobacco > Food Items > Snack Foods > Jerky
2025
- Food, Beverages & Tobacco > Food Items > Snack Foods > Popcorn
2026
- Food, Beverages & Tobacco > Food Items > Snack Foods > Pork Rinds
2027
- Food, Beverages & Tobacco > Food Items > Snack Foods > Pretzels
2028
- Food, Beverages & Tobacco > Food Items > Snack Foods > Pudding & Gelatin Snacks
2029
- Food, Beverages & Tobacco > Food Items > Snack Foods > Puffed Rice Cakes
2030
- Food, Beverages & Tobacco > Food Items > Snack Foods > Salad Toppings
2031
- Food, Beverages & Tobacco > Food Items > Snack Foods > Sesame Sticks
2032
- Food, Beverages & Tobacco > Food Items > Snack Foods > Snack Cakes
2033
- Food, Beverages & Tobacco > Food Items > Snack Foods > Sticky Rice Cakes
2034
- Food, Beverages & Tobacco > Food Items > Snack Foods > Trail & Snack Mixes
2035
- Food, Beverages & Tobacco > Food Items > Soups & Broths
2036
- Food, Beverages & Tobacco > Food Items > Tofu, Soy & Vegetarian Products
2037
- Food, Beverages & Tobacco > Food Items > Tofu, Soy & Vegetarian Products > Cheese Alternatives
2038
- Food, Beverages & Tobacco > Food Items > Tofu, Soy & Vegetarian Products > Meat Alternatives
2039
- Food, Beverages & Tobacco > Food Items > Tofu, Soy & Vegetarian Products > Seitan
2040
- Food, Beverages & Tobacco > Food Items > Tofu, Soy & Vegetarian Products > Tempeh
2041
- Food, Beverages & Tobacco > Food Items > Tofu, Soy & Vegetarian Products > Tofu
2042
- Food, Beverages & Tobacco > Tobacco Products
2043
- Food, Beverages & Tobacco > Tobacco Products > Chewing Tobacco
2044
- Food, Beverages & Tobacco > Tobacco Products > Cigarettes
2045
- Food, Beverages & Tobacco > Tobacco Products > Cigars
2046
- Food, Beverages & Tobacco > Tobacco Products > Loose Tobacco
2047
- Food, Beverages & Tobacco > Tobacco Products > Smoking Pipes
2048
- Food, Beverages & Tobacco > Tobacco Products > Vaporizers & Electronic Cigarettes
2049
- Food, Beverages & Tobacco > Tobacco Products > Vaporizers & Electronic Cigarettes > Electronic Cigarettes
2050
- Food, Beverages & Tobacco > Tobacco Products > Vaporizers & Electronic Cigarettes > Vaporizers
2051
- Furniture
2052
- Furniture > Baby & Toddler Furniture
2053
- Furniture > Baby & Toddler Furniture > Baby & Toddler Furniture Sets
2054
- Furniture > Baby & Toddler Furniture > Bassinet & Cradle Accessories
2055
- Furniture > Baby & Toddler Furniture > Bassinets & Cradles
2056
- Furniture > Baby & Toddler Furniture > Changing Tables
2057
- Furniture > Baby & Toddler Furniture > Crib & Toddler Bed Accessories
2058
- Furniture > Baby & Toddler Furniture > Crib & Toddler Bed Accessories > Crib Bumpers & Liners
2059
- Furniture > Baby & Toddler Furniture > Crib & Toddler Bed Accessories > Crib Conversion Kits
2060
- Furniture > Baby & Toddler Furniture > Cribs & Toddler Beds
2061
- Furniture > Baby & Toddler Furniture > High Chair & Booster Seat Accessories
2062
- Furniture > Baby & Toddler Furniture > High Chairs & Booster Seats
2063
- Furniture > Beds & Accessories
2064
- Furniture > Beds & Accessories > Bed & Bed Frame Accessories
2065
- Furniture > Beds & Accessories > Beds & Bed Frames
2066
- Furniture > Beds & Accessories > Headboards & Footboards
2067
- Furniture > Beds & Accessories > Mattress Foundations
2068
- Furniture > Beds & Accessories > Mattresses
2069
- Furniture > Benches
2070
- Furniture > Benches > Kitchen & Dining Benches
2071
- Furniture > Benches > Storage & Entryway Benches
2072
- Furniture > Benches > Vanity Benches
2073
- Furniture > Cabinets & Storage
2074
- Furniture > Cabinets & Storage > Armoires & Wardrobes
2075
- Furniture > Cabinets & Storage > Buffets & Sideboards
2076
- Furniture > Cabinets & Storage > China Cabinets & Hutches
2077
- Furniture > Cabinets & Storage > Dressers
2078
- Furniture > Cabinets & Storage > File Cabinets
2079
- Furniture > Cabinets & Storage > Ironing Centers
2080
- Furniture > Cabinets & Storage > Kitchen Cabinets
2081
- Furniture > Cabinets & Storage > Magazine Racks
2082
- Furniture > Cabinets & Storage > Media Storage Cabinets & Racks
2083
- Furniture > Cabinets & Storage > Storage Cabinets & Lockers
2084
- Furniture > Cabinets & Storage > Storage Chests
2085
- Furniture > Cabinets & Storage > Storage Chests > Hope Chests
2086
- Furniture > Cabinets & Storage > Storage Chests > Toy Chests
2087
- Furniture > Cabinets & Storage > Vanities
2088
- Furniture > Cabinets & Storage > Vanities > Bathroom Vanities
2089
- Furniture > Cabinets & Storage > Vanities > Bedroom Vanities
2090
- Furniture > Cabinets & Storage > Wine & Liquor Cabinets
2091
- Furniture > Cabinets & Storage > Wine Racks
2092
- Furniture > Carts & Islands
2093
- Furniture > Carts & Islands > Kitchen & Dining Carts
2094
- Furniture > Carts & Islands > Kitchen Islands
2095
- Furniture > Chair Accessories
2096
- Furniture > Chair Accessories > Hanging Chair Replacement Parts
2097
- Furniture > Chairs
2098
- Furniture > Chairs > Arm Chairs, Recliners & Sleeper Chairs
2099
- Furniture > Chairs > Bean Bag Chairs
2100
- Furniture > Chairs > Chaises
2101
- Furniture > Chairs > Electric Massaging Chairs
2102
- Furniture > Chairs > Floor Chairs
2103
- Furniture > Chairs > Folding Chairs & Stools
2104
- Furniture > Chairs > Gaming Chairs
2105
- Furniture > Chairs > Hanging Chairs
2106
- Furniture > Chairs > Kitchen & Dining Room Chairs
2107
- Furniture > Chairs > Rocking Chairs
2108
- Furniture > Chairs > Slipper Chairs
2109
- Furniture > Chairs > Table & Bar Stools
2110
- Furniture > Entertainment Centers & TV Stands
2111
- Furniture > Furniture Sets
2112
- Furniture > Furniture Sets > Bathroom Furniture Sets
2113
- Furniture > Furniture Sets > Bedroom Furniture Sets
2114
- Furniture > Furniture Sets > Kitchen & Dining Furniture Sets
2115
- Furniture > Furniture Sets > Living Room Furniture Sets
2116
- Furniture > Futon Frames
2117
- Furniture > Futon Pads
2118
- Furniture > Futons
2119
- Furniture > Office Furniture
2120
- Furniture > Office Furniture > Desks
2121
- Furniture > Office Furniture > Office Chairs
2122
- Furniture > Office Furniture > Office Furniture Sets
2123
- Furniture > Office Furniture > Workspace Tables
2124
- Furniture > Office Furniture > Workspace Tables > Art & Drafting Tables
2125
- Furniture > Office Furniture > Workspace Tables > Conference Room Tables
2126
- Furniture > Office Furniture > Workstations & Cubicles
2127
- Furniture > Office Furniture Accessories
2128
- Furniture > Office Furniture Accessories > Desk Parts & Accessories
2129
- Furniture > Office Furniture Accessories > Office Chair Accessories
2130
- Furniture > Office Furniture Accessories > Workstation & Cubicle Accessories
2131
- Furniture > Ottomans
2132
- Furniture > Outdoor Furniture
2133
- Furniture > Outdoor Furniture > Outdoor Beds
2134
- Furniture > Outdoor Furniture > Outdoor Furniture Sets
2135
- Furniture > Outdoor Furniture > Outdoor Ottomans
2136
- Furniture > Outdoor Furniture > Outdoor Seating
2137
- Furniture > Outdoor Furniture > Outdoor Seating > Outdoor Benches
2138
- Furniture > Outdoor Furniture > Outdoor Seating > Outdoor Chairs
2139
- Furniture > Outdoor Furniture > Outdoor Seating > Outdoor Sectional Sofa Units
2140
- Furniture > Outdoor Furniture > Outdoor Seating > Outdoor Sofas
2141
- Furniture > Outdoor Furniture > Outdoor Seating > Sunloungers
2142
- Furniture > Outdoor Furniture > Outdoor Storage Boxes
2143
- Furniture > Outdoor Furniture > Outdoor Tables
2144
- Furniture > Outdoor Furniture Accessories
2145
- Furniture > Outdoor Furniture Accessories > Outdoor Furniture Covers
2146
- Furniture > Room Divider Accessories
2147
- Furniture > Room Dividers
2148
- Furniture > Shelving
2149
- Furniture > Shelving > Bookcases & Standing Shelves
2150
- Furniture > Shelving > Wall Shelves & Ledges
2151
- Furniture > Shelving Accessories
2152
- Furniture > Shelving Accessories > Replacement Shelves
2153
- Furniture > Sofa Accessories
2154
- Furniture > Sofa Accessories > Chair & Sofa Supports
2155
- Furniture > Sofa Accessories > Sectional Sofa Units
2156
- Furniture > Sofas
2157
- Furniture > Table Accessories
2158
- Furniture > Table Accessories > Table Legs
2159
- Furniture > Table Accessories > Table Tops
2160
- Furniture > Tables
2161
- Furniture > Tables > Accent Tables
2162
- Furniture > Tables > Accent Tables > Coffee Tables
2163
- Furniture > Tables > Accent Tables > End Tables
2164
- Furniture > Tables > Accent Tables > Sofa Tables
2165
- Furniture > Tables > Activity Tables
2166
- Furniture > Tables > Folding Tables
2167
- Furniture > Tables > Kitchen & Dining Room Tables
2168
- Furniture > Tables > Kotatsu
2169
- Furniture > Tables > Nightstands
2170
- Furniture > Tables > Poker & Game Tables
2171
- Furniture > Tables > Sewing Machine Tables
2172
- Hardware
2173
- Hardware > Building Consumables
2174
- Hardware > Building Consumables > Chemicals
2175
- Hardware > Building Consumables > Chemicals > Acid Neutralizers
2176
- Hardware > Building Consumables > Chemicals > Ammonia
2177
- Hardware > Building Consumables > Chemicals > Chimney Cleaners
2178
- Hardware > Building Consumables > Chemicals > Concrete & Masonry Cleaners
2179
- Hardware > Building Consumables > Chemicals > De-icers
2180
- Hardware > Building Consumables > Chemicals > Deck & Fence Cleaners
2181
- Hardware > Building Consumables > Chemicals > Drain Cleaners
2182
- Hardware > Building Consumables > Chemicals > Electrical Freeze Sprays
2183
- Hardware > Building Consumables > Chemicals > Lighter Fluid
2184
- Hardware > Building Consumables > Chemicals > Septic Tank & Cesspool Treatments
2185
- Hardware > Building Consumables > Hardware Glue & Adhesives
2186
- Hardware > Building Consumables > Hardware Tape
2187
- Hardware > Building Consumables > Lubricants
2188
- Hardware > Building Consumables > Masonry Consumables
2189
- Hardware > Building Consumables > Masonry Consumables > Bricks & Concrete Blocks
2190
- Hardware > Building Consumables > Masonry Consumables > Cement, Mortar & Concrete Mixes
2191
- Hardware > Building Consumables > Masonry Consumables > Grout
2192
- Hardware > Building Consumables > Painting Consumables
2193
- Hardware > Building Consumables > Painting Consumables > Paint
2194
- Hardware > Building Consumables > Painting Consumables > Paint Binders
2195
- Hardware > Building Consumables > Painting Consumables > Primers
2196
- Hardware > Building Consumables > Painting Consumables > Stains
2197
- Hardware > Building Consumables > Painting Consumables > Varnishes & Finishes
2198
- Hardware > Building Consumables > Plumbing Primer
2199
- Hardware > Building Consumables > Protective Coatings & Sealants
2200
- Hardware > Building Consumables > Solder & Flux
2201
- Hardware > Building Consumables > Solvents, Strippers & Thinners
2202
- Hardware > Building Consumables > Wall Patching Compounds & Plaster
2203
- Hardware > Building Materials
2204
- Hardware > Building Materials > Countertops
2205
- Hardware > Building Materials > Door Hardware
2206
- Hardware > Building Materials > Door Hardware > Door Bells & Chimes
2207
- Hardware > Building Materials > Door Hardware > Door Closers
2208
- Hardware > Building Materials > Door Hardware > Door Frames
2209
- Hardware > Building Materials > Door Hardware > Door Keyhole Escutcheons
2210
- Hardware > Building Materials > Door Hardware > Door Knobs & Handles
2211
- Hardware > Building Materials > Door Hardware > Door Knockers
2212
- Hardware > Building Materials > Door Hardware > Door Push Plates
2213
- Hardware > Building Materials > Door Hardware > Door Stops
2214
- Hardware > Building Materials > Door Hardware > Door Strikes
2215
- Hardware > Building Materials > Doors
2216
- Hardware > Building Materials > Doors > Garage Doors
2217
- Hardware > Building Materials > Doors > Home Doors
2218
- Hardware > Building Materials > Drywall
2219
- Hardware > Building Materials > Flooring & Carpet
2220
- Hardware > Building Materials > Glass
2221
- Hardware > Building Materials > Handrails & Railing Systems
2222
- Hardware > Building Materials > Hatches
2223
- Hardware > Building Materials > Insulation
2224
- Hardware > Building Materials > Lumber & Sheet Stock
2225
- Hardware > Building Materials > Molding
2226
- Hardware > Building Materials > Rebar & Remesh
2227
- Hardware > Building Materials > Roofing
2228
- Hardware > Building Materials > Roofing > Gutter Accessories
2229
- Hardware > Building Materials > Roofing > Gutters
2230
- Hardware > Building Materials > Roofing > Roof Flashings
2231
- Hardware > Building Materials > Roofing > Roofing Shingles & Tiles
2232
- Hardware > Building Materials > Shutters
2233
- Hardware > Building Materials > Siding
2234
- Hardware > Building Materials > Sound Dampening Panels & Foam
2235
- Hardware > Building Materials > Staircases
2236
- Hardware > Building Materials > Wall & Ceiling Tile
2237
- Hardware > Building Materials > Wall Paneling
2238
- Hardware > Building Materials > Weather Stripping & Weatherization Supplies
2239
- Hardware > Building Materials > Window Hardware
2240
- Hardware > Building Materials > Window Hardware > Window Cranks
2241
- Hardware > Building Materials > Window Hardware > Window Frames
2242
- Hardware > Building Materials > Windows
2243
- Hardware > Fencing & Barriers
2244
- Hardware > Fencing & Barriers > Fence & Gate Accessories
2245
- Hardware > Fencing & Barriers > Fence Panels
2246
- Hardware > Fencing & Barriers > Fence Pickets
2247
- Hardware > Fencing & Barriers > Fence Posts & Rails
2248
- Hardware > Fencing & Barriers > Garden Borders & Edging
2249
- Hardware > Fencing & Barriers > Gates
2250
- Hardware > Fencing & Barriers > Lattice
2251
- Hardware > Fencing & Barriers > Safety & Crowd Control Barriers
2252
- Hardware > Fuel
2253
- Hardware > Fuel > Home Heating Oil
2254
- Hardware > Fuel > Kerosene
2255
- Hardware > Fuel > Kerosene > Clear Kerosene
2256
- Hardware > Fuel > Kerosene > Dyed Kerosene
2257
- Hardware > Fuel > Propane
2258
- Hardware > Fuel Containers & Tanks
2259
- Hardware > Hardware Accessories
2260
- Hardware > Hardware Accessories > Brackets & Reinforcement Braces
2261
- Hardware > Hardware Accessories > Cabinet Hardware
2262
- Hardware > Hardware Accessories > Cabinet Hardware > Cabinet & Furniture Keyhole Escutcheons
2263
- Hardware > Hardware Accessories > Cabinet Hardware > Cabinet Backplates
2264
- Hardware > Hardware Accessories > Cabinet Hardware > Cabinet Catches
2265
- Hardware > Hardware Accessories > Cabinet Hardware > Cabinet Doors
2266
- Hardware > Hardware Accessories > Cabinet Hardware > Cabinet Knobs & Handles
2267
- Hardware > Hardware Accessories > Casters
2268
- Hardware > Hardware Accessories > Chain, Wire & Rope
2269
- Hardware > Hardware Accessories > Chain, Wire & Rope > Bungee Cords
2270
- Hardware > Hardware Accessories > Chain, Wire & Rope > Chains
2271
- Hardware > Hardware Accessories > Chain, Wire & Rope > Pull Chains
2272
- Hardware > Hardware Accessories > Chain, Wire & Rope > Ropes & Hardware Cable
2273
- Hardware > Hardware Accessories > Chain, Wire & Rope > Tie Down Straps
2274
- Hardware > Hardware Accessories > Chain, Wire & Rope > Twine
2275
- Hardware > Hardware Accessories > Chain, Wire & Rope > Utility Wire
2276
- Hardware > Hardware Accessories > Coils
2277
- Hardware > Hardware Accessories > Concrete Molds
2278
- Hardware > Hardware Accessories > Dowel Pins & Rods
2279
- Hardware > Hardware Accessories > Drawer Slides
2280
- Hardware > Hardware Accessories > Drop Cloths
2281
- Hardware > Hardware Accessories > Filters & Screens
2282
- Hardware > Hardware Accessories > Flagging & Caution Tape
2283
- Hardware > Hardware Accessories > Gas Hoses
2284
- Hardware > Hardware Accessories > Ground Spikes
2285
- Hardware > Hardware Accessories > Hardware Fasteners
2286
- Hardware > Hardware Accessories > Hardware Fasteners > Drywall Anchors
2287
- Hardware > Hardware Accessories > Hardware Fasteners > Nails
2288
- Hardware > Hardware Accessories > Hardware Fasteners > Nuts & Bolts
2289
- Hardware > Hardware Accessories > Hardware Fasteners > Rivets
2290
- Hardware > Hardware Accessories > Hardware Fasteners > Screw Posts
2291
- Hardware > Hardware Accessories > Hardware Fasteners > Screws
2292
- Hardware > Hardware Accessories > Hardware Fasteners > Threaded Rods
2293
- Hardware > Hardware Accessories > Hardware Fasteners > Washers
2294
- Hardware > Hardware Accessories > Hinges
2295
- Hardware > Hardware Accessories > Hooks, Buckles & Fasteners
2296
- Hardware > Hardware Accessories > Hooks, Buckles & Fasteners > Chain Connectors & Links
2297
- Hardware > Hardware Accessories > Hooks, Buckles & Fasteners > Gear Ties
2298
- Hardware > Hardware Accessories > Hooks, Buckles & Fasteners > Lifting Hooks, Clamps & Shackles
2299
- Hardware > Hardware Accessories > Hooks, Buckles & Fasteners > Utility Buckles
2300
- Hardware > Hardware Accessories > Lubrication Hoses
2301
- Hardware > Hardware Accessories > Metal Casting Molds
2302
- Hardware > Hardware Accessories > Moving & Soundproofing Blankets & Covers
2303
- Hardware > Hardware Accessories > Pneumatic Hoses
2304
- Hardware > Hardware Accessories > Post Base Plates
2305
- Hardware > Hardware Accessories > Springs
2306
- Hardware > Hardware Accessories > Tarps
2307
- Hardware > Hardware Accessories > Tool Storage & Organization
2308
- Hardware > Hardware Accessories > Tool Storage & Organization > Garden Hose Storage
2309
- Hardware > Hardware Accessories > Tool Storage & Organization > Tool & Equipment Belts
2310
- Hardware > Hardware Accessories > Tool Storage & Organization > Tool Bags
2311
- Hardware > Hardware Accessories > Tool Storage & Organization > Tool Boxes
2312
- Hardware > Hardware Accessories > Tool Storage & Organization > Tool Cabinets & Chests
2313
- Hardware > Hardware Accessories > Tool Storage & Organization > Tool Organizer Liners & Inserts
2314
- Hardware > Hardware Accessories > Tool Storage & Organization > Tool Sheaths
2315
- Hardware > Hardware Accessories > Tool Storage & Organization > Work Benches
2316
- Hardware > Hardware Accessories > Wall Jacks & Braces
2317
- Hardware > Hardware Pumps
2318
- Hardware > Hardware Pumps > Home Appliance Pumps
2319
- Hardware > Hardware Pumps > Pool, Fountain & Pond Pumps
2320
- Hardware > Hardware Pumps > Sprinkler, Booster & Irrigation System Pumps
2321
- Hardware > Hardware Pumps > Sump, Sewage & Effluent Pumps
2322
- Hardware > Hardware Pumps > Utility Pumps
2323
- Hardware > Hardware Pumps > Well Pumps & Systems
2324
- Hardware > Heating, Ventilation & Air Conditioning
2325
- Hardware > Heating, Ventilation & Air Conditioning > Air & Filter Dryers
2326
- Hardware > Heating, Ventilation & Air Conditioning > Air Ducts
2327
- Hardware > Heating, Ventilation & Air Conditioning > HVAC Controls
2328
- Hardware > Heating, Ventilation & Air Conditioning > HVAC Controls > Control Panels
2329
- Hardware > Heating, Ventilation & Air Conditioning > HVAC Controls > Humidistats
2330
- Hardware > Heating, Ventilation & Air Conditioning > HVAC Controls > Thermostats
2331
- Hardware > Heating, Ventilation & Air Conditioning > Vents & Flues
2332
- Hardware > Locks & Keys
2333
- Hardware > Locks & Keys > Key Blanks
2334
- Hardware > Locks & Keys > Key Caps
2335
- Hardware > Locks & Keys > Key Card Entry Systems
2336
- Hardware > Locks & Keys > Locks & Latches
2337
- Hardware > Plumbing
2338
- Hardware > Plumbing > Plumbing Fittings & Supports
2339
- Hardware > Plumbing > Plumbing Fittings & Supports > Gaskets & O-Rings
2340
- Hardware > Plumbing > Plumbing Fittings & Supports > In-Wall Carriers & Mounting Frames
2341
- Hardware > Plumbing > Plumbing Fittings & Supports > Nozzles
2342
- Hardware > Plumbing > Plumbing Fittings & Supports > Pipe Adapters & Bushings
2343
- Hardware > Plumbing > Plumbing Fittings & Supports > Pipe Caps & Plugs
2344
- Hardware > Plumbing > Plumbing Fittings & Supports > Pipe Connectors
2345
- Hardware > Plumbing > Plumbing Fittings & Supports > Plumbing Flanges
2346
- Hardware > Plumbing > Plumbing Fittings & Supports > Plumbing Pipe Clamps
2347
- Hardware > Plumbing > Plumbing Fittings & Supports > Plumbing Regulators
2348
- Hardware > Plumbing > Plumbing Fittings & Supports > Plumbing Valves
2349
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts
2350
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Bathtub Accessories
2351
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Bathtub Accessories > Bathtub Bases & Feet
2352
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Bathtub Accessories > Bathtub Skirts
2353
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Bathtub Accessories > Bathtub Spouts
2354
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Drain Components
2355
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Drain Components > Drain Covers & Strainers
2356
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Drain Components > Drain Frames
2357
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Drain Components > Drain Liners
2358
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Drain Components > Drain Openers
2359
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Drain Components > Drain Rods
2360
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Drain Components > Plumbing Traps
2361
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Drain Components > Plumbing Wastes
2362
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Drains
2363
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Faucet Accessories
2364
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Faucet Accessories > Faucet Aerators
2365
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Faucet Accessories > Faucet Handles & Controls
2366
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Fixture Plates
2367
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Shower Parts
2368
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Shower Parts > Bathtub & Shower Jets
2369
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Shower Parts > Electric & Power Showers
2370
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Shower Parts > Shower Arms & Connectors
2371
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Shower Parts > Shower Bases
2372
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Shower Parts > Shower Columns
2373
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Shower Parts > Shower Doors & Enclosures
2374
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Shower Parts > Shower Heads
2375
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Shower Parts > Shower Walls & Surrounds
2376
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Shower Parts > Shower Water Filters
2377
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Sink Accessories
2378
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Sink Accessories > Sink Legs
2379
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Toilet & Bidet Accessories
2380
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Toilet & Bidet Accessories > Ballcocks & Flappers
2381
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Toilet & Bidet Accessories > Bidet Faucets & Sprayers
2382
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Toilet & Bidet Accessories > Toilet & Bidet Seats
2383
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Toilet & Bidet Accessories > Toilet Seat Covers
2384
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Toilet & Bidet Accessories > Toilet Seat Lid Covers
2385
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Toilet & Bidet Accessories > Toilet Tank Covers
2386
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Toilet & Bidet Accessories > Toilet Tank Levers
2387
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Toilet & Bidet Accessories > Toilet Tanks
2388
- Hardware > Plumbing > Plumbing Fixture Hardware & Parts > Toilet & Bidet Accessories > Toilet Trim
2389
- Hardware > Plumbing > Plumbing Fixtures
2390
- Hardware > Plumbing > Plumbing Fixtures > Bathroom Suites
2391
- Hardware > Plumbing > Plumbing Fixtures > Bathtubs
2392
- Hardware > Plumbing > Plumbing Fixtures > Faucets
2393
- Hardware > Plumbing > Plumbing Fixtures > Shower Stalls & Kits
2394
- Hardware > Plumbing > Plumbing Fixtures > Sinks
2395
- Hardware > Plumbing > Plumbing Fixtures > Sinks > Bathroom Sinks
2396
- Hardware > Plumbing > Plumbing Fixtures > Sinks > Kitchen & Utility Sinks
2397
- Hardware > Plumbing > Plumbing Fixtures > Toilets & Bidets
2398
- Hardware > Plumbing > Plumbing Fixtures > Toilets & Bidets > Bidets
2399
- Hardware > Plumbing > Plumbing Fixtures > Toilets & Bidets > Toilets
2400
- Hardware > Plumbing > Plumbing Fixtures > Toilets & Bidets > Urinals
2401
- Hardware > Plumbing > Plumbing Hoses & Supply Lines
2402
- Hardware > Plumbing > Plumbing Pipes
2403
- Hardware > Plumbing > Plumbing Repair Kits
2404
- Hardware > Plumbing > Water Dispensing & Filtration
2405
- Hardware > Plumbing > Water Dispensing & Filtration > In-Line Water Filters
2406
- Hardware > Plumbing > Water Dispensing & Filtration > Water Dispensers
2407
- Hardware > Plumbing > Water Dispensing & Filtration > Water Dispensers > Drinking Fountains
2408
- Hardware > Plumbing > Water Dispensing & Filtration > Water Dispensers > Water Chillers
2409
- Hardware > Plumbing > Water Dispensing & Filtration > Water Distillers
2410
- Hardware > Plumbing > Water Dispensing & Filtration > Water Filtration Accessories
2411
- Hardware > Plumbing > Water Dispensing & Filtration > Water Filtration Accessories > Water Filter Cartridges
2412
- Hardware > Plumbing > Water Dispensing & Filtration > Water Filtration Accessories > Water Filter Housings
2413
- Hardware > Plumbing > Water Dispensing & Filtration > Water Softener Salt
2414
- Hardware > Plumbing > Water Dispensing & Filtration > Water Softeners
2415
- Hardware > Plumbing > Water Levelers
2416
- Hardware > Plumbing > Water Timers
2417
- Hardware > Plumbing > Well Supplies
2418
- Hardware > Power & Electrical Supplies
2419
- Hardware > Power & Electrical Supplies > Armatures, Rotors & Stators
2420
- Hardware > Power & Electrical Supplies > Ballasts & Starters
2421
- Hardware > Power & Electrical Supplies > Carbon Brushes
2422
- Hardware > Power & Electrical Supplies > Circuit Breaker Panels
2423
- Hardware > Power & Electrical Supplies > Conduit & Housings
2424
- Hardware > Power & Electrical Supplies > Conduit & Housings > Electrical Conduit
2425
- Hardware > Power & Electrical Supplies > Conduit & Housings > Heat-Shrink Tubing
2426
- Hardware > Power & Electrical Supplies > Electrical Motors
2427
- Hardware > Power & Electrical Supplies > Electrical Mount Boxes & Brackets
2428
- Hardware > Power & Electrical Supplies > Electrical Plug Caps
2429
- Hardware > Power & Electrical Supplies > Electrical Switches
2430
- Hardware > Power & Electrical Supplies > Electrical Switches > Light Switches
2431
- Hardware > Power & Electrical Supplies > Electrical Switches > Specialty Electrical Switches & Relays
2432
- Hardware > Power & Electrical Supplies > Electrical Wires & Cable
2433
- Hardware > Power & Electrical Supplies > Extension Cord Accessories
2434
- Hardware > Power & Electrical Supplies > Extension Cords
2435
- Hardware > Power & Electrical Supplies > Generator Accessories
2436
- Hardware > Power & Electrical Supplies > Generators
2437
- Hardware > Power & Electrical Supplies > Home Automation Kits
2438
- Hardware > Power & Electrical Supplies > Phone & Data Jacks
2439
- Hardware > Power & Electrical Supplies > Power Converters
2440
- Hardware > Power & Electrical Supplies > Power Inlets
2441
- Hardware > Power & Electrical Supplies > Power Inverters
2442
- Hardware > Power & Electrical Supplies > Power Outlets & Sockets
2443
- Hardware > Power & Electrical Supplies > Solar Energy Kits
2444
- Hardware > Power & Electrical Supplies > Solar Panels
2445
- Hardware > Power & Electrical Supplies > Voltage Transformers & Regulators
2446
- Hardware > Power & Electrical Supplies > Wall Plates & Covers
2447
- Hardware > Power & Electrical Supplies > Wall Socket Controls & Sensors
2448
- Hardware > Power & Electrical Supplies > Wire Caps & Nuts
2449
- Hardware > Power & Electrical Supplies > Wire Terminals & Connectors
2450
- Hardware > Small Engines
2451
- Hardware > Storage Tanks
2452
- Hardware > Tool Accessories
2453
- Hardware > Tool Accessories > Abrasive Blaster Accessories
2454
- Hardware > Tool Accessories > Abrasive Blaster Accessories > Sandblasting Cabinets
2455
- Hardware > Tool Accessories > Axe Accessories
2456
- Hardware > Tool Accessories > Axe Accessories > Axe Handles
2457
- Hardware > Tool Accessories > Axe Accessories > Axe Heads
2458
- Hardware > Tool Accessories > Cutter Accessories
2459
- Hardware > Tool Accessories > Cutter Accessories > Nibbler Dies
2460
- Hardware > Tool Accessories > Drill & Screwdriver Accessories
2461
- Hardware > Tool Accessories > Drill & Screwdriver Accessories > Drill & Screwdriver Bits
2462
- Hardware > Tool Accessories > Drill & Screwdriver Accessories > Drill Bit Extensions
2463
- Hardware > Tool Accessories > Drill & Screwdriver Accessories > Drill Bit Sharpeners
2464
- Hardware > Tool Accessories > Drill & Screwdriver Accessories > Drill Chucks
2465
- Hardware > Tool Accessories > Drill & Screwdriver Accessories > Drill Stands & Guides
2466
- Hardware > Tool Accessories > Drill & Screwdriver Accessories > Hole Saws
2467
- Hardware > Tool Accessories > Driver Accessories
2468
- Hardware > Tool Accessories > Flashlight Accessories
2469
- Hardware > Tool Accessories > Grinder Accessories
2470
- Hardware > Tool Accessories > Grinder Accessories > Grinding Wheels & Points
2471
- Hardware > Tool Accessories > Hammer Accessories
2472
- Hardware > Tool Accessories > Hammer Accessories > Air Hammer Accessories
2473
- Hardware > Tool Accessories > Hammer Accessories > Hammer Handles
2474
- Hardware > Tool Accessories > Hammer Accessories > Hammer Heads
2475
- Hardware > Tool Accessories > Industrial Staples
2476
- Hardware > Tool Accessories > Jigs
2477
- Hardware > Tool Accessories > Magnetizers & Demagnetizers
2478
- Hardware > Tool Accessories > Mattock & Pickaxe Accessories
2479
- Hardware > Tool Accessories > Mattock & Pickaxe Accessories > Mattock & Pickaxe Handles
2480
- Hardware > Tool Accessories > Measuring Tool & Sensor Accessories
2481
- Hardware > Tool Accessories > Measuring Tool & Sensor Accessories > Electrical Testing Tool Accessories
2482
- Hardware > Tool Accessories > Measuring Tool & Sensor Accessories > Gas Detector Accessories
2483
- Hardware > Tool Accessories > Measuring Tool & Sensor Accessories > Measuring Scale Accessories
2484
- Hardware > Tool Accessories > Measuring Tool & Sensor Accessories > Multimeter Accessories
2485
- Hardware > Tool Accessories > Mixing Tool Paddles
2486
- Hardware > Tool Accessories > Paint Tool Accessories
2487
- Hardware > Tool Accessories > Paint Tool Accessories > Airbrush Accessories
2488
- Hardware > Tool Accessories > Paint Tool Accessories > Paint Brush Cleaning Solutions
2489
- Hardware > Tool Accessories > Paint Tool Accessories > Paint Roller Accessories
2490
- Hardware > Tool Accessories > Power Tool Batteries
2491
- Hardware > Tool Accessories > Power Tool Chargers
2492
- Hardware > Tool Accessories > Router Accessories
2493
- Hardware > Tool Accessories > Router Accessories > Router Bits
2494
- Hardware > Tool Accessories > Router Accessories > Router Tables
2495
- Hardware > Tool Accessories > Sanding Accessories
2496
- Hardware > Tool Accessories > Sanding Accessories > Sandpaper & Sanding Sponges
2497
- Hardware > Tool Accessories > Saw Accessories
2498
- Hardware > Tool Accessories > Saw Accessories > Band Saw Accessories
2499
- Hardware > Tool Accessories > Saw Accessories > Handheld Circular Saw Accessories
2500
- Hardware > Tool Accessories > Saw Accessories > Jigsaw Accessories
2501
- Hardware > Tool Accessories > Saw Accessories > Miter Saw Accessories
2502
- Hardware > Tool Accessories > Saw Accessories > Table Saw Accessories
2503
- Hardware > Tool Accessories > Shaper Accessories
2504
- Hardware > Tool Accessories > Shaper Accessories > Shaper Cutters
2505
- Hardware > Tool Accessories > Soldering Iron Accessories
2506
- Hardware > Tool Accessories > Soldering Iron Accessories > Soldering Iron Stands
2507
- Hardware > Tool Accessories > Soldering Iron Accessories > Soldering Iron Tips
2508
- Hardware > Tool Accessories > Tool Blades
2509
- Hardware > Tool Accessories > Tool Blades > Cutter & Scraper Blades
2510
- Hardware > Tool Accessories > Tool Blades > Saw Blades
2511
- Hardware > Tool Accessories > Tool Handle Wedges
2512
- Hardware > Tool Accessories > Tool Safety Tethers
2513
- Hardware > Tool Accessories > Tool Sockets
2514
- Hardware > Tool Accessories > Tool Stands
2515
- Hardware > Tool Accessories > Tool Stands > Saw Stands
2516
- Hardware > Tool Accessories > Wedge Tools
2517
- Hardware > Tool Accessories > Welding Accessories
2518
- Hardware > Tools
2519
- Hardware > Tools > Abrasive Blasters
2520
- Hardware > Tools > Anvils
2521
- Hardware > Tools > Axes
2522
- Hardware > Tools > Carpentry Jointers
2523
- Hardware > Tools > Carving Chisels & Gouges
2524
- Hardware > Tools > Caulking Tools
2525
- Hardware > Tools > Chimney Brushes
2526
- Hardware > Tools > Compactors
2527
- Hardware > Tools > Compressors
2528
- Hardware > Tools > Concrete Brooms
2529
- Hardware > Tools > Cutters
2530
- Hardware > Tools > Cutters > Bolt Cutters
2531
- Hardware > Tools > Cutters > Glass Cutters
2532
- Hardware > Tools > Cutters > Handheld Metal Shears & Nibblers
2533
- Hardware > Tools > Cutters > Nippers
2534
- Hardware > Tools > Cutters > Pipe Cutters
2535
- Hardware > Tools > Cutters > Rebar Cutters
2536
- Hardware > Tools > Cutters > Tile & Shingle Cutters
2537
- Hardware > Tools > Cutters > Utility Knives
2538
- Hardware > Tools > Deburrers
2539
- Hardware > Tools > Dollies & Hand Trucks
2540
- Hardware > Tools > Drills
2541
- Hardware > Tools > Drills > Augers
2542
- Hardware > Tools > Drills > Drill Presses
2543
- Hardware > Tools > Drills > Handheld Power Drills
2544
- Hardware > Tools > Drills > Mortisers
2545
- Hardware > Tools > Drills > Pneumatic Drills
2546
- Hardware > Tools > Electrician Fish Tape
2547
- Hardware > Tools > Flashlights & Headlamps
2548
- Hardware > Tools > Flashlights & Headlamps > Flashlights
2549
- Hardware > Tools > Flashlights & Headlamps > Headlamps
2550
- Hardware > Tools > Grease Guns
2551
- Hardware > Tools > Grinders
2552
- Hardware > Tools > Grips
2553
- Hardware > Tools > Hammers
2554
- Hardware > Tools > Hammers > Manual Hammers
2555
- Hardware > Tools > Hammers > Powered Hammers
2556
- Hardware > Tools > Handheld Power Mixers
2557
- Hardware > Tools > Hardware Torches
2558
- Hardware > Tools > Heat Guns
2559
- Hardware > Tools > Impact Wrenches & Drivers
2560
- Hardware > Tools > Industrial Vibrators
2561
- Hardware > Tools > Inspection Mirrors
2562
- Hardware > Tools > Ladders & Scaffolding
2563
- Hardware > Tools > Ladders & Scaffolding > Ladder Carts
2564
- Hardware > Tools > Ladders & Scaffolding > Ladders
2565
- Hardware > Tools > Ladders & Scaffolding > Scaffolding
2566
- Hardware > Tools > Ladders & Scaffolding > Step Stools
2567
- Hardware > Tools > Ladders & Scaffolding > Work Platforms
2568
- Hardware > Tools > Lathes
2569
- Hardware > Tools > Light Bulb Changers
2570
- Hardware > Tools > Lighters & Matches
2571
- Hardware > Tools > Log Splitters
2572
- Hardware > Tools > Magnetic Sweepers
2573
- Hardware > Tools > Marking Tools
2574
- Hardware > Tools > Masonry Tools
2575
- Hardware > Tools > Masonry Tools > Brick Tools
2576
- Hardware > Tools > Masonry Tools > Cement Mixers
2577
- Hardware > Tools > Masonry Tools > Construction Lines
2578
- Hardware > Tools > Masonry Tools > Floats
2579
- Hardware > Tools > Masonry Tools > Grout Sponges
2580
- Hardware > Tools > Masonry Tools > Masonry Edgers & Groovers
2581
- Hardware > Tools > Masonry Tools > Masonry Jointers
2582
- Hardware > Tools > Masonry Tools > Masonry Trowels
2583
- Hardware > Tools > Masonry Tools > Power Trowels
2584
- Hardware > Tools > Mattocks & Pickaxes
2585
- Hardware > Tools > Measuring Tools & Sensors
2586
- Hardware > Tools > Measuring Tools & Sensors > Air Quality Meters
2587
- Hardware > Tools > Measuring Tools & Sensors > Altimeters
2588
- Hardware > Tools > Measuring Tools & Sensors > Anemometers
2589
- Hardware > Tools > Measuring Tools & Sensors > Barometers
2590
- Hardware > Tools > Measuring Tools & Sensors > Calipers
2591
- Hardware > Tools > Measuring Tools & Sensors > Cruising Rods
2592
- Hardware > Tools > Measuring Tools & Sensors > Distance Meters
2593
- Hardware > Tools > Measuring Tools & Sensors > Dividers
2594
- Hardware > Tools > Measuring Tools & Sensors > Electrical Testing Tools
2595
- Hardware > Tools > Measuring Tools & Sensors > Flow Meters & Controllers
2596
- Hardware > Tools > Measuring Tools & Sensors > Gas Detectors
2597
- Hardware > Tools > Measuring Tools & Sensors > Gauges
2598
- Hardware > Tools > Measuring Tools & Sensors > Geiger Counters
2599
- Hardware > Tools > Measuring Tools & Sensors > Hygrometers
2600
- Hardware > Tools > Measuring Tools & Sensors > Infrared Thermometers
2601
- Hardware > Tools > Measuring Tools & Sensors > Knife Guides
2602
- Hardware > Tools > Measuring Tools & Sensors > Levels
2603
- Hardware > Tools > Measuring Tools & Sensors > Levels > Bubble Levels
2604
- Hardware > Tools > Measuring Tools & Sensors > Levels > Laser Levels
2605
- Hardware > Tools > Measuring Tools & Sensors > Levels > Sight Levels
2606
- Hardware > Tools > Measuring Tools & Sensors > Measuring Scales
2607
- Hardware > Tools > Measuring Tools & Sensors > Measuring Wheels
2608
- Hardware > Tools > Measuring Tools & Sensors > Moisture Meters
2609
- Hardware > Tools > Measuring Tools & Sensors > Probes & Finders
2610
- Hardware > Tools > Measuring Tools & Sensors > Protractors
2611
- Hardware > Tools > Measuring Tools & Sensors > Rebar Locators
2612
- Hardware > Tools > Measuring Tools & Sensors > Rulers
2613
- Hardware > Tools > Measuring Tools & Sensors > Seismometer
2614
- Hardware > Tools > Measuring Tools & Sensors > Sound Meters
2615
- Hardware > Tools > Measuring Tools & Sensors > Squares
2616
- Hardware > Tools > Measuring Tools & Sensors > Straight Edges
2617
- Hardware > Tools > Measuring Tools & Sensors > Stud Sensors
2618
- Hardware > Tools > Measuring Tools & Sensors > Tape Measures
2619
- Hardware > Tools > Measuring Tools & Sensors > Theodolites
2620
- Hardware > Tools > Measuring Tools & Sensors > Thermal Imaging Cameras
2621
- Hardware > Tools > Measuring Tools & Sensors > Thermocouples & Thermopiles
2622
- Hardware > Tools > Measuring Tools & Sensors > Transducers
2623
- Hardware > Tools > Measuring Tools & Sensors > UV Light Meters
2624
- Hardware > Tools > Measuring Tools & Sensors > Vibration Meters
2625
- Hardware > Tools > Measuring Tools & Sensors > Weather Forecasters & Stations
2626
- Hardware > Tools > Measuring Tools & Sensors > pH Meters
2627
- Hardware > Tools > Milling Machines
2628
- Hardware > Tools > Multifunction Power Tools
2629
- Hardware > Tools > Nail Pullers
2630
- Hardware > Tools > Nailers & Staplers
2631
- Hardware > Tools > Oil Filter Drains
2632
- Hardware > Tools > Paint Tools
2633
- Hardware > Tools > Paint Tools > Airbrushes
2634
- Hardware > Tools > Paint Tools > Paint Brushes
2635
- Hardware > Tools > Paint Tools > Paint Edgers
2636
- Hardware > Tools > Paint Tools > Paint Rollers
2637
- Hardware > Tools > Paint Tools > Paint Shakers
2638
- Hardware > Tools > Paint Tools > Paint Sponges
2639
- Hardware > Tools > Paint Tools > Paint Sprayers
2640
- Hardware > Tools > Paint Tools > Paint Strainers
2641
- Hardware > Tools > Paint Tools > Paint Trays
2642
- Hardware > Tools > Pickup Tools
2643
- Hardware > Tools > Pipe & Bar Benders
2644
- Hardware > Tools > Pipe & Tube Cleaners
2645
- Hardware > Tools > Pipe Brushes
2646
- Hardware > Tools > Planers
2647
- Hardware > Tools > Planes
2648
- Hardware > Tools > Pliers
2649
- Hardware > Tools > Plungers
2650
- Hardware > Tools > Polishers & Buffers
2651
- Hardware > Tools > Post Hole Diggers
2652
- Hardware > Tools > Pry Bars
2653
- Hardware > Tools > Punches & Awls
2654
- Hardware > Tools > Putty Knives & Scrapers
2655
- Hardware > Tools > Reamers
2656
- Hardware > Tools > Riveting Tools
2657
- Hardware > Tools > Riveting Tools > Rivet Guns
2658
- Hardware > Tools > Riveting Tools > Rivet Pliers
2659
- Hardware > Tools > Routing Tools
2660
- Hardware > Tools > Sanders
2661
- Hardware > Tools > Sanding Blocks
2662
- Hardware > Tools > Saw Horses
2663
- Hardware > Tools > Saws
2664
- Hardware > Tools > Saws > Band Saws
2665
- Hardware > Tools > Saws > Cut-Off Saws
2666
- Hardware > Tools > Saws > Hand Saws
2667
- Hardware > Tools > Saws > Handheld Circular Saws
2668
- Hardware > Tools > Saws > Jigsaws
2669
- Hardware > Tools > Saws > Masonry & Tile Saws
2670
- Hardware > Tools > Saws > Miter Saws
2671
- Hardware > Tools > Saws > Panel Saws
2672
- Hardware > Tools > Saws > Reciprocating Saws
2673
- Hardware > Tools > Saws > Scroll Saws
2674
- Hardware > Tools > Saws > Table Saws
2675
- Hardware > Tools > Screwdrivers
2676
- Hardware > Tools > Shapers
2677
- Hardware > Tools > Sharpeners
2678
- Hardware > Tools > Socket Drivers
2679
- Hardware > Tools > Soldering Irons
2680
- Hardware > Tools > Tap Reseaters
2681
- Hardware > Tools > Taps & Dies
2682
- Hardware > Tools > Threading Machines
2683
- Hardware > Tools > Tool Clamps & Vises
2684
- Hardware > Tools > Tool Files
2685
- Hardware > Tools > Tool Keys
2686
- Hardware > Tools > Tool Knives
2687
- Hardware > Tools > Tool Sets
2688
- Hardware > Tools > Tool Sets > Hand Tool Sets
2689
- Hardware > Tools > Tool Sets > Power Tool Combo Sets
2690
- Hardware > Tools > Welding Guns & Plasma Cutters
2691
- Hardware > Tools > Wire & Cable Hand Tools
2692
- Hardware > Tools > Work Lights
2693
- Hardware > Tools > Wrenches
2694
- Health & Beauty
2695
- Health & Beauty > Health Care
2696
- Health & Beauty > Health Care > Acupuncture
2697
- Health & Beauty > Health Care > Acupuncture > Acupuncture Models
2698
- Health & Beauty > Health Care > Acupuncture > Acupuncture Needles
2699
- Health & Beauty > Health Care > Bed Pans
2700
- Health & Beauty > Health Care > Biometric Monitor Accessories
2701
- Health & Beauty > Health Care > Biometric Monitor Accessories > Activity Monitor Accessories
2702
- Health & Beauty > Health Care > Biometric Monitor Accessories > Blood Glucose Meter Accessories
2703
- Health & Beauty > Health Care > Biometric Monitor Accessories > Blood Glucose Meter Accessories > Blood Glucose Control Solution
2704
- Health & Beauty > Health Care > Biometric Monitor Accessories > Blood Glucose Meter Accessories > Blood Glucose Test Strips
2705
- Health & Beauty > Health Care > Biometric Monitor Accessories > Blood Glucose Meter Accessories > Lancing Devices
2706
- Health & Beauty > Health Care > Biometric Monitor Accessories > Blood Pressure Monitor Accessories
2707
- Health & Beauty > Health Care > Biometric Monitor Accessories > Blood Pressure Monitor Accessories > Blood Pressure Monitor Cuffs
2708
- Health & Beauty > Health Care > Biometric Monitor Accessories > Body Weight Scale Accessories
2709
- Health & Beauty > Health Care > Biometric Monitors
2710
- Health & Beauty > Health Care > Biometric Monitors > Activity Monitors
2711
- Health & Beauty > Health Care > Biometric Monitors > Blood Glucose Meters
2712
- Health & Beauty > Health Care > Biometric Monitors > Blood Pressure Monitors
2713
- Health & Beauty > Health Care > Biometric Monitors > Body Fat Analyzers
2714
- Health & Beauty > Health Care > Biometric Monitors > Body Weight Scales
2715
- Health & Beauty > Health Care > Biometric Monitors > Breathalyzers
2716
- Health & Beauty > Health Care > Biometric Monitors > Cholesterol Analyzers
2717
- Health & Beauty > Health Care > Biometric Monitors > Fertility Monitors and Ovulation Tests
2718
- Health & Beauty > Health Care > Biometric Monitors > Fertility Monitors and Ovulation Tests > Fertility Tests & Monitors
2719
- Health & Beauty > Health Care > Biometric Monitors > Fertility Monitors and Ovulation Tests > Ovulation Tests
2720
- Health & Beauty > Health Care > Biometric Monitors > Medical Thermometers
2721
- Health & Beauty > Health Care > Biometric Monitors > Prenatal Heart Rate Monitors
2722
- Health & Beauty > Health Care > Biometric Monitors > Pulse Oximeters
2723
- Health & Beauty > Health Care > Condoms
2724
- Health & Beauty > Health Care > Conductivity Gels & Lotions
2725
- Health & Beauty > Health Care > Contraceptive Cases
2726
- Health & Beauty > Health Care > First Aid
2727
- Health & Beauty > Health Care > First Aid > Antiseptics & Cleaning Supplies
2728
- Health & Beauty > Health Care > First Aid > Cast & Bandage Protectors
2729
- Health & Beauty > Health Care > First Aid > Eye Wash Supplies
2730
- Health & Beauty > Health Care > First Aid > First Aid Kits
2731
- Health & Beauty > Health Care > First Aid > Hot & Cold Therapies
2732
- Health & Beauty > Health Care > First Aid > Hot & Cold Therapies > Heat Rubs
2733
- Health & Beauty > Health Care > First Aid > Hot & Cold Therapies > Heating Pads
2734
- Health & Beauty > Health Care > First Aid > Hot & Cold Therapies > Ice Packs
2735
- Health & Beauty > Health Care > First Aid > Medical Tape & Bandages
2736
- Health & Beauty > Health Care > Fitness & Nutrition
2737
- Health & Beauty > Health Care > Fitness & Nutrition > Nutrition Bars
2738
- Health & Beauty > Health Care > Fitness & Nutrition > Nutrition Drinks & Shakes
2739
- Health & Beauty > Health Care > Fitness & Nutrition > Nutrition Gels & Chews
2740
- Health & Beauty > Health Care > Fitness & Nutrition > Nutritional Food Purées
2741
- Health & Beauty > Health Care > Fitness & Nutrition > Tube Feeding Supplements
2742
- Health & Beauty > Health Care > Fitness & Nutrition > Vitamins & Supplements
2743
- Health & Beauty > Health Care > Hearing Aids
2744
- Health & Beauty > Health Care > Incontinence Aids
2745
- Health & Beauty > Health Care > Light Therapy Lamps
2746
- Health & Beauty > Health Care > Medical Alarm Systems
2747
- Health & Beauty > Health Care > Medical Identification Tags & Jewelry
2748
- Health & Beauty > Health Care > Medical Tests
2749
- Health & Beauty > Health Care > Medical Tests > Allergy Test Kits
2750
- Health & Beauty > Health Care > Medical Tests > Blood Typing Test Kits
2751
- Health & Beauty > Health Care > Medical Tests > Drug Tests
2752
- Health & Beauty > Health Care > Medical Tests > HIV Tests
2753
- Health & Beauty > Health Care > Medical Tests > Pregnancy Tests
2754
- Health & Beauty > Health Care > Medical Tests > Urinary Tract Infection Tests
2755
- Health & Beauty > Health Care > Medicine & Drugs
2756
- Health & Beauty > Health Care > Mobility & Accessibility
2757
- Health & Beauty > Health Care > Mobility & Accessibility > Accessibility Equipment
2758
- Health & Beauty > Health Care > Mobility & Accessibility > Accessibility Equipment > Mobility Scooters
2759
- Health & Beauty > Health Care > Mobility & Accessibility > Accessibility Equipment > Stair Lifts
2760
- Health & Beauty > Health Care > Mobility & Accessibility > Accessibility Equipment > Transfer Boards & Sheets
2761
- Health & Beauty > Health Care > Mobility & Accessibility > Accessibility Equipment > Wheelchairs
2762
- Health & Beauty > Health Care > Mobility & Accessibility > Accessibility Equipment Accessories
2763
- Health & Beauty > Health Care > Mobility & Accessibility > Accessibility Furniture & Fixtures
2764
- Health & Beauty > Health Care > Mobility & Accessibility > Accessibility Furniture & Fixtures > Shower Benches & Seats
2765
- Health & Beauty > Health Care > Mobility & Accessibility > Walking Aid Accessories
2766
- Health & Beauty > Health Care > Mobility & Accessibility > Walking Aids
2767
- Health & Beauty > Health Care > Mobility & Accessibility > Walking Aids > Canes & Walking Sticks
2768
- Health & Beauty > Health Care > Mobility & Accessibility > Walking Aids > Crutches
2769
- Health & Beauty > Health Care > Mobility & Accessibility > Walking Aids > Walkers
2770
- Health & Beauty > Health Care > Occupational & Physical Therapy Equipment
2771
- Health & Beauty > Health Care > Occupational & Physical Therapy Equipment > Electrical Muscle Stimulators
2772
- Health & Beauty > Health Care > Occupational & Physical Therapy Equipment > Therapeutic Swings
2773
- Health & Beauty > Health Care > Pillboxes
2774
- Health & Beauty > Health Care > Respiratory Care
2775
- Health & Beauty > Health Care > Respiratory Care > Nebulizers
2776
- Health & Beauty > Health Care > Respiratory Care > Oxygen Tanks
2777
- Health & Beauty > Health Care > Respiratory Care > PAP Machines
2778
- Health & Beauty > Health Care > Respiratory Care > PAP Masks
2779
- Health & Beauty > Health Care > Respiratory Care > Steam Inhalers
2780
- Health & Beauty > Health Care > Specimen Cups
2781
- Health & Beauty > Health Care > Spermicides
2782
- Health & Beauty > Health Care > Stump Shrinkers
2783
- Health & Beauty > Health Care > Supports & Braces
2784
- Health & Beauty > Health Care > Surgical Lubricants
2785
- Health & Beauty > Jewelry Cleaning & Care
2786
- Health & Beauty > Jewelry Cleaning & Care > Jewelry Cleaning Solutions & Polishes
2787
- Health & Beauty > Jewelry Cleaning & Care > Jewelry Cleaning Tools
2788
- Health & Beauty > Jewelry Cleaning & Care > Jewelry Holders
2789
- Health & Beauty > Jewelry Cleaning & Care > Jewelry Steam Cleaners
2790
- Health & Beauty > Jewelry Cleaning & Care > Watch Repair Kits
2791
- Health & Beauty > Personal Care
2792
- Health & Beauty > Personal Care > Back Care
2793
- Health & Beauty > Personal Care > Back Care > Back & Lumbar Support Cushions
2794
- Health & Beauty > Personal Care > Cosmetics
2795
- Health & Beauty > Personal Care > Cosmetics > Bath & Body
2796
- Health & Beauty > Personal Care > Cosmetics > Bath & Body > Adult Hygienic Wipes
2797
- Health & Beauty > Personal Care > Cosmetics > Bath & Body > Bar Soap
2798
- Health & Beauty > Personal Care > Cosmetics > Bath & Body > Bath Additives
2799
- Health & Beauty > Personal Care > Cosmetics > Bath & Body > Bath Brushes
2800
- Health & Beauty > Personal Care > Cosmetics > Bath & Body > Bath Sponges & Loofahs
2801
- Health & Beauty > Personal Care > Cosmetics > Bath & Body > Body Wash
2802
- Health & Beauty > Personal Care > Cosmetics > Bath & Body > Hand Sanitizers & Wipes
2803
- Health & Beauty > Personal Care > Cosmetics > Bath & Body > Liquid Hand Soap
2804
- Health & Beauty > Personal Care > Cosmetics > Bath & Body > Powdered Hand Soap
2805
- Health & Beauty > Personal Care > Cosmetics > Bath & Body > Shower Caps
2806
- Health & Beauty > Personal Care > Cosmetics > Bath & Body Gift Sets
2807
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Sets
2808
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tool Cleansers
2809
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools
2810
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools
2811
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > Double Eyelid Glue & Tape
2812
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > Eyebrow Stencils
2813
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > Eyelash Curler Refills
2814
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > Eyelash Curlers
2815
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > Face Mirrors
2816
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > Facial Blotting Paper
2817
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > False Eyelash Accessories
2818
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > False Eyelash Accessories > False Eyelash Adhesive
2819
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > False Eyelash Accessories > False Eyelash Applicators
2820
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > False Eyelash Accessories > False Eyelash Remover
2821
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > Makeup Brushes
2822
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > Makeup Sponges
2823
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Makeup Tools > Refillable Makeup Palettes & Cases
2824
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Nail Tools
2825
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Nail Tools > Cuticle Pushers
2826
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Nail Tools > Cuticle Scissors
2827
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Nail Tools > Manicure & Pedicure Spacers
2828
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Nail Tools > Manicure Tool Sets
2829
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Nail Tools > Nail Buffers
2830
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Nail Tools > Nail Clippers
2831
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Nail Tools > Nail Drill Accessories
2832
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Nail Tools > Nail Drills
2833
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Nail Tools > Nail Dryers
2834
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Nail Tools > Nail Files & Emery Boards
2835
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Skin Care Tools
2836
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Skin Care Tools > Facial Saunas
2837
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Skin Care Tools > Foot Files
2838
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Skin Care Tools > Lotion & Sunscreen Applicators
2839
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Skin Care Tools > Pumice Stones
2840
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Skin Care Tools > Skin Care Extractors
2841
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Skin Care Tools > Skin Care Rollers
2842
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Skin Care Tools > Skin Cleansing Brush Heads
2843
- Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools > Skin Care Tools > Skin Cleansing Brushes & Systems
2844
- Health & Beauty > Personal Care > Cosmetics > Makeup
2845
- Health & Beauty > Personal Care > Cosmetics > Makeup > Body Makeup
2846
- Health & Beauty > Personal Care > Cosmetics > Makeup > Body Makeup > Body & Hair Glitter
2847
- Health & Beauty > Personal Care > Cosmetics > Makeup > Body Makeup > Body Paint & Foundation
2848
- Health & Beauty > Personal Care > Cosmetics > Makeup > Costume & Stage Makeup
2849
- Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup
2850
- Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup > Eye Primer
2851
- Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup > Eye Shadow
2852
- Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup > Eyebrow Enhancers
2853
- Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup > Eyeliner
2854
- Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup > False Eyelashes
2855
- Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup > Lash & Brow Growth Treatments
2856
- Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup > Mascara
2857
- Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup > Mascara Primer
2858
- Health & Beauty > Personal Care > Cosmetics > Makeup > Face Makeup
2859
- Health & Beauty > Personal Care > Cosmetics > Makeup > Face Makeup > Blushes & Bronzers
2860
- Health & Beauty > Personal Care > Cosmetics > Makeup > Face Makeup > Face Powder
2861
- Health & Beauty > Personal Care > Cosmetics > Makeup > Face Makeup > Face Primer
2862
- Health & Beauty > Personal Care > Cosmetics > Makeup > Face Makeup > Foundations & Concealers
2863
- Health & Beauty > Personal Care > Cosmetics > Makeup > Face Makeup > Highlighters & Luminizers
2864
- Health & Beauty > Personal Care > Cosmetics > Makeup > Lip Makeup
2865
- Health & Beauty > Personal Care > Cosmetics > Makeup > Lip Makeup > Lip & Cheek Stains
2866
- Health & Beauty > Personal Care > Cosmetics > Makeup > Lip Makeup > Lip Gloss
2867
- Health & Beauty > Personal Care > Cosmetics > Makeup > Lip Makeup > Lip Liner
2868
- Health & Beauty > Personal Care > Cosmetics > Makeup > Lip Makeup > Lip Primer
2869
- Health & Beauty > Personal Care > Cosmetics > Makeup > Lip Makeup > Lipstick
2870
- Health & Beauty > Personal Care > Cosmetics > Makeup > Makeup Finishing Sprays
2871
- Health & Beauty > Personal Care > Cosmetics > Makeup > Temporary Tattoos
2872
- Health & Beauty > Personal Care > Cosmetics > Nail Care
2873
- Health & Beauty > Personal Care > Cosmetics > Nail Care > Cuticle Cream & Oil
2874
- Health & Beauty > Personal Care > Cosmetics > Nail Care > False Nails
2875
- Health & Beauty > Personal Care > Cosmetics > Nail Care > Manicure Glue
2876
- Health & Beauty > Personal Care > Cosmetics > Nail Care > Nail Art Kits & Accessories
2877
- Health & Beauty > Personal Care > Cosmetics > Nail Care > Nail Polish Drying Drops & Sprays
2878
- Health & Beauty > Personal Care > Cosmetics > Nail Care > Nail Polish Removers
2879
- Health & Beauty > Personal Care > Cosmetics > Nail Care > Nail Polish Thinners
2880
- Health & Beauty > Personal Care > Cosmetics > Nail Care > Nail Polishes
2881
- Health & Beauty > Personal Care > Cosmetics > Perfume & Cologne
2882
- Health & Beauty > Personal Care > Cosmetics > Skin Care
2883
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Acne Treatments & Kits
2884
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Anti-Aging Skin Care Kits
2885
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Body Oil
2886
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Body Powder
2887
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Compressed Skin Care Mask Sheets
2888
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Facial Cleansers
2889
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Facial Cleansing Kits
2890
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Facial Pore Strips
2891
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Lip Balms & Treatments
2892
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Lip Balms & Treatments > Lip Balms
2893
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Lip Balms & Treatments > Medicated Lip Treatments
2894
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Lotion & Moisturizer
2895
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Makeup Removers
2896
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Petroleum Jelly
2897
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Skin Care Masks & Peels
2898
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Skin Insect Repellent
2899
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Sunscreen
2900
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Tanning Products
2901
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Tanning Products > Self Tanner
2902
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Tanning Products > Tanning Oil & Lotion
2903
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Toners & Astringents
2904
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Toners & Astringents > Astringents
2905
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Toners & Astringents > Toners
2906
- Health & Beauty > Personal Care > Cosmetics > Skin Care > Wart Removers
2907
- Health & Beauty > Personal Care > Cotton Balls
2908
- Health & Beauty > Personal Care > Cotton Swabs
2909
- Health & Beauty > Personal Care > Deodorant & Anti-Perspirant
2910
- Health & Beauty > Personal Care > Deodorant & Anti-Perspirant > Anti-Perspirant
2911
- Health & Beauty > Personal Care > Deodorant & Anti-Perspirant > Deodorant
2912
- Health & Beauty > Personal Care > Ear Care
2913
- Health & Beauty > Personal Care > Ear Care > Ear Candles
2914
- Health & Beauty > Personal Care > Ear Care > Ear Drops
2915
- Health & Beauty > Personal Care > Ear Care > Ear Dryers
2916
- Health & Beauty > Personal Care > Ear Care > Ear Picks & Spoons
2917
- Health & Beauty > Personal Care > Ear Care > Ear Syringes
2918
- Health & Beauty > Personal Care > Ear Care > Ear Wax Removal Kits
2919
- Health & Beauty > Personal Care > Ear Care > Earplug Dispensers
2920
- Health & Beauty > Personal Care > Ear Care > Earplugs
2921
- Health & Beauty > Personal Care > Enema Kits & Supplies
2922
- Health & Beauty > Personal Care > Feminine Sanitary Supplies
2923
- Health & Beauty > Personal Care > Feminine Sanitary Supplies > Feminine Deodorant
2924
- Health & Beauty > Personal Care > Feminine Sanitary Supplies > Feminine Douches & Creams
2925
- Health & Beauty > Personal Care > Feminine Sanitary Supplies > Feminine Pads & Protectors
2926
- Health & Beauty > Personal Care > Feminine Sanitary Supplies > Menstrual Cups
2927
- Health & Beauty > Personal Care > Feminine Sanitary Supplies > Tampons
2928
- Health & Beauty > Personal Care > Foot Care
2929
- Health & Beauty > Personal Care > Foot Care > Bunion Care Supplies
2930
- Health & Beauty > Personal Care > Foot Care > Corn & Callus Care Supplies
2931
- Health & Beauty > Personal Care > Foot Care > Foot Odor Removers
2932
- Health & Beauty > Personal Care > Foot Care > Insoles & Inserts
2933
- Health & Beauty > Personal Care > Foot Care > Toe Spacers
2934
- Health & Beauty > Personal Care > Hair Care
2935
- Health & Beauty > Personal Care > Hair Care > Hair Care Kits
2936
- Health & Beauty > Personal Care > Hair Care > Hair Color
2937
- Health & Beauty > Personal Care > Hair Care > Hair Color Removers
2938
- Health & Beauty > Personal Care > Hair Care > Hair Coloring Accessories
2939
- Health & Beauty > Personal Care > Hair Care > Hair Loss Concealers
2940
- Health & Beauty > Personal Care > Hair Care > Hair Loss Treatments
2941
- Health & Beauty > Personal Care > Hair Care > Hair Permanents & Straighteners
2942
- Health & Beauty > Personal Care > Hair Care > Hair Shears
2943
- Health & Beauty > Personal Care > Hair Care > Hair Steamers & Heat Caps
2944
- Health & Beauty > Personal Care > Hair Care > Hair Styling Products
2945
- Health & Beauty > Personal Care > Hair Care > Hair Styling Tool Accessories
2946
- Health & Beauty > Personal Care > Hair Care > Hair Styling Tool Accessories > Hair Curler Clips & Pins
2947
- Health & Beauty > Personal Care > Hair Care > Hair Styling Tool Accessories > Hair Dryer Accessories
2948
- Health & Beauty > Personal Care > Hair Care > Hair Styling Tool Accessories > Hair Iron Accessories
2949
- Health & Beauty > Personal Care > Hair Care > Hair Styling Tools
2950
- Health & Beauty > Personal Care > Hair Care > Hair Styling Tools > Combs & Brushes
2951
- Health & Beauty > Personal Care > Hair Care > Hair Styling Tools > Curling Irons
2952
- Health & Beauty > Personal Care > Hair Care > Hair Styling Tools > Hair Curlers
2953
- Health & Beauty > Personal Care > Hair Care > Hair Styling Tools > Hair Dryers
2954
- Health & Beauty > Personal Care > Hair Care > Hair Styling Tools > Hair Straighteners
2955
- Health & Beauty > Personal Care > Hair Care > Hair Styling Tools > Hair Styling Tool Sets
2956
- Health & Beauty > Personal Care > Hair Care > Shampoo & Conditioner
2957
- Health & Beauty > Personal Care > Hair Care > Shampoo & Conditioner > Conditioners
2958
- Health & Beauty > Personal Care > Hair Care > Shampoo & Conditioner > Shampoo
2959
- Health & Beauty > Personal Care > Hair Care > Shampoo & Conditioner > Shampoo & Conditioner Sets
2960
- Health & Beauty > Personal Care > Massage & Relaxation
2961
- Health & Beauty > Personal Care > Massage & Relaxation > Back Scratchers
2962
- Health & Beauty > Personal Care > Massage & Relaxation > Eye Pillows
2963
- Health & Beauty > Personal Care > Massage & Relaxation > Massage Chairs
2964
- Health & Beauty > Personal Care > Massage & Relaxation > Massage Oil
2965
- Health & Beauty > Personal Care > Massage & Relaxation > Massage Stone Warmers
2966
- Health & Beauty > Personal Care > Massage & Relaxation > Massage Stones
2967
- Health & Beauty > Personal Care > Massage & Relaxation > Massage Tables
2968
- Health & Beauty > Personal Care > Massage & Relaxation > Massagers
2969
- Health & Beauty > Personal Care > Massage & Relaxation > Massagers > Electric Massagers
2970
- Health & Beauty > Personal Care > Massage & Relaxation > Massagers > Manual Massage Tools
2971
- Health & Beauty > Personal Care > Massage & Relaxation > Massagers > Massage Cushions
2972
- Health & Beauty > Personal Care > Oral Care
2973
- Health & Beauty > Personal Care > Oral Care > Breath Spray
2974
- Health & Beauty > Personal Care > Oral Care > Dental Floss
2975
- Health & Beauty > Personal Care > Oral Care > Dental Mouthguards
2976
- Health & Beauty > Personal Care > Oral Care > Dental Water Jet Replacement Tips
2977
- Health & Beauty > Personal Care > Oral Care > Dental Water Jets
2978
- Health & Beauty > Personal Care > Oral Care > Denture Adhesives
2979
- Health & Beauty > Personal Care > Oral Care > Denture Cleaners
2980
- Health & Beauty > Personal Care > Oral Care > Denture Repair Kits
2981
- Health & Beauty > Personal Care > Oral Care > Dentures
2982
- Health & Beauty > Personal Care > Oral Care > Gum Stimulators
2983
- Health & Beauty > Personal Care > Oral Care > Mouthwash
2984
- Health & Beauty > Personal Care > Oral Care > Orthodontic Appliance Cases
2985
- Health & Beauty > Personal Care > Oral Care > Power Flossers
2986
- Health & Beauty > Personal Care > Oral Care > Teeth Whiteners
2987
- Health & Beauty > Personal Care > Oral Care > Tongue Scrapers
2988
- Health & Beauty > Personal Care > Oral Care > Toothbrush Accessories
2989
- Health & Beauty > Personal Care > Oral Care > Toothbrush Accessories > Toothbrush Covers
2990
- Health & Beauty > Personal Care > Oral Care > Toothbrush Accessories > Toothbrush Replacement Heads
2991
- Health & Beauty > Personal Care > Oral Care > Toothbrush Accessories > Toothbrush Sanitizers
2992
- Health & Beauty > Personal Care > Oral Care > Toothbrushes
2993
- Health & Beauty > Personal Care > Oral Care > Toothpaste
2994
- Health & Beauty > Personal Care > Oral Care > Toothpaste Squeezers & Dispensers
2995
- Health & Beauty > Personal Care > Oral Care > Toothpicks
2996
- Health & Beauty > Personal Care > Personal Lubricants
2997
- Health & Beauty > Personal Care > Shaving & Grooming
2998
- Health & Beauty > Personal Care > Shaving & Grooming > Aftershave
2999
- Health & Beauty > Personal Care > Shaving & Grooming > Body & Facial Hair Bleach
3000
- Health & Beauty > Personal Care > Shaving & Grooming > Electric Razor Accessories
3001
- Health & Beauty > Personal Care > Shaving & Grooming > Electric Razors
3002
- Health & Beauty > Personal Care > Shaving & Grooming > Hair Clipper & Trimmer Accessories
3003
- Health & Beauty > Personal Care > Shaving & Grooming > Hair Clippers & Trimmers
3004
- Health & Beauty > Personal Care > Shaving & Grooming > Hair Removal
3005
- Health & Beauty > Personal Care > Shaving & Grooming > Hair Removal > Depilatories
3006
- Health & Beauty > Personal Care > Shaving & Grooming > Hair Removal > Electrolysis Devices
3007
- Health & Beauty > Personal Care > Shaving & Grooming > Hair Removal > Epilators
3008
- Health & Beauty > Personal Care > Shaving & Grooming > Hair Removal > Hair Removal Wax Warmers
3009
- Health & Beauty > Personal Care > Shaving & Grooming > Hair Removal > Laser & IPL Hair Removal Devices
3010
- Health & Beauty > Personal Care > Shaving & Grooming > Hair Removal > Waxing Kits & Supplies
3011
- Health & Beauty > Personal Care > Shaving & Grooming > Razors & Razor Blades
3012
- Health & Beauty > Personal Care > Shaving & Grooming > Shaving Bowls & Mugs
3013
- Health & Beauty > Personal Care > Shaving & Grooming > Shaving Brushes
3014
- Health & Beauty > Personal Care > Shaving & Grooming > Shaving Cream
3015
- Health & Beauty > Personal Care > Shaving & Grooming > Shaving Kits
3016
- Health & Beauty > Personal Care > Shaving & Grooming > Styptic Pencils
3017
- Health & Beauty > Personal Care > Sleeping Aids
3018
- Health & Beauty > Personal Care > Sleeping Aids > Eye Masks
3019
- Health & Beauty > Personal Care > Sleeping Aids > Snoring & Sleep Apnea Aids
3020
- Health & Beauty > Personal Care > Sleeping Aids > Travel Pillows
3021
- Health & Beauty > Personal Care > Sleeping Aids > White Noise Machines
3022
- Health & Beauty > Personal Care > Spray Tanning Tents
3023
- Health & Beauty > Personal Care > Tanning Beds
3024
- Health & Beauty > Personal Care > Tweezers
3025
- Health & Beauty > Personal Care > Vision Care
3026
- Health & Beauty > Personal Care > Vision Care > Contact Lens Care
3027
- Health & Beauty > Personal Care > Vision Care > Contact Lens Care > Contact Lens Care Kits
3028
- Health & Beauty > Personal Care > Vision Care > Contact Lens Care > Contact Lens Cases
3029
- Health & Beauty > Personal Care > Vision Care > Contact Lens Care > Contact Lens Solution
3030
- Health & Beauty > Personal Care > Vision Care > Contact Lenses
3031
- Health & Beauty > Personal Care > Vision Care > Eye Drops & Lubricants
3032
- Health & Beauty > Personal Care > Vision Care > Eyeglass Lenses
3033
- Health & Beauty > Personal Care > Vision Care > Eyeglasses
3034
- Health & Beauty > Personal Care > Vision Care > Eyewear Accessories
3035
- Health & Beauty > Personal Care > Vision Care > Eyewear Accessories > Eyewear Cases & Holders
3036
- Health & Beauty > Personal Care > Vision Care > Eyewear Accessories > Eyewear Lens Cleaning Solutions
3037
- Health & Beauty > Personal Care > Vision Care > Eyewear Accessories > Eyewear Replacement Parts
3038
- Health & Beauty > Personal Care > Vision Care > Eyewear Accessories > Eyewear Straps & Chains
3039
- Health & Beauty > Personal Care > Vision Care > Sunglass Lenses
3040
- Home & Garden
3041
- Home & Garden > Bathroom Accessories
3042
- Home & Garden > Bathroom Accessories > Bath Caddies
3043
- Home & Garden > Bathroom Accessories > Bath Mats & Rugs
3044
- Home & Garden > Bathroom Accessories > Bath Pillows
3045
- Home & Garden > Bathroom Accessories > Bathroom Accessory Mounts
3046
- Home & Garden > Bathroom Accessories > Bathroom Accessory Sets
3047
- Home & Garden > Bathroom Accessories > Facial Tissue Holders
3048
- Home & Garden > Bathroom Accessories > Hand Dryer Accessories
3049
- Home & Garden > Bathroom Accessories > Hand Dryers
3050
- Home & Garden > Bathroom Accessories > Medicine Cabinets
3051
- Home & Garden > Bathroom Accessories > Robe Hooks
3052
- Home & Garden > Bathroom Accessories > Safety Grab Bars
3053
- Home & Garden > Bathroom Accessories > Shower Curtain Rings
3054
- Home & Garden > Bathroom Accessories > Shower Curtains
3055
- Home & Garden > Bathroom Accessories > Shower Rods
3056
- Home & Garden > Bathroom Accessories > Soap & Lotion Dispensers
3057
- Home & Garden > Bathroom Accessories > Soap Dishes & Holders
3058
- Home & Garden > Bathroom Accessories > Toilet Brush Replacement Heads
3059
- Home & Garden > Bathroom Accessories > Toilet Brushes & Holders
3060
- Home & Garden > Bathroom Accessories > Toilet Paper Holders
3061
- Home & Garden > Bathroom Accessories > Toothbrush Holders
3062
- Home & Garden > Bathroom Accessories > Towel Racks & Holders
3063
- Home & Garden > Business & Home Security
3064
- Home & Garden > Business & Home Security > Dummy Surveillance Cameras
3065
- Home & Garden > Business & Home Security > Home Alarm Systems
3066
- Home & Garden > Business & Home Security > Motion Sensors
3067
- Home & Garden > Business & Home Security > Safety & Security Mirrors
3068
- Home & Garden > Business & Home Security > Security Lights
3069
- Home & Garden > Business & Home Security > Security Monitors & Recorders
3070
- Home & Garden > Business & Home Security > Security Safe Accessories
3071
- Home & Garden > Business & Home Security > Security Safes
3072
- Home & Garden > Business & Home Security > Security System Sensors
3073
- Home & Garden > Decor
3074
- Home & Garden > Decor > Address Signs
3075
- Home & Garden > Decor > Artificial Flora
3076
- Home & Garden > Decor > Artificial Food
3077
- Home & Garden > Decor > Artwork
3078
- Home & Garden > Decor > Artwork > Decorative Tapestries
3079
- Home & Garden > Decor > Artwork > Posters, Prints, & Visual Artwork
3080
- Home & Garden > Decor > Artwork > Sculptures & Statues
3081
- Home & Garden > Decor > Backrest Pillows
3082
- Home & Garden > Decor > Baskets
3083
- Home & Garden > Decor > Bird & Wildlife Feeder Accessories
3084
- Home & Garden > Decor > Bird & Wildlife Feeders
3085
- Home & Garden > Decor > Bird & Wildlife Feeders > Bird Feeders
3086
- Home & Garden > Decor > Bird & Wildlife Feeders > Butterfly Feeders
3087
- Home & Garden > Decor > Bird & Wildlife Feeders > Squirrel Feeders
3088
- Home & Garden > Decor > Bird & Wildlife House Accessories
3089
- Home & Garden > Decor > Bird & Wildlife Houses
3090
- Home & Garden > Decor > Bird & Wildlife Houses > Bat Houses
3091
- Home & Garden > Decor > Bird & Wildlife Houses > Birdhouses
3092
- Home & Garden > Decor > Bird & Wildlife Houses > Butterfly Houses
3093
- Home & Garden > Decor > Bird Baths
3094
- Home & Garden > Decor > Bookends
3095
- Home & Garden > Decor > Cardboard Cutouts
3096
- Home & Garden > Decor > Chair & Sofa Cushions
3097
- Home & Garden > Decor > Clock Parts
3098
- Home & Garden > Decor > Clocks
3099
- Home & Garden > Decor > Clocks > Alarm Clocks
3100
- Home & Garden > Decor > Clocks > Desk & Shelf Clocks
3101
- Home & Garden > Decor > Clocks > Floor & Grandfather Clocks
3102
- Home & Garden > Decor > Clocks > Wall Clocks
3103
- Home & Garden > Decor > Coat & Hat Racks
3104
- Home & Garden > Decor > Decorative Bells
3105
- Home & Garden > Decor > Decorative Bottles
3106
- Home & Garden > Decor > Decorative Bowls
3107
- Home & Garden > Decor > Decorative Jars
3108
- Home & Garden > Decor > Decorative Plaques
3109
- Home & Garden > Decor > Decorative Plates
3110
- Home & Garden > Decor > Decorative Trays
3111
- Home & Garden > Decor > Door Mats
3112
- Home & Garden > Decor > Dreamcatchers
3113
- Home & Garden > Decor > Dried Flowers
3114
- Home & Garden > Decor > Ecospheres
3115
- Home & Garden > Decor > Figurines
3116
- Home & Garden > Decor > Finials
3117
- Home & Garden > Decor > Flag & Windsock Accessories
3118
- Home & Garden > Decor > Flag & Windsock Accessories > Flag & Windsock Pole Lights
3119
- Home & Garden > Decor > Flag & Windsock Accessories > Flag & Windsock Pole Mounting Hardware & Kits
3120
- Home & Garden > Decor > Flag & Windsock Accessories > Flag & Windsock Poles
3121
- Home & Garden > Decor > Flags & Windsocks
3122
- Home & Garden > Decor > Flameless Candles
3123
- Home & Garden > Decor > Fountains & Ponds
3124
- Home & Garden > Decor > Fountains & Ponds > Fountain & Pond Accessories
3125
- Home & Garden > Decor > Fountains & Ponds > Fountains & Waterfalls
3126
- Home & Garden > Decor > Fountains & Ponds > Ponds
3127
- Home & Garden > Decor > Garden & Stepping Stones
3128
- Home & Garden > Decor > Growth Charts
3129
- Home & Garden > Decor > Home Decor Decals
3130
- Home & Garden > Decor > Home Fragrance Accessories
3131
- Home & Garden > Decor > Home Fragrance Accessories > Candle & Oil Warmers
3132
- Home & Garden > Decor > Home Fragrance Accessories > Candle Holders
3133
- Home & Garden > Decor > Home Fragrance Accessories > Candle Snuffers
3134
- Home & Garden > Decor > Home Fragrance Accessories > Incense Holders
3135
- Home & Garden > Decor > Home Fragrances
3136
- Home & Garden > Decor > Home Fragrances > Air Fresheners
3137
- Home & Garden > Decor > Home Fragrances > Candles
3138
- Home & Garden > Decor > Home Fragrances > Fragrance Oil
3139
- Home & Garden > Decor > Home Fragrances > Incense
3140
- Home & Garden > Decor > Home Fragrances > Potpourri
3141
- Home & Garden > Decor > Home Fragrances > Wax Tarts
3142
- Home & Garden > Decor > Hourglasses
3143
- Home & Garden > Decor > House Numbers & Letters
3144
- Home & Garden > Decor > Lawn Ornaments & Garden Sculptures
3145
- Home & Garden > Decor > Mail Slots
3146
- Home & Garden > Decor > Mailbox Accessories
3147
- Home & Garden > Decor > Mailbox Accessories > Mailbox Covers
3148
- Home & Garden > Decor > Mailbox Accessories > Mailbox Enclosures
3149
- Home & Garden > Decor > Mailbox Accessories > Mailbox Flags
3150
- Home & Garden > Decor > Mailbox Accessories > Mailbox Posts
3151
- Home & Garden > Decor > Mailbox Accessories > Mailbox Replacement Doors
3152
- Home & Garden > Decor > Mailboxes
3153
- Home & Garden > Decor > Mirrors
3154
- Home & Garden > Decor > Music Boxes
3155
- Home & Garden > Decor > Napkin Rings
3156
- Home & Garden > Decor > Novelty Signs
3157
- Home & Garden > Decor > Ottoman Cushions
3158
- Home & Garden > Decor > Picture Frames
3159
- Home & Garden > Decor > Piggy Banks & Money Jars
3160
- Home & Garden > Decor > Rain Chains
3161
- Home & Garden > Decor > Rain Gauges
3162
- Home & Garden > Decor > Refrigerator Magnets
3163
- Home & Garden > Decor > Rugs
3164
- Home & Garden > Decor > Seasonal & Holiday Decorations
3165
- Home & Garden > Decor > Seasonal & Holiday Decorations > Advent Calendars
3166
- Home & Garden > Decor > Seasonal & Holiday Decorations > Christmas Tree Skirts
3167
- Home & Garden > Decor > Seasonal & Holiday Decorations > Christmas Tree Stands
3168
- Home & Garden > Decor > Seasonal & Holiday Decorations > Easter Egg Decorating Kits
3169
- Home & Garden > Decor > Seasonal & Holiday Decorations > Holiday Ornament Displays & Stands
3170
- Home & Garden > Decor > Seasonal & Holiday Decorations > Holiday Ornament Hooks
3171
- Home & Garden > Decor > Seasonal & Holiday Decorations > Holiday Ornaments
3172
- Home & Garden > Decor > Seasonal & Holiday Decorations > Holiday Stocking Hangers
3173
- Home & Garden > Decor > Seasonal & Holiday Decorations > Holiday Stockings
3174
- Home & Garden > Decor > Seasonal & Holiday Decorations > Japanese Traditional Dolls
3175
- Home & Garden > Decor > Seasonal & Holiday Decorations > Nativity Sets
3176
- Home & Garden > Decor > Seasonal & Holiday Decorations > Seasonal Village Sets & Accessories
3177
- Home & Garden > Decor > Shadow Boxes
3178
- Home & Garden > Decor > Slipcovers
3179
- Home & Garden > Decor > Snow Globes
3180
- Home & Garden > Decor > Suncatchers
3181
- Home & Garden > Decor > Sundials
3182
- Home & Garden > Decor > Throw Pillows
3183
- Home & Garden > Decor > Trunks
3184
- Home & Garden > Decor > Vase Fillers & Table Scatters
3185
- Home & Garden > Decor > Vases
3186
- Home & Garden > Decor > Wallpaper
3187
- Home & Garden > Decor > Weather Vanes & Roof Decor
3188
- Home & Garden > Decor > Wind Chimes
3189
- Home & Garden > Decor > Wind Wheels & Spinners
3190
- Home & Garden > Decor > Window Magnets
3191
- Home & Garden > Decor > Window Treatment Accessories
3192
- Home & Garden > Decor > Window Treatment Accessories > Curtain & Drape Rings
3193
- Home & Garden > Decor > Window Treatment Accessories > Curtain & Drape Rods
3194
- Home & Garden > Decor > Window Treatment Accessories > Curtain Holdbacks & Tassels
3195
- Home & Garden > Decor > Window Treatment Accessories > Window Treatment Replacement Parts
3196
- Home & Garden > Decor > Window Treatments
3197
- Home & Garden > Decor > Window Treatments > Curtains & Drapes
3198
- Home & Garden > Decor > Window Treatments > Stained Glass Panels
3199
- Home & Garden > Decor > Window Treatments > Window Blinds & Shades
3200
- Home & Garden > Decor > Window Treatments > Window Films
3201
- Home & Garden > Decor > Window Treatments > Window Screens
3202
- Home & Garden > Decor > Window Treatments > Window Valances & Cornices
3203
- Home & Garden > Decor > World Globes
3204
- Home & Garden > Decor > Wreaths & Garlands
3205
- Home & Garden > Emergency Preparedness
3206
- Home & Garden > Emergency Preparedness > Earthquake Alarms
3207
- Home & Garden > Emergency Preparedness > Emergency Blankets
3208
- Home & Garden > Emergency Preparedness > Emergency Food Kits
3209
- Home & Garden > Emergency Preparedness > Emergency Tools & Kits
3210
- Home & Garden > Emergency Preparedness > Furniture Anchors
3211
- Home & Garden > Fireplace & Wood Stove Accessories
3212
- Home & Garden > Fireplace & Wood Stove Accessories > Bellows
3213
- Home & Garden > Fireplace & Wood Stove Accessories > Fireplace & Wood Stove Grates
3214
- Home & Garden > Fireplace & Wood Stove Accessories > Fireplace Andirons
3215
- Home & Garden > Fireplace & Wood Stove Accessories > Fireplace Reflectors
3216
- Home & Garden > Fireplace & Wood Stove Accessories > Fireplace Screens
3217
- Home & Garden > Fireplace & Wood Stove Accessories > Fireplace Tools
3218
- Home & Garden > Fireplace & Wood Stove Accessories > Firewood & Fuel
3219
- Home & Garden > Fireplace & Wood Stove Accessories > Hearth Pads
3220
- Home & Garden > Fireplace & Wood Stove Accessories > Log Rack & Carrier Accessories
3221
- Home & Garden > Fireplace & Wood Stove Accessories > Log Racks & Carriers
3222
- Home & Garden > Fireplace & Wood Stove Accessories > Wood Stove Fans & Blowers
3223
- Home & Garden > Fireplaces
3224
- Home & Garden > Flood, Fire & Gas Safety
3225
- Home & Garden > Flood, Fire & Gas Safety > Fire Alarm Control Panels
3226
- Home & Garden > Flood, Fire & Gas Safety > Fire Alarms
3227
- Home & Garden > Flood, Fire & Gas Safety > Fire Extinguisher & Equipment Storage
3228
- Home & Garden > Flood, Fire & Gas Safety > Fire Extinguishers
3229
- Home & Garden > Flood, Fire & Gas Safety > Fire Sprinklers
3230
- Home & Garden > Flood, Fire & Gas Safety > Heat Detectors
3231
- Home & Garden > Flood, Fire & Gas Safety > Smoke & Carbon Monoxide Detectors
3232
- Home & Garden > Flood, Fire & Gas Safety > Smoke & Carbon Monoxide Detectors > Carbon Monoxide Detectors
3233
- Home & Garden > Flood, Fire & Gas Safety > Smoke & Carbon Monoxide Detectors > Smoke Detectors
3234
- Home & Garden > Flood, Fire & Gas Safety > Water & Flood Detectors
3235
- Home & Garden > Household Appliance Accessories
3236
- Home & Garden > Household Appliance Accessories > Air Conditioner Accessories
3237
- Home & Garden > Household Appliance Accessories > Air Conditioner Accessories > Air Conditioner Covers
3238
- Home & Garden > Household Appliance Accessories > Air Conditioner Accessories > Air Conditioner Filters
3239
- Home & Garden > Household Appliance Accessories > Air Purifier Accessories
3240
- Home & Garden > Household Appliance Accessories > Air Purifier Accessories > Air Purifier Filters
3241
- Home & Garden > Household Appliance Accessories > Dehumidifier Accessories
3242
- Home & Garden > Household Appliance Accessories > Fan Accessories
3243
- Home & Garden > Household Appliance Accessories > Floor & Steam Cleaner Accessories
3244
- Home & Garden > Household Appliance Accessories > Furnace & Boiler Accessories
3245
- Home & Garden > Household Appliance Accessories > Heating Radiator Accessories
3246
- Home & Garden > Household Appliance Accessories > Heating Radiator Accessories > Heating Radiator Reflectors
3247
- Home & Garden > Household Appliance Accessories > Humidifier Accessories
3248
- Home & Garden > Household Appliance Accessories > Humidifier Accessories > Humidifier Filters
3249
- Home & Garden > Household Appliance Accessories > Laundry Appliance Accessories
3250
- Home & Garden > Household Appliance Accessories > Laundry Appliance Accessories > Garment Steamer Accessories
3251
- Home & Garden > Household Appliance Accessories > Laundry Appliance Accessories > Iron Accessories
3252
- Home & Garden > Household Appliance Accessories > Laundry Appliance Accessories > Steam Press Accessories
3253
- Home & Garden > Household Appliance Accessories > Laundry Appliance Accessories > Washer & Dryer Accessories
3254
- Home & Garden > Household Appliance Accessories > Patio Heater Accessories
3255
- Home & Garden > Household Appliance Accessories > Patio Heater Accessories > Patio Heater Covers
3256
- Home & Garden > Household Appliance Accessories > Vacuum Accessories
3257
- Home & Garden > Household Appliance Accessories > Water Heater Accessories
3258
- Home & Garden > Household Appliance Accessories > Water Heater Accessories > Anode Rods
3259
- Home & Garden > Household Appliance Accessories > Water Heater Accessories > Hot Water Tanks
3260
- Home & Garden > Household Appliance Accessories > Water Heater Accessories > Water Heater Elements
3261
- Home & Garden > Household Appliance Accessories > Water Heater Accessories > Water Heater Expansion Tanks
3262
- Home & Garden > Household Appliance Accessories > Water Heater Accessories > Water Heater Pans
3263
- Home & Garden > Household Appliance Accessories > Water Heater Accessories > Water Heater Stacks
3264
- Home & Garden > Household Appliance Accessories > Water Heater Accessories > Water Heater Vents
3265
- Home & Garden > Household Appliances
3266
- Home & Garden > Household Appliances > Climate Control Appliances
3267
- Home & Garden > Household Appliances > Climate Control Appliances > Air Conditioners
3268
- Home & Garden > Household Appliances > Climate Control Appliances > Air Purifiers
3269
- Home & Garden > Household Appliances > Climate Control Appliances > Dehumidifiers
3270
- Home & Garden > Household Appliances > Climate Control Appliances > Duct Heaters
3271
- Home & Garden > Household Appliances > Climate Control Appliances > Evaporative Coolers
3272
- Home & Garden > Household Appliances > Climate Control Appliances > Fans
3273
- Home & Garden > Household Appliances > Climate Control Appliances > Fans > Ceiling Fans
3274
- Home & Garden > Household Appliances > Climate Control Appliances > Fans > Desk & Pedestal Fans
3275
- Home & Garden > Household Appliances > Climate Control Appliances > Fans > Powered Hand Fans & Misters
3276
- Home & Garden > Household Appliances > Climate Control Appliances > Fans > Ventilation Fans
3277
- Home & Garden > Household Appliances > Climate Control Appliances > Fans > Wall Mount Fans
3278
- Home & Garden > Household Appliances > Climate Control Appliances > Furnaces & Boilers
3279
- Home & Garden > Household Appliances > Climate Control Appliances > Heating Radiators
3280
- Home & Garden > Household Appliances > Climate Control Appliances > Humidifiers
3281
- Home & Garden > Household Appliances > Climate Control Appliances > Outdoor Misting Systems
3282
- Home & Garden > Household Appliances > Climate Control Appliances > Patio Heaters
3283
- Home & Garden > Household Appliances > Climate Control Appliances > Space Heaters
3284
- Home & Garden > Household Appliances > Floor & Carpet Dryers
3285
- Home & Garden > Household Appliances > Floor & Steam Cleaners
3286
- Home & Garden > Household Appliances > Floor & Steam Cleaners > Carpet Shampooers
3287
- Home & Garden > Household Appliances > Floor & Steam Cleaners > Carpet Steamers
3288
- Home & Garden > Household Appliances > Floor & Steam Cleaners > Floor Scrubbers
3289
- Home & Garden > Household Appliances > Floor & Steam Cleaners > Steam Mops
3290
- Home & Garden > Household Appliances > Floor Polishers & Buffers
3291
- Home & Garden > Household Appliances > Futon Dryers
3292
- Home & Garden > Household Appliances > Garage Door Keypads & Remotes
3293
- Home & Garden > Household Appliances > Garage Door Openers
3294
- Home & Garden > Household Appliances > Laundry Appliances
3295
- Home & Garden > Household Appliances > Laundry Appliances > Dryers
3296
- Home & Garden > Household Appliances > Laundry Appliances > Garment Steamers
3297
- Home & Garden > Household Appliances > Laundry Appliances > Irons & Ironing Systems
3298
- Home & Garden > Household Appliances > Laundry Appliances > Laundry Combo Units
3299
- Home & Garden > Household Appliances > Laundry Appliances > Steam Presses
3300
- Home & Garden > Household Appliances > Laundry Appliances > Washing Machines
3301
- Home & Garden > Household Appliances > Ultrasonic Cleaners
3302
- Home & Garden > Household Appliances > Vacuums
3303
- Home & Garden > Household Appliances > Wallpaper Steamers
3304
- Home & Garden > Household Appliances > Water Heaters
3305
- Home & Garden > Household Supplies
3306
- Home & Garden > Household Supplies > Drawer & Shelf Liners
3307
- Home & Garden > Household Supplies > Floor Protection Films & Runners
3308
- Home & Garden > Household Supplies > Furniture Floor Protectors
3309
- Home & Garden > Household Supplies > Garage Floor Mats
3310
- Home & Garden > Household Supplies > Garbage Bags
3311
- Home & Garden > Household Supplies > Household Cleaning Supplies
3312
- Home & Garden > Household Supplies > Household Cleaning Supplies > Broom & Mop Handles
3313
- Home & Garden > Household Supplies > Household Cleaning Supplies > Broom Heads
3314
- Home & Garden > Household Supplies > Household Cleaning Supplies > Brooms
3315
- Home & Garden > Household Supplies > Household Cleaning Supplies > Buckets
3316
- Home & Garden > Household Supplies > Household Cleaning Supplies > Carpet Sweepers
3317
- Home & Garden > Household Supplies > Household Cleaning Supplies > Cleaning Gloves
3318
- Home & Garden > Household Supplies > Household Cleaning Supplies > Duster Refills
3319
- Home & Garden > Household Supplies > Household Cleaning Supplies > Dusters
3320
- Home & Garden > Household Supplies > Household Cleaning Supplies > Dustpans
3321
- Home & Garden > Household Supplies > Household Cleaning Supplies > Fabric & Upholstery Protectors
3322
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products
3323
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > All-Purpose Cleaners
3324
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Carpet Cleaners
3325
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Descalers & Decalcifiers
3326
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Dish Detergent & Soap
3327
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Dishwasher Cleaners
3328
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Fabric & Upholstery Cleaners
3329
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Floor Cleaners
3330
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Furniture Cleaners & Polish
3331
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Glass & Surface Cleaners
3332
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Glass & Surface Cleaners > Glass Cleaners
3333
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Glass & Surface Cleaners > Muti-surface Cleaners
3334
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Household Disinfectants
3335
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Oven & Grill Cleaners
3336
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Pet Odor & Stain Removers
3337
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Rinse Aids
3338
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Stainless Steel Cleaners & Polishes
3339
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Toilet Bowl Cleaners
3340
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Tub & Tile Cleaners
3341
- Home & Garden > Household Supplies > Household Cleaning Supplies > Household Cleaning Products > Washing Machine Cleaners
3342
- Home & Garden > Household Supplies > Household Cleaning Supplies > Mop Heads & Refills
3343
- Home & Garden > Household Supplies > Household Cleaning Supplies > Mops
3344
- Home & Garden > Household Supplies > Household Cleaning Supplies > Scrub Brush Heads & Refills
3345
- Home & Garden > Household Supplies > Household Cleaning Supplies > Scrub Brushes
3346
- Home & Garden > Household Supplies > Household Cleaning Supplies > Shop Towels & General-Purpose Cleaning Cloths
3347
- Home & Garden > Household Supplies > Household Cleaning Supplies > Sponges & Scouring Pads
3348
- Home & Garden > Household Supplies > Household Cleaning Supplies > Squeegees
3349
- Home & Garden > Household Supplies > Household Paper Products
3350
- Home & Garden > Household Supplies > Household Paper Products > Facial Tissues
3351
- Home & Garden > Household Supplies > Household Paper Products > Paper Napkins
3352
- Home & Garden > Household Supplies > Household Paper Products > Paper Towels
3353
- Home & Garden > Household Supplies > Household Paper Products > Toilet Paper
3354
- Home & Garden > Household Supplies > Household Thermometers
3355
- Home & Garden > Household Supplies > Laundry Supplies
3356
- Home & Garden > Household Supplies > Laundry Supplies > Bleach
3357
- Home & Garden > Household Supplies > Laundry Supplies > Clothespins
3358
- Home & Garden > Household Supplies > Laundry Supplies > Dry Cleaning Kits
3359
- Home & Garden > Household Supplies > Laundry Supplies > Drying Racks & Hangers
3360
- Home & Garden > Household Supplies > Laundry Supplies > Fabric Refreshers
3361
- Home & Garden > Household Supplies > Laundry Supplies > Fabric Shavers
3362
- Home & Garden > Household Supplies > Laundry Supplies > Fabric Softeners & Dryer Sheets
3363
- Home & Garden > Household Supplies > Laundry Supplies > Fabric Stain Removers
3364
- Home & Garden > Household Supplies > Laundry Supplies > Fabric Starch
3365
- Home & Garden > Household Supplies > Laundry Supplies > Garment Shields
3366
- Home & Garden > Household Supplies > Laundry Supplies > Iron Rests
3367
- Home & Garden > Household Supplies > Laundry Supplies > Ironing Board Pads & Covers
3368
- Home & Garden > Household Supplies > Laundry Supplies > Ironing Board Replacement Parts
3369
- Home & Garden > Household Supplies > Laundry Supplies > Ironing Boards
3370
- Home & Garden > Household Supplies > Laundry Supplies > Laundry Balls
3371
- Home & Garden > Household Supplies > Laundry Supplies > Laundry Baskets
3372
- Home & Garden > Household Supplies > Laundry Supplies > Laundry Detergent
3373
- Home & Garden > Household Supplies > Laundry Supplies > Laundry Wash Bags & Frames
3374
- Home & Garden > Household Supplies > Laundry Supplies > Lint Rollers
3375
- Home & Garden > Household Supplies > Laundry Supplies > Wrinkle Releasers & Anti-Static Sprays
3376
- Home & Garden > Household Supplies > Moisture Absorbers
3377
- Home & Garden > Household Supplies > Pest Control
3378
- Home & Garden > Household Supplies > Pest Control > Fly Swatters
3379
- Home & Garden > Household Supplies > Pest Control > Pest Control Traps
3380
- Home & Garden > Household Supplies > Pest Control > Pesticides
3381
- Home & Garden > Household Supplies > Pest Control > Repellents
3382
- Home & Garden > Household Supplies > Pest Control > Repellents > Animal & Pet Repellents
3383
- Home & Garden > Household Supplies > Pest Control > Repellents > Household Insect Repellents
3384
- Home & Garden > Household Supplies > Rug Pads
3385
- Home & Garden > Household Supplies > Shoe Care & Tools
3386
- Home & Garden > Household Supplies > Shoe Care & Tools > Boot Pulls
3387
- Home & Garden > Household Supplies > Shoe Care & Tools > Shoe Bags
3388
- Home & Garden > Household Supplies > Shoe Care & Tools > Shoe Brushes
3389
- Home & Garden > Household Supplies > Shoe Care & Tools > Shoe Care Kits
3390
- Home & Garden > Household Supplies > Shoe Care & Tools > Shoe Dryers
3391
- Home & Garden > Household Supplies > Shoe Care & Tools > Shoe Horns & Dressing Aids
3392
- Home & Garden > Household Supplies > Shoe Care & Tools > Shoe Polishers
3393
- Home & Garden > Household Supplies > Shoe Care & Tools > Shoe Polishes & Waxes
3394
- Home & Garden > Household Supplies > Shoe Care & Tools > Shoe Scrapers
3395
- Home & Garden > Household Supplies > Shoe Care & Tools > Shoe Treatments & Dyes
3396
- Home & Garden > Household Supplies > Shoe Care & Tools > Shoe Trees & Shapers
3397
- Home & Garden > Household Supplies > Stair Treads
3398
- Home & Garden > Household Supplies > Storage & Organization
3399
- Home & Garden > Household Supplies > Storage & Organization > Clothing & Closet Storage
3400
- Home & Garden > Household Supplies > Storage & Organization > Clothing & Closet Storage > Charging Valets
3401
- Home & Garden > Household Supplies > Storage & Organization > Clothing & Closet Storage > Closet Organizers & Garment Racks
3402
- Home & Garden > Household Supplies > Storage & Organization > Clothing & Closet Storage > Clothes Valets
3403
- Home & Garden > Household Supplies > Storage & Organization > Clothing & Closet Storage > Hangers
3404
- Home & Garden > Household Supplies > Storage & Organization > Clothing & Closet Storage > Hat Boxes
3405
- Home & Garden > Household Supplies > Storage & Organization > Clothing & Closet Storage > Shoe Racks & Organizers
3406
- Home & Garden > Household Supplies > Storage & Organization > Flatware Chests
3407
- Home & Garden > Household Supplies > Storage & Organization > Household Drawer Organizer Inserts
3408
- Home & Garden > Household Supplies > Storage & Organization > Household Storage Bags
3409
- Home & Garden > Household Supplies > Storage & Organization > Household Storage Caddies
3410
- Home & Garden > Household Supplies > Storage & Organization > Household Storage Containers
3411
- Home & Garden > Household Supplies > Storage & Organization > Household Storage Drawers
3412
- Home & Garden > Household Supplies > Storage & Organization > Photo Storage
3413
- Home & Garden > Household Supplies > Storage & Organization > Photo Storage > Photo Albums
3414
- Home & Garden > Household Supplies > Storage & Organization > Photo Storage > Photo Storage Boxes
3415
- Home & Garden > Household Supplies > Storage & Organization > Storage Hooks & Racks
3416
- Home & Garden > Household Supplies > Storage & Organization > Storage Hooks & Racks > Ironing Board Hooks & Racks
3417
- Home & Garden > Household Supplies > Storage & Organization > Storage Hooks & Racks > Umbrella Stands & Racks
3418
- Home & Garden > Household Supplies > Storage & Organization > Storage Hooks & Racks > Utility Hooks
3419
- Home & Garden > Household Supplies > Trash Compactor Accessories
3420
- Home & Garden > Household Supplies > Waste Containment
3421
- Home & Garden > Household Supplies > Waste Containment > Dumpsters
3422
- Home & Garden > Household Supplies > Waste Containment > Hazardous Waste Containers
3423
- Home & Garden > Household Supplies > Waste Containment > Recycling Containers
3424
- Home & Garden > Household Supplies > Waste Containment > Trash Cans & Wastebaskets
3425
- Home & Garden > Household Supplies > Waste Containment Accessories
3426
- Home & Garden > Household Supplies > Waste Containment Accessories > Waste Container Carts
3427
- Home & Garden > Household Supplies > Waste Containment Accessories > Waste Container Enclosures
3428
- Home & Garden > Household Supplies > Waste Containment Accessories > Waste Container Labels & Signs
3429
- Home & Garden > Household Supplies > Waste Containment Accessories > Waste Container Lids
3430
- Home & Garden > Household Supplies > Waste Containment Accessories > Waste Container Wheels
3431
- Home & Garden > Kitchen & Dining
3432
- Home & Garden > Kitchen & Dining > Barware
3433
- Home & Garden > Kitchen & Dining > Barware > Absinthe Fountains
3434
- Home & Garden > Kitchen & Dining > Barware > Beer Dispensers & Taps
3435
- Home & Garden > Kitchen & Dining > Barware > Beverage Chilling Cubes & Sticks
3436
- Home & Garden > Kitchen & Dining > Barware > Beverage Tubs & Chillers
3437
- Home & Garden > Kitchen & Dining > Barware > Bottle Caps
3438
- Home & Garden > Kitchen & Dining > Barware > Bottle Stoppers & Savers
3439
- Home & Garden > Kitchen & Dining > Barware > Coaster Holders
3440
- Home & Garden > Kitchen & Dining > Barware > Coasters
3441
- Home & Garden > Kitchen & Dining > Barware > Cocktail & Barware Tool Sets
3442
- Home & Garden > Kitchen & Dining > Barware > Cocktail Shakers & Tools
3443
- Home & Garden > Kitchen & Dining > Barware > Cocktail Shakers & Tools > Bar Ice Picks
3444
- Home & Garden > Kitchen & Dining > Barware > Cocktail Shakers & Tools > Bottle Openers
3445
- Home & Garden > Kitchen & Dining > Barware > Cocktail Shakers & Tools > Cocktail Shakers
3446
- Home & Garden > Kitchen & Dining > Barware > Cocktail Shakers & Tools > Cocktail Strainers
3447
- Home & Garden > Kitchen & Dining > Barware > Cocktail Shakers & Tools > Muddlers
3448
- Home & Garden > Kitchen & Dining > Barware > Corkscrews
3449
- Home & Garden > Kitchen & Dining > Barware > Decanters
3450
- Home & Garden > Kitchen & Dining > Barware > Foil Cutters
3451
- Home & Garden > Kitchen & Dining > Barware > Wine Aerators
3452
- Home & Garden > Kitchen & Dining > Barware > Wine Bottle Holders
3453
- Home & Garden > Kitchen & Dining > Barware > Wine Glass Charms
3454
- Home & Garden > Kitchen & Dining > Cookware & Bakeware
3455
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware
3456
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware > Bakeware Sets
3457
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware > Baking & Cookie Sheets
3458
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware > Bread Pans & Molds
3459
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware > Broiling Pans
3460
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware > Cake Pans & Molds
3461
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware > Muffin & Pastry Pans
3462
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware > Pie & Quiche Pans
3463
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware > Pizza Pans
3464
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware > Pizza Stones
3465
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware > Ramekins & Souffle Dishes
3466
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware > Roasting Pans
3467
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware Accessories
3468
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware Accessories > Baking Mats & Liners
3469
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware Accessories > Baking Weights
3470
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Bakeware Accessories > Roasting Pan Racks
3471
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware
3472
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware & Bakeware Combo Sets
3473
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Casserole Dishes
3474
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Cookware Sets
3475
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Crêpe & Blini Pans
3476
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Double Boilers
3477
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Dutch Ovens
3478
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Fermentation & Pickling Crocks
3479
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Griddles & Grill Pans
3480
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Grill Presses
3481
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Paella Pans
3482
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Pressure Cookers & Canners
3483
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Saucepans
3484
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Sauté Pans
3485
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Skillets & Frying Pans
3486
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Stock Pots
3487
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Stovetop Kettles
3488
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Tagines & Clay Cooking Pots
3489
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware > Woks
3490
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware Accessories
3491
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware Accessories > Pot & Pan Handles
3492
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware Accessories > Pot & Pan Lids
3493
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware Accessories > Pressure Cooker & Canner Accessories
3494
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware Accessories > Steamer Baskets
3495
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware Accessories > Wok Accessories
3496
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware Accessories > Wok Accessories > Wok Brushes
3497
- Home & Garden > Kitchen & Dining > Cookware & Bakeware > Cookware Accessories > Wok Accessories > Wok Rings
3498
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers
3499
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Airpots
3500
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Canteens
3501
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Coolers
3502
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Drink Sleeves
3503
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Drink Sleeves > Can & Bottle Sleeves
3504
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Drink Sleeves > Cup Sleeves
3505
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Flasks
3506
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Insulated Bags
3507
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Lunch Boxes & Totes
3508
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Picnic Baskets
3509
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Replacement Drink Lids
3510
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Thermoses
3511
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Water Bottles
3512
- Home & Garden > Kitchen & Dining > Food & Beverage Carriers > Wine Carrier Bags
3513
- Home & Garden > Kitchen & Dining > Food Storage
3514
- Home & Garden > Kitchen & Dining > Food Storage > Bread Boxes & Bags
3515
- Home & Garden > Kitchen & Dining > Food Storage > Candy Buckets
3516
- Home & Garden > Kitchen & Dining > Food Storage > Cookie Jars
3517
- Home & Garden > Kitchen & Dining > Food Storage > Food Container Covers
3518
- Home & Garden > Kitchen & Dining > Food Storage > Food Storage Bags
3519
- Home & Garden > Kitchen & Dining > Food Storage > Food Storage Containers
3520
- Home & Garden > Kitchen & Dining > Food Storage > Food Wraps
3521
- Home & Garden > Kitchen & Dining > Food Storage > Food Wraps > Foil
3522
- Home & Garden > Kitchen & Dining > Food Storage > Food Wraps > Parchment Paper
3523
- Home & Garden > Kitchen & Dining > Food Storage > Food Wraps > Plastic Wrap
3524
- Home & Garden > Kitchen & Dining > Food Storage > Food Wraps > Wax Paper
3525
- Home & Garden > Kitchen & Dining > Food Storage > Honey Jars
3526
- Home & Garden > Kitchen & Dining > Food Storage Accessories
3527
- Home & Garden > Kitchen & Dining > Food Storage Accessories > Food & Beverage Labels
3528
- Home & Garden > Kitchen & Dining > Food Storage Accessories > Food Wrap Dispensers
3529
- Home & Garden > Kitchen & Dining > Food Storage Accessories > Oxygen Absorbers
3530
- Home & Garden > Kitchen & Dining > Food Storage Accessories > Twist Ties & Bag Clips
3531
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories
3532
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Breadmaker Accessories
3533
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Coffee Maker & Espresso Machine Accessories
3534
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Coffee Maker & Espresso Machine Accessories > Coffee Decanter Warmers
3535
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Coffee Maker & Espresso Machine Accessories > Coffee Decanters
3536
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Coffee Maker & Espresso Machine Accessories > Coffee Filter Baskets
3537
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Coffee Maker & Espresso Machine Accessories > Coffee Filters
3538
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Coffee Maker & Espresso Machine Accessories > Coffee Grinder Accessories
3539
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Coffee Maker & Espresso Machine Accessories > Coffee Grinders
3540
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Coffee Maker & Espresso Machine Accessories > Coffee Maker & Espresso Machine Replacement Parts
3541
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Coffee Maker & Espresso Machine Accessories > Coffee Maker Water Filters
3542
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Coffee Maker & Espresso Machine Accessories > Frothing Pitchers
3543
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Coffee Maker & Espresso Machine Accessories > Portafilters
3544
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Cooktop, Oven & Range Accessories
3545
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Cotton Candy Machine Accessories
3546
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Deep Fryer Accessories
3547
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Dishwasher Parts & Accessories
3548
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Electric Kettle Accessories
3549
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Electric Skillet & Wok Accessories
3550
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Fondue Set Accessories
3551
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Fondue Set Accessories > Cooking Gel Fuels
3552
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Fondue Set Accessories > Fondue Forks
3553
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Fondue Set Accessories > Fondue Pot Stands
3554
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Food Dehydrator Accessories
3555
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Food Dehydrator Accessories > Food Dehydrator Sheets
3556
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Food Dehydrator Accessories > Food Dehydrator Trays
3557
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Food Grinder Accessories
3558
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Food Mixer & Blender Accessories
3559
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Freezer Accessories
3560
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Garbage Disposal Accessories
3561
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Ice Cream Maker Accessories
3562
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Ice Cream Maker Accessories > Ice Cream Maker Freezer Bowls
3563
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Ice Crusher & Shaver Accessories
3564
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Ice Maker Accessories
3565
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Juicer Accessories
3566
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Microwave Oven Accessories
3567
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Outdoor Grill Accessories
3568
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Outdoor Grill Accessories > Charcoal Briquettes
3569
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Outdoor Grill Accessories > Charcoal Chimneys
3570
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Outdoor Grill Accessories > Outdoor Grill Carts
3571
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Outdoor Grill Accessories > Outdoor Grill Covers
3572
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Outdoor Grill Accessories > Outdoor Grill Racks & Toppers
3573
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Outdoor Grill Accessories > Outdoor Grill Replacement Parts
3574
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Outdoor Grill Accessories > Outdoor Grill Spits & Baskets
3575
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Outdoor Grill Accessories > Outdoor Grilling Planks
3576
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Outdoor Grill Accessories > Smoking Chips & Pellets
3577
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Pasta Maker Accessories
3578
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Popcorn Maker Accessories
3579
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Portable Cooking Stove Accessories
3580
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Range Hood Accessories
3581
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Refrigerator Accessories
3582
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Soda Maker Accessories
3583
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Steam Table Accessories
3584
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Steam Table Accessories > Steam Table Pan Covers
3585
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Steam Table Accessories > Steam Table Pans
3586
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Toaster Accessories
3587
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Vacuum Sealer Accessories
3588
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Vacuum Sealer Accessories > Vacuum Sealer Bags
3589
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Waffle Iron Accessories
3590
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Water Cooler Accessories
3591
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Water Cooler Accessories > Water Cooler Bottles
3592
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Wine Fridge Accessories
3593
- Home & Garden > Kitchen & Dining > Kitchen Appliance Accessories > Yogurt Maker Accessories
3594
- Home & Garden > Kitchen & Dining > Kitchen Appliances
3595
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Beverage Warmers
3596
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Breadmakers
3597
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Chocolate Tempering Machines
3598
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Coffee Makers & Espresso Machines
3599
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Coffee Makers & Espresso Machines > Drip Coffee Makers
3600
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Coffee Makers & Espresso Machines > Electric & Stovetop Espresso Pots
3601
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Coffee Makers & Espresso Machines > Espresso Machines
3602
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Coffee Makers & Espresso Machines > French Presses
3603
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Coffee Makers & Espresso Machines > Percolators
3604
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Coffee Makers & Espresso Machines > Vacuum Coffee Makers
3605
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Cooktops
3606
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Cotton Candy Machines
3607
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Deep Fryers
3608
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Deli Slicers
3609
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Dishwashers
3610
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Electric Griddles & Grills
3611
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Electric Kettles
3612
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Electric Skillets & Woks
3613
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Fondue Pots & Sets
3614
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Cookers & Steamers
3615
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Cookers & Steamers > Egg Cookers
3616
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Cookers & Steamers > Food Steamers
3617
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Cookers & Steamers > Rice Cookers
3618
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Cookers & Steamers > Slow Cookers
3619
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Cookers & Steamers > Thermal Cookers
3620
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Cookers & Steamers > Water Ovens
3621
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Dehydrators
3622
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Grinders & Mills
3623
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Mixers & Blenders
3624
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Smokers
3625
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Warmers
3626
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Warmers > Chafing Dishes
3627
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Warmers > Food Heat Lamps
3628
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Warmers > Rice Keepers
3629
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Food Warmers > Steam Tables
3630
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Freezers
3631
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Frozen Drink Makers
3632
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Garbage Disposals
3633
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Gas Griddles
3634
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Hot Drink Makers
3635
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Hot Plates
3636
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Ice Cream Makers
3637
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Ice Crushers & Shavers
3638
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Ice Makers
3639
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Juicers
3640
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Knife Sharpeners
3641
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Microwave Ovens
3642
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Milk Frothers & Steamers
3643
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Mochi Makers
3644
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Outdoor Grills
3645
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Ovens
3646
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Pasta Makers
3647
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Popcorn Makers
3648
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Portable Cooking Stoves
3649
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Range Hoods
3650
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Ranges
3651
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Refrigerators
3652
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Roaster Ovens & Rotisseries
3653
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Soda Makers
3654
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Soy Milk Makers
3655
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Tea Makers
3656
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Toasters & Grills
3657
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Toasters & Grills > Countertop & Toaster Ovens
3658
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Toasters & Grills > Donut Makers
3659
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Toasters & Grills > Muffin & Cupcake Makers
3660
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Toasters & Grills > Pizza Makers & Ovens
3661
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Toasters & Grills > Pizzelle Makers
3662
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Toasters & Grills > Pretzel Makers
3663
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Toasters & Grills > Sandwich Makers
3664
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Toasters & Grills > Toasters
3665
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Toasters & Grills > Tortilla & Flatbread Makers
3666
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Toasters & Grills > Waffle Irons
3667
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Trash Compactors
3668
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Vacuum Sealers
3669
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Water Coolers
3670
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Water Filters
3671
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Wine Fridges
3672
- Home & Garden > Kitchen & Dining > Kitchen Appliances > Yogurt Makers
3673
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils
3674
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Aprons
3675
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Baking Peels
3676
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Basters
3677
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Basting Brushes
3678
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Beverage Dispensers
3679
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Cake Decorating Supplies
3680
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Cake Servers
3681
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Can Crushers
3682
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Can Openers
3683
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Carving Forks
3684
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Channel Knives
3685
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Colanders & Strainers
3686
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Condiment Dispensers
3687
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Cookie Cutters
3688
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Cookie Presses
3689
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Cooking Thermometer Accessories
3690
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Cooking Thermometers
3691
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Cooking Timers
3692
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Cooking Torches
3693
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Cooling Racks
3694
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Cutting Boards
3695
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Dish Racks & Drain Boards
3696
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Dough Wheels
3697
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Electric Knife Accessories
3698
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Electric Knife Accessories > Electric Knife Replacement Blades
3699
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Electric Knives
3700
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Flour Sifters
3701
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Food & Drink Stencils
3702
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Food Crackers
3703
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Food Crackers > Lobster & Crab Crackers
3704
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Food Crackers > Nutcrackers
3705
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Food Crackers > Nutcrackers > Decorative Nutcrackers
3706
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Food Dispensers
3707
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Food Graters & Zesters
3708
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Food Peelers & Corers
3709
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Food Steaming Bags
3710
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Food Sticks & Skewers
3711
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Funnels
3712
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Garlic Presses
3713
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Gelatin Molds
3714
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Ice Cube Trays
3715
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Jerky Guns
3716
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Knives
3717
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Molds
3718
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers
3719
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Can Organizers
3720
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Drinkware Holders
3721
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Kitchen Cabinet Organizers
3722
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Kitchen Counter & Beverage Station Organizers
3723
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Kitchen Utensil Holders & Racks
3724
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Knife Blocks & Holders
3725
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Napkin Holders & Dispensers
3726
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Paper Towel Holders & Dispensers
3727
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Pot Racks
3728
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Spice Organizers
3729
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Straw Holders & Dispensers
3730
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Sugar Caddies
3731
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Toothpick Holders & Dispensers
3732
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Organizers > Utensil & Flatware Trays
3733
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Scrapers
3734
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Scrapers > Bench Scrapers
3735
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Scrapers > Bowl Scrapers
3736
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Scrapers > Grill Scrapers
3737
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Shears
3738
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Slicers
3739
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Kitchen Utensil Sets
3740
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Ladles
3741
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Mashers
3742
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Measuring Cups & Spoons
3743
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Meat Tenderizers
3744
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Mixing Bowls
3745
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Mortars & Pestles
3746
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Oil & Vinegar Dispensers
3747
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Oven Bags
3748
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Oven Mitts & Pot Holders
3749
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Pasta Molds & Stamps
3750
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Pastry Blenders
3751
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Pastry Cloths
3752
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Pizza Cutter Accessories
3753
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Pizza Cutters
3754
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Ricers
3755
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Rolling Pin Accessories
3756
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Rolling Pin Accessories > Rolling Pin Covers & Sleeves
3757
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Rolling Pin Accessories > Rolling Pin Rings
3758
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Rolling Pins
3759
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Salad Dressing Mixers & Shakers
3760
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Salad Spinners
3761
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Scoops
3762
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Scoops > Ice Cream Scoops
3763
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Scoops > Ice Scoops
3764
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Scoops > Melon Ballers
3765
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Scoops > Popcorn & French Fry Scoops
3766
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Sink Caddies
3767
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Sink Mats & Grids
3768
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Slotted Spoons
3769
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Spatulas
3770
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Spice Grinder Accessories
3771
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Spice Grinders
3772
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Spoon Rests
3773
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Sugar Dispensers
3774
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Sushi Mats
3775
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Tea Strainers
3776
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Tongs
3777
- Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils > Whisks
3778
- Home & Garden > Kitchen & Dining > Prefabricated Kitchens & Kitchenettes
3779
- Home & Garden > Kitchen & Dining > Tableware
3780
- Home & Garden > Kitchen & Dining > Tableware > Coffee & Tea Sets
3781
- Home & Garden > Kitchen & Dining > Tableware > Coffee Servers & Tea Pots
3782
- Home & Garden > Kitchen & Dining > Tableware > Dinnerware
3783
- Home & Garden > Kitchen & Dining > Tableware > Dinnerware > Bowls
3784
- Home & Garden > Kitchen & Dining > Tableware > Dinnerware > Dinnerware Sets
3785
- Home & Garden > Kitchen & Dining > Tableware > Dinnerware > Plates
3786
- Home & Garden > Kitchen & Dining > Tableware > Drinkware
3787
- Home & Garden > Kitchen & Dining > Tableware > Drinkware > Beer Glasses
3788
- Home & Garden > Kitchen & Dining > Tableware > Drinkware > Coffee & Tea Cups
3789
- Home & Garden > Kitchen & Dining > Tableware > Drinkware > Coffee & Tea Saucers
3790
- Home & Garden > Kitchen & Dining > Tableware > Drinkware > Drinkware Sets
3791
- Home & Garden > Kitchen & Dining > Tableware > Drinkware > Mugs
3792
- Home & Garden > Kitchen & Dining > Tableware > Drinkware > Shot Glasses
3793
- Home & Garden > Kitchen & Dining > Tableware > Drinkware > Stemware
3794
- Home & Garden > Kitchen & Dining > Tableware > Drinkware > Tumblers
3795
- Home & Garden > Kitchen & Dining > Tableware > Flatware
3796
- Home & Garden > Kitchen & Dining > Tableware > Flatware > Chopstick Accessories
3797
- Home & Garden > Kitchen & Dining > Tableware > Flatware > Chopsticks
3798
- Home & Garden > Kitchen & Dining > Tableware > Flatware > Flatware Sets
3799
- Home & Garden > Kitchen & Dining > Tableware > Flatware > Forks
3800
- Home & Garden > Kitchen & Dining > Tableware > Flatware > Spoons
3801
- Home & Garden > Kitchen & Dining > Tableware > Flatware > Table Knives
3802
- Home & Garden > Kitchen & Dining > Tableware > Salt & Pepper Shakers
3803
- Home & Garden > Kitchen & Dining > Tableware > Serveware
3804
- Home & Garden > Kitchen & Dining > Tableware > Serveware > Butter Dishes
3805
- Home & Garden > Kitchen & Dining > Tableware > Serveware > Cake Boards
3806
- Home & Garden > Kitchen & Dining > Tableware > Serveware > Cake Stands
3807
- Home & Garden > Kitchen & Dining > Tableware > Serveware > Egg Cups
3808
- Home & Garden > Kitchen & Dining > Tableware > Serveware > Gravy Boats
3809
- Home & Garden > Kitchen & Dining > Tableware > Serveware > Punch Bowls
3810
- Home & Garden > Kitchen & Dining > Tableware > Serveware > Serving Pitchers & Carafes
3811
- Home & Garden > Kitchen & Dining > Tableware > Serveware > Serving Platters
3812
- Home & Garden > Kitchen & Dining > Tableware > Serveware > Serving Trays
3813
- Home & Garden > Kitchen & Dining > Tableware > Serveware > Sugar Bowls & Creamers
3814
- Home & Garden > Kitchen & Dining > Tableware > Serveware > Tureens
3815
- Home & Garden > Kitchen & Dining > Tableware > Serveware Accessories
3816
- Home & Garden > Kitchen & Dining > Tableware > Serveware Accessories > Punch Bowl Stands
3817
- Home & Garden > Kitchen & Dining > Tableware > Serveware Accessories > Tureen Lids
3818
- Home & Garden > Kitchen & Dining > Tableware > Serveware Accessories > Tureen Stands
3819
- Home & Garden > Kitchen & Dining > Tableware > Tablecloth Clips & Weights
3820
- Home & Garden > Kitchen & Dining > Tableware > Trivets
3821
- Home & Garden > Lawn & Garden
3822
- Home & Garden > Lawn & Garden > Gardening
3823
- Home & Garden > Lawn & Garden > Gardening > Composting
3824
- Home & Garden > Lawn & Garden > Gardening > Composting > Compost
3825
- Home & Garden > Lawn & Garden > Gardening > Composting > Compost Aerators
3826
- Home & Garden > Lawn & Garden > Gardening > Composting > Composters
3827
- Home & Garden > Lawn & Garden > Gardening > Disease Control
3828
- Home & Garden > Lawn & Garden > Gardening > Fertilizers
3829
- Home & Garden > Lawn & Garden > Gardening > Garden Pot Saucers & Trays
3830
- Home & Garden > Lawn & Garden > Gardening > Gardening Accessories
3831
- Home & Garden > Lawn & Garden > Gardening > Gardening Accessories > Gardening Scooters, Seats & Kneelers
3832
- Home & Garden > Lawn & Garden > Gardening > Gardening Accessories > Gardening Totes
3833
- Home & Garden > Lawn & Garden > Gardening > Gardening Accessories > Potting Benches
3834
- Home & Garden > Lawn & Garden > Gardening > Gardening Tool Accessories
3835
- Home & Garden > Lawn & Garden > Gardening > Gardening Tool Accessories > Gardening Tool Handles
3836
- Home & Garden > Lawn & Garden > Gardening > Gardening Tool Accessories > Gardening Tool Heads
3837
- Home & Garden > Lawn & Garden > Gardening > Gardening Tool Accessories > Wheelbarrow Parts
3838
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools
3839
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Bulb Planting Tools
3840
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Cultivating Tools
3841
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Gardening Forks
3842
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Gardening Sickles & Machetes
3843
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Gardening Trowels
3844
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Lawn & Garden Sprayers
3845
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Lawn Rollers
3846
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Pruning Saws
3847
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Pruning Shears
3848
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Rakes
3849
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Shovels & Spades
3850
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Spreaders
3851
- Home & Garden > Lawn & Garden > Gardening > Gardening Tools > Wheelbarrows
3852
- Home & Garden > Lawn & Garden > Gardening > Greenhouses
3853
- Home & Garden > Lawn & Garden > Gardening > Herbicides
3854
- Home & Garden > Lawn & Garden > Gardening > Landscape Fabric
3855
- Home & Garden > Lawn & Garden > Gardening > Landscape Fabric Accessories
3856
- Home & Garden > Lawn & Garden > Gardening > Landscape Fabric Accessories > Landscape Fabric Staples & Pins
3857
- Home & Garden > Lawn & Garden > Gardening > Landscape Fabric Accessories > Landscape Fabric Tape
3858
- Home & Garden > Lawn & Garden > Gardening > Mulch
3859
- Home & Garden > Lawn & Garden > Gardening > Plant Cages & Supports
3860
- Home & Garden > Lawn & Garden > Gardening > Plant Stands
3861
- Home & Garden > Lawn & Garden > Gardening > Pot & Planter Liners
3862
- Home & Garden > Lawn & Garden > Gardening > Pots & Planters
3863
- Home & Garden > Lawn & Garden > Gardening > Rain Barrels
3864
- Home & Garden > Lawn & Garden > Gardening > Sands & Soils
3865
- Home & Garden > Lawn & Garden > Gardening > Sands & Soils > Sand
3866
- Home & Garden > Lawn & Garden > Gardening > Sands & Soils > Soil
3867
- Home & Garden > Lawn & Garden > Outdoor Living
3868
- Home & Garden > Lawn & Garden > Outdoor Living > Awning Accessories
3869
- Home & Garden > Lawn & Garden > Outdoor Living > Awnings
3870
- Home & Garden > Lawn & Garden > Outdoor Living > Hammock Parts & Accessories
3871
- Home & Garden > Lawn & Garden > Outdoor Living > Hammocks
3872
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Blankets
3873
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Blankets > Beach Mats
3874
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Blankets > Picnic Blankets
3875
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Blankets > Poncho Liners
3876
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Structures
3877
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Structures > Canopies & Gazebos
3878
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Structures > Canopy & Gazebo Accessories
3879
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Structures > Canopy & Gazebo Accessories > Canopy & Gazebo Enclosure Kits
3880
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Structures > Canopy & Gazebo Accessories > Canopy & Gazebo Frames
3881
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Structures > Canopy & Gazebo Accessories > Canopy & Gazebo Tops
3882
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Structures > Canopy & Gazebo Accessories > Canopy Poles
3883
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Structures > Canopy & Gazebo Accessories > Canopy Weights
3884
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Structures > Garden Arches, Trellises, Arbors & Pergolas
3885
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Structures > Garden Bridges
3886
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Structures > Sheds, Garages & Carports
3887
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Umbrella & Sunshade Accessories
3888
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Umbrella & Sunshade Accessories > Outdoor Umbrella & Sunshade Fabric
3889
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Umbrella & Sunshade Accessories > Outdoor Umbrella Bases
3890
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Umbrella & Sunshade Accessories > Outdoor Umbrella Covers
3891
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Umbrella & Sunshade Accessories > Outdoor Umbrella Enclosure Kits
3892
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Umbrella & Sunshade Accessories > Outdoor Umbrella Lights
3893
- Home & Garden > Lawn & Garden > Outdoor Living > Outdoor Umbrellas & Sunshades
3894
- Home & Garden > Lawn & Garden > Outdoor Living > Porch Swing Accessories
3895
- Home & Garden > Lawn & Garden > Outdoor Living > Porch Swings
3896
- Home & Garden > Lawn & Garden > Outdoor Power Equipment
3897
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Chainsaws
3898
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Grass Edgers
3899
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Hedge Trimmers
3900
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Lawn Aerators & Dethatchers
3901
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Lawn Mowers
3902
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Lawn Mowers > Riding Mowers
3903
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Lawn Mowers > Robotic Mowers
3904
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Lawn Mowers > Tow-Behind Mowers
3905
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Lawn Mowers > Walk-Behind Mowers
3906
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Lawn Vacuums
3907
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Leaf Blowers
3908
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Outdoor Power Equipment Base Units
3909
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Outdoor Power Equipment Sets
3910
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Power Sweepers
3911
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Power Tillers & Cultivators
3912
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Pressure Washers
3913
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Snow Blowers
3914
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Tractors
3915
- Home & Garden > Lawn & Garden > Outdoor Power Equipment > Weed Trimmers
3916
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories
3917
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Chainsaw Accessories
3918
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Chainsaw Accessories > Chainsaw Bars
3919
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Chainsaw Accessories > Chainsaw Chains
3920
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Grass Edger Accessories
3921
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Hedge Trimmer Accessories
3922
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories
3923
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Brush Mower Attachments
3924
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Mower Bags
3925
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Mower Belts
3926
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Mower Blades
3927
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Mower Covers
3928
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Mower Mulch Kits
3929
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Mower Mulch Plugs & Plates
3930
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Mower Pulleys & Idlers
3931
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Mower Tire Tubes
3932
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Mower Tires
3933
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Mower Wheels
3934
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Striping Kits
3935
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Lawn Mower Accessories > Lawn Sweepers
3936
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Leaf Blower Accessories
3937
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Leaf Blower Accessories > Leaf Blower Tubes
3938
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Multifunction Outdoor Power Equipment Attachments
3939
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Multifunction Outdoor Power Equipment Attachments > Grass Edger Attachments
3940
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Multifunction Outdoor Power Equipment Attachments > Ground & Leaf Blower Attachments
3941
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Multifunction Outdoor Power Equipment Attachments > Hedge Trimmer Attachments
3942
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Multifunction Outdoor Power Equipment Attachments > Pole Saw Attachments
3943
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Multifunction Outdoor Power Equipment Attachments > Tiller & Cultivator Attachments
3944
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Multifunction Outdoor Power Equipment Attachments > Weed Trimmer Attachments
3945
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Outdoor Power Equipment Batteries
3946
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Pressure Washer Accessories
3947
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Snow Blower Accessories
3948
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Tractor Parts & Accessories
3949
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Tractor Parts & Accessories > Tractor Tires
3950
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Tractor Parts & Accessories > Tractor Wheels
3951
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Weed Trimmer Accessories
3952
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Weed Trimmer Accessories > Weed Trimmer Blades & Spools
3953
- Home & Garden > Lawn & Garden > Outdoor Power Equipment Accessories > Weed Trimmer Accessories > Weed Trimmer Spool Covers
3954
- Home & Garden > Lawn & Garden > Snow Removal
3955
- Home & Garden > Lawn & Garden > Snow Removal > Ice Scrapers & Snow Brushes
3956
- Home & Garden > Lawn & Garden > Snow Removal > Snow Shovels
3957
- Home & Garden > Lawn & Garden > Watering & Irrigation
3958
- Home & Garden > Lawn & Garden > Watering & Irrigation > Garden Hose Fittings & Valves
3959
- Home & Garden > Lawn & Garden > Watering & Irrigation > Garden Hose Spray Nozzles
3960
- Home & Garden > Lawn & Garden > Watering & Irrigation > Garden Hoses
3961
- Home & Garden > Lawn & Garden > Watering & Irrigation > Sprinkler Accessories
3962
- Home & Garden > Lawn & Garden > Watering & Irrigation > Sprinkler Accessories > Sprinkler Controls
3963
- Home & Garden > Lawn & Garden > Watering & Irrigation > Sprinkler Accessories > Sprinkler Valves
3964
- Home & Garden > Lawn & Garden > Watering & Irrigation > Sprinklers & Sprinkler Heads
3965
- Home & Garden > Lawn & Garden > Watering & Irrigation > Watering Can Accesssories
3966
- Home & Garden > Lawn & Garden > Watering & Irrigation > Watering Cans
3967
- Home & Garden > Lawn & Garden > Watering & Irrigation > Watering Globes & Spikes
3968
- Home & Garden > Lighting
3969
- Home & Garden > Lighting > Emergency Lighting
3970
- Home & Garden > Lighting > Floating & Submersible Lights
3971
- Home & Garden > Lighting > Flood & Spot Lights
3972
- Home & Garden > Lighting > In-Ground Lights
3973
- Home & Garden > Lighting > Lamps
3974
- Home & Garden > Lighting > Landscape Pathway Lighting
3975
- Home & Garden > Lighting > Light Bulbs
3976
- Home & Garden > Lighting > Light Bulbs > Compact Fluorescent Lamps
3977
- Home & Garden > Lighting > Light Bulbs > Fluorescent Tubes
3978
- Home & Garden > Lighting > Light Bulbs > Incandescent Light Bulbs
3979
- Home & Garden > Lighting > Light Bulbs > LED Light Bulbs
3980
- Home & Garden > Lighting > Light Ropes & Strings
3981
- Home & Garden > Lighting > Lighting Fixtures
3982
- Home & Garden > Lighting > Lighting Fixtures > Cabinet Light Fixtures
3983
- Home & Garden > Lighting > Lighting Fixtures > Ceiling Light Fixtures
3984
- Home & Garden > Lighting > Lighting Fixtures > Chandeliers
3985
- Home & Garden > Lighting > Lighting Fixtures > Wall Light Fixtures
3986
- Home & Garden > Lighting > Night Lights & Ambient Lighting
3987
- Home & Garden > Lighting > Picture Lights
3988
- Home & Garden > Lighting > Tiki Torches & Oil Lamps
3989
- Home & Garden > Lighting > Track Lighting
3990
- Home & Garden > Lighting > Track Lighting > Track Lighting Accessories
3991
- Home & Garden > Lighting > Track Lighting > Track Lighting Fixtures
3992
- Home & Garden > Lighting > Track Lighting > Track Lighting Rails
3993
- Home & Garden > Lighting Accessories
3994
- Home & Garden > Lighting Accessories > Lamp Post Bases
3995
- Home & Garden > Lighting Accessories > Lamp Post Mounts
3996
- Home & Garden > Lighting Accessories > Lamp Shades
3997
- Home & Garden > Lighting Accessories > Lighting Timers
3998
- Home & Garden > Lighting Accessories > Oil Lamp Fuel
3999
- Home & Garden > Linens & Bedding
4000
- Home & Garden > Linens & Bedding > Bedding
4001
- Home & Garden > Linens & Bedding > Bedding > Bed Canopies
4002
- Home & Garden > Linens & Bedding > Bedding > Bed Sheets
4003
- Home & Garden > Linens & Bedding > Bedding > Bedskirts
4004
- Home & Garden > Linens & Bedding > Bedding > Blankets
4005
- Home & Garden > Linens & Bedding > Bedding > Duvet Covers
4006
- Home & Garden > Linens & Bedding > Bedding > Mattress Protectors
4007
- Home & Garden > Linens & Bedding > Bedding > Mattress Protectors > Mattress Encasements
4008
- Home & Garden > Linens & Bedding > Bedding > Mattress Protectors > Mattress Pads
4009
- Home & Garden > Linens & Bedding > Bedding > Nap Mats
4010
- Home & Garden > Linens & Bedding > Bedding > Pillowcases & Shams
4011
- Home & Garden > Linens & Bedding > Bedding > Pillows
4012
- Home & Garden > Linens & Bedding > Bedding > Quilts & Comforters
4013
- Home & Garden > Linens & Bedding > Kitchen Linens Sets
4014
- Home & Garden > Linens & Bedding > Table Linens
4015
- Home & Garden > Linens & Bedding > Table Linens > Cloth Napkins
4016
- Home & Garden > Linens & Bedding > Table Linens > Doilies
4017
- Home & Garden > Linens & Bedding > Table Linens > Placemats
4018
- Home & Garden > Linens & Bedding > Table Linens > Table Runners
4019
- Home & Garden > Linens & Bedding > Table Linens > Table Skirts
4020
- Home & Garden > Linens & Bedding > Table Linens > Tablecloths
4021
- Home & Garden > Linens & Bedding > Towels
4022
- Home & Garden > Linens & Bedding > Towels > Bath Towels & Washcloths
4023
- Home & Garden > Linens & Bedding > Towels > Beach Towels
4024
- Home & Garden > Linens & Bedding > Towels > Kitchen Towels
4025
- Home & Garden > Parasols & Rain Umbrellas
4026
- Home & Garden > Plants
4027
- Home & Garden > Plants > Aquatic Plants
4028
- Home & Garden > Plants > Flowers
4029
- Home & Garden > Plants > Indoor & Outdoor Plants
4030
- Home & Garden > Plants > Indoor & Outdoor Plants > Bushes & Shrubs
4031
- Home & Garden > Plants > Indoor & Outdoor Plants > Landscaping & Garden Plants
4032
- Home & Garden > Plants > Indoor & Outdoor Plants > Potted Houseplants
4033
- Home & Garden > Plants > Plant & Herb Growing Kits
4034
- Home & Garden > Plants > Seeds
4035
- Home & Garden > Plants > Seeds > Plant & Flower Bulbs
4036
- Home & Garden > Plants > Seeds > Seeds & Seed Tape
4037
- Home & Garden > Plants > Trees
4038
- Home & Garden > Pool & Spa
4039
- Home & Garden > Pool & Spa > Pool & Spa Accessories
4040
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Diving Boards
4041
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool & Spa Chlorine Generators
4042
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool & Spa Filters
4043
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool & Spa Maintenance Kits
4044
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Brushes & Brooms
4045
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Cleaner Hoses
4046
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Cleaners & Chemicals
4047
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Cover Accessories
4048
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Covers & Ground Cloths
4049
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Deck Kits
4050
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Floats & Loungers
4051
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Heaters
4052
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Ladders, Steps & Ramps
4053
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Liners
4054
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Skimmers
4055
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Sweeps & Vacuums
4056
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Toys
4057
- Home & Garden > Pool & Spa > Pool & Spa Accessories > Pool Water Slides
4058
- Home & Garden > Pool & Spa > Sauna Accessories
4059
- Home & Garden > Pool & Spa > Sauna Accessories > Sauna Buckets & Ladles
4060
- Home & Garden > Pool & Spa > Sauna Accessories > Sauna Heaters
4061
- Home & Garden > Pool & Spa > Sauna Accessories > Sauna Kits
4062
- Home & Garden > Pool & Spa > Saunas
4063
- Home & Garden > Pool & Spa > Spas
4064
- Home & Garden > Pool & Spa > Swimming Pools
4065
- Home & Garden > Smoking Accessories
4066
- Home & Garden > Smoking Accessories > Ashtrays
4067
- Home & Garden > Smoking Accessories > Cigar Cases
4068
- Home & Garden > Smoking Accessories > Cigar Cutters & Punches
4069
- Home & Garden > Smoking Accessories > Cigarette Cases
4070
- Home & Garden > Smoking Accessories > Cigarette Holders
4071
- Home & Garden > Smoking Accessories > Humidor Accessories
4072
- Home & Garden > Smoking Accessories > Humidors
4073
- Home & Garden > Umbrella Sleeves & Cases
4074
- Home & Garden > Wood Stoves
4075
- Luggage & Bags
4076
- Luggage & Bags > Backpacks
4077
- Luggage & Bags > Briefcases
4078
- Luggage & Bags > Cosmetic & Toiletry Bags
4079
- Luggage & Bags > Diaper Bags
4080
- Luggage & Bags > Dry Boxes
4081
- Luggage & Bags > Duffel Bags
4082
- Luggage & Bags > Fanny Packs
4083
- Luggage & Bags > Garment Bags
4084
- Luggage & Bags > Luggage Accessories
4085
- Luggage & Bags > Luggage Accessories > Dry Box Liners & Inserts
4086
- Luggage & Bags > Luggage Accessories > Luggage Covers
4087
- Luggage & Bags > Luggage Accessories > Luggage Racks & Stands
4088
- Luggage & Bags > Luggage Accessories > Luggage Straps
4089
- Luggage & Bags > Luggage Accessories > Luggage Tags
4090
- Luggage & Bags > Luggage Accessories > Packing Organizers
4091
- Luggage & Bags > Luggage Accessories > Travel Bottles & Containers
4092
- Luggage & Bags > Luggage Accessories > Travel Pouches
4093
- Luggage & Bags > Messenger Bags
4094
- Luggage & Bags > Shopping Totes
4095
- Luggage & Bags > Suitcases
4096
- Luggage & Bags > Train Cases
4097
- Mature
4098
- Mature > Erotic
4099
- Mature > Erotic > Erotic Books
4100
- Mature > Erotic > Erotic Clothing
4101
- Mature > Erotic > Erotic DVDs & Videos
4102
- Mature > Erotic > Erotic Food & Edibles
4103
- Mature > Erotic > Erotic Games
4104
- Mature > Erotic > Erotic Magazines
4105
- Mature > Erotic > Pole Dancing Kits
4106
- Mature > Erotic > Sex Toys
4107
- Mature > Weapons
4108
- Mature > Weapons > Brass Knuckles
4109
- Mature > Weapons > Clubs & Batons
4110
- Mature > Weapons > Combat Knives
4111
- Mature > Weapons > Gun Care & Accessories
4112
- Mature > Weapons > Gun Care & Accessories > Ammunition
4113
- Mature > Weapons > Gun Care & Accessories > Ammunition Cases & Holders
4114
- Mature > Weapons > Gun Care & Accessories > Gun Cases & Range Bags
4115
- Mature > Weapons > Gun Care & Accessories > Gun Cleaning
4116
- Mature > Weapons > Gun Care & Accessories > Gun Cleaning > Gun Cleaning Cloths & Swabs
4117
- Mature > Weapons > Gun Care & Accessories > Gun Cleaning > Gun Cleaning Patches
4118
- Mature > Weapons > Gun Care & Accessories > Gun Cleaning > Gun Cleaning Solvents
4119
- Mature > Weapons > Gun Care & Accessories > Gun Grips
4120
- Mature > Weapons > Gun Care & Accessories > Gun Holsters
4121
- Mature > Weapons > Gun Care & Accessories > Gun Lights
4122
- Mature > Weapons > Gun Care & Accessories > Gun Rails
4123
- Mature > Weapons > Gun Care & Accessories > Gun Slings
4124
- Mature > Weapons > Gun Care & Accessories > Reloading Supplies & Equipment
4125
- Mature > Weapons > Gun Care & Accessories > Reloading Supplies & Equipment > Ammunition Reloading Presses
4126
- Mature > Weapons > Guns
4127
- Mature > Weapons > Mace & Pepper Spray
4128
- Mature > Weapons > Nunchucks
4129
- Mature > Weapons > Spears
4130
- Mature > Weapons > Staff & Stick Weapons
4131
- Mature > Weapons > Stun Guns & Tasers
4132
- Mature > Weapons > Swords
4133
- Mature > Weapons > Throwing Stars
4134
- Mature > Weapons > Whips
4135
- Media
4136
- Media > Books
4137
- Media > Books > Audiobooks
4138
- Media > Books > E-books
4139
- Media > Books > Print Books
4140
- Media > Carpentry & Woodworking Project Plans
4141
- Media > DVDs & Videos
4142
- Media > DVDs & Videos > Film & Television DVDs
4143
- Media > DVDs & Videos > Film & Television Digital Downloads
4144
- Media > DVDs & Videos > Film & Television VHS Tapes
4145
- Media > Magazines & Newspapers
4146
- Media > Magazines & Newspapers > Magazines
4147
- Media > Magazines & Newspapers > Newspapers
4148
- Media > Music & Sound Recordings
4149
- Media > Music & Sound Recordings > Digital Music Downloads
4150
- Media > Music & Sound Recordings > Music CDs
4151
- Media > Music & Sound Recordings > Music Cassette Tapes
4152
- Media > Music & Sound Recordings > Records & LPs
4153
- Media > Music & Sound Recordings > Spoken Word & Field Recordings
4154
- Media > Product Manuals
4155
- Media > Product Manuals > Camera & Optics Manuals
4156
- Media > Product Manuals > Electronics Manuals
4157
- Media > Product Manuals > Exercise & Fitness Equipment Manuals
4158
- Media > Product Manuals > Household Appliance Manuals
4159
- Media > Product Manuals > Kitchen Appliance Manuals
4160
- Media > Product Manuals > Model & Toys Manuals
4161
- Media > Product Manuals > Office Supply Manuals
4162
- Media > Product Manuals > Power Tool & Equipment Manuals
4163
- Media > Product Manuals > Vehicle Service Manuals
4164
- Media > Sheet Music
4165
- Office Supplies
4166
- Office Supplies > Book Accessories
4167
- Office Supplies > Book Accessories > Book Covers
4168
- Office Supplies > Book Accessories > Book Lights
4169
- Office Supplies > Book Accessories > Book Stands & Rests
4170
- Office Supplies > Book Accessories > Bookmarks
4171
- Office Supplies > Desk Pads & Blotters
4172
- Office Supplies > Filing & Organization
4173
- Office Supplies > Filing & Organization > Address Books
4174
- Office Supplies > Filing & Organization > Binding Supplies
4175
- Office Supplies > Filing & Organization > Binding Supplies > Binder Accessories
4176
- Office Supplies > Filing & Organization > Binding Supplies > Binder Accessories > Binder Rings
4177
- Office Supplies > Filing & Organization > Binding Supplies > Binder Accessories > Index Dividers
4178
- Office Supplies > Filing & Organization > Binding Supplies > Binder Accessories > Sheet Protectors
4179
- Office Supplies > Filing & Organization > Binding Supplies > Binders
4180
- Office Supplies > Filing & Organization > Binding Supplies > Binding Combs & Spines
4181
- Office Supplies > Filing & Organization > Binding Supplies > Binding Machines
4182
- Office Supplies > Filing & Organization > Business Card Books
4183
- Office Supplies > Filing & Organization > Business Card Stands
4184
- Office Supplies > Filing & Organization > CD/DVD Cases & Organizers
4185
- Office Supplies > Filing & Organization > Calendars, Organizers & Planners
4186
- Office Supplies > Filing & Organization > Card Files
4187
- Office Supplies > Filing & Organization > Card Sleeves
4188
- Office Supplies > Filing & Organization > Cash Boxes
4189
- Office Supplies > Filing & Organization > Desk Organizers
4190
- Office Supplies > Filing & Organization > File Boxes
4191
- Office Supplies > Filing & Organization > File Folders
4192
- Office Supplies > Filing & Organization > Folders & Report Covers
4193
- Office Supplies > Filing & Organization > Folders & Report Covers > Pocket Folders
4194
- Office Supplies > Filing & Organization > Folders & Report Covers > Report Covers
4195
- Office Supplies > Filing & Organization > Greeting Card Organizers
4196
- Office Supplies > Filing & Organization > Mail Sorters
4197
- Office Supplies > Filing & Organization > Pen & Pencil Cases
4198
- Office Supplies > Filing & Organization > Portfolios & Padfolios
4199
- Office Supplies > Filing & Organization > Portfolios & Padfolios > Padfolios
4200
- Office Supplies > Filing & Organization > Portfolios & Padfolios > Portfolios
4201
- Office Supplies > Filing & Organization > Recipe Card Boxes
4202
- Office Supplies > General Office Supplies
4203
- Office Supplies > General Office Supplies > Brass Fasteners
4204
- Office Supplies > General Office Supplies > Correction Fluids, Pens & Tapes
4205
- Office Supplies > General Office Supplies > Correction Fluids, Pens & Tapes > Correction Fluids
4206
- Office Supplies > General Office Supplies > Correction Fluids, Pens & Tapes > Correction Pens
4207
- Office Supplies > General Office Supplies > Correction Fluids, Pens & Tapes > Correction Tapes
4208
- Office Supplies > General Office Supplies > Erasers
4209
- Office Supplies > General Office Supplies > Labels & Tags
4210
- Office Supplies > General Office Supplies > Labels & Tags > Address Labels
4211
- Office Supplies > General Office Supplies > Labels & Tags > Folder Tabs
4212
- Office Supplies > General Office Supplies > Labels & Tags > Label Clips
4213
- Office Supplies > General Office Supplies > Labels & Tags > Label Tapes & Refill Rolls
4214
- Office Supplies > General Office Supplies > Labels & Tags > Shipping Labels
4215
- Office Supplies > General Office Supplies > Labels & Tags > Shipping Tags
4216
- Office Supplies > General Office Supplies > Laminating Film, Pouches & Sheets
4217
- Office Supplies > General Office Supplies > Mounting Putty
4218
- Office Supplies > General Office Supplies > Office Tape
4219
- Office Supplies > General Office Supplies > Paper Clips & Clamps
4220
- Office Supplies > General Office Supplies > Paper Clips & Clamps > Binder Clips
4221
- Office Supplies > General Office Supplies > Paper Clips & Clamps > Paper Clips
4222
- Office Supplies > General Office Supplies > Paper Products
4223
- Office Supplies > General Office Supplies > Paper Products > Binder Paper
4224
- Office Supplies > General Office Supplies > Paper Products > Blank ID Cards
4225
- Office Supplies > General Office Supplies > Paper Products > Business Cards
4226
- Office Supplies > General Office Supplies > Paper Products > Business Forms & Receipts
4227
- Office Supplies > General Office Supplies > Paper Products > Checks
4228
- Office Supplies > General Office Supplies > Paper Products > Cover Paper
4229
- Office Supplies > General Office Supplies > Paper Products > Envelopes
4230
- Office Supplies > General Office Supplies > Paper Products > Index Cards
4231
- Office Supplies > General Office Supplies > Paper Products > Notebooks & Notepads
4232
- Office Supplies > General Office Supplies > Paper Products > Post Cards
4233
- Office Supplies > General Office Supplies > Paper Products > Printer & Copier Paper
4234
- Office Supplies > General Office Supplies > Paper Products > Receipt & Adding Machine Paper Rolls
4235
- Office Supplies > General Office Supplies > Paper Products > Stationery
4236
- Office Supplies > General Office Supplies > Paper Products > Sticky Notes
4237
- Office Supplies > General Office Supplies > Rubber Bands
4238
- Office Supplies > General Office Supplies > Staples
4239
- Office Supplies > General Office Supplies > Tacks & Pushpins
4240
- Office Supplies > Impulse Sealers
4241
- Office Supplies > Lap Desks
4242
- Office Supplies > Name Plates
4243
- Office Supplies > Office & Chair Mats
4244
- Office Supplies > Office & Chair Mats > Anti-Fatigue Mats
4245
- Office Supplies > Office & Chair Mats > Chair Mats
4246
- Office Supplies > Office & Chair Mats > Office Mats
4247
- Office Supplies > Office Carts
4248
- Office Supplies > Office Carts > AV Carts
4249
- Office Supplies > Office Carts > Book Carts
4250
- Office Supplies > Office Carts > File Carts
4251
- Office Supplies > Office Carts > Mail Carts
4252
- Office Supplies > Office Carts > Utility Carts
4253
- Office Supplies > Office Equipment
4254
- Office Supplies > Office Equipment > Calculator Accessories
4255
- Office Supplies > Office Equipment > Calculators
4256
- Office Supplies > Office Equipment > Calculators > Basic Calculators
4257
- Office Supplies > Office Equipment > Calculators > Construction Calculators
4258
- Office Supplies > Office Equipment > Calculators > Financial Calculators
4259
- Office Supplies > Office Equipment > Calculators > Graphing Calculators
4260
- Office Supplies > Office Equipment > Calculators > Scientific Calculators
4261
- Office Supplies > Office Equipment > Electronic Dictionaries & Translators
4262
- Office Supplies > Office Equipment > Label Makers
4263
- Office Supplies > Office Equipment > Laminators
4264
- Office Supplies > Office Equipment > Office Shredders
4265
- Office Supplies > Office Equipment > Postage Meters
4266
- Office Supplies > Office Equipment > Time & Attendance Clocks
4267
- Office Supplies > Office Equipment > Transcribers & Dictation Systems
4268
- Office Supplies > Office Equipment > Typewriters
4269
- Office Supplies > Office Instruments
4270
- Office Supplies > Office Instruments > Call Bells
4271
- Office Supplies > Office Instruments > Clipboards
4272
- Office Supplies > Office Instruments > Letter Openers
4273
- Office Supplies > Office Instruments > Magnifiers
4274
- Office Supplies > Office Instruments > Office Rubber Stamps
4275
- Office Supplies > Office Instruments > Pencil Sharpeners
4276
- Office Supplies > Office Instruments > Staple Removers
4277
- Office Supplies > Office Instruments > Staplers
4278
- Office Supplies > Office Instruments > Tape Dispensers
4279
- Office Supplies > Office Instruments > Writing & Drawing Instrument Accessories
4280
- Office Supplies > Office Instruments > Writing & Drawing Instrument Accessories > Marker & Highlighter Ink Refills
4281
- Office Supplies > Office Instruments > Writing & Drawing Instrument Accessories > Marker & Highlighter Ink Refills > Highlighter Refills
4282
- Office Supplies > Office Instruments > Writing & Drawing Instrument Accessories > Marker & Highlighter Ink Refills > Marker Refills
4283
- Office Supplies > Office Instruments > Writing & Drawing Instrument Accessories > Pen Ink & Refills
4284
- Office Supplies > Office Instruments > Writing & Drawing Instrument Accessories > Pencil Lead & Refills
4285
- Office Supplies > Office Instruments > Writing & Drawing Instruments
4286
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Art Charcoals
4287
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Chalk
4288
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Crayons
4289
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Markers & Highlighters
4290
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Markers & Highlighters > Highlighters
4291
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Markers & Highlighters > Markers
4292
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Multifunction Writing Instruments
4293
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Pastels
4294
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Pens & Pencils
4295
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Pens & Pencils > Pen & Pencil Sets
4296
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Pens & Pencils > Pencils
4297
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Pens & Pencils > Pencils > Art Pencils
4298
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Pens & Pencils > Pencils > Writing Pencils
4299
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Pens & Pencils > Pencils > Writing Pencils > Mechanical Pencils
4300
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Pens & Pencils > Pencils > Writing Pencils > Wooden Pencils
4301
- Office Supplies > Office Instruments > Writing & Drawing Instruments > Pens & Pencils > Pens
4302
- Office Supplies > Paper Handling
4303
- Office Supplies > Paper Handling > Fingertip Grips
4304
- Office Supplies > Paper Handling > Hole Punches
4305
- Office Supplies > Paper Handling > Paper Folding Machines
4306
- Office Supplies > Paper Handling > Paper Joggers
4307
- Office Supplies > Paper Handling > Paperweights
4308
- Office Supplies > Paper Handling > Pencil Boards
4309
- Office Supplies > Presentation Supplies
4310
- Office Supplies > Presentation Supplies > Chalkboards
4311
- Office Supplies > Presentation Supplies > Display Boards
4312
- Office Supplies > Presentation Supplies > Display Boards > Bulletin Board Accessories
4313
- Office Supplies > Presentation Supplies > Display Boards > Bulletin Board Accessories > Bulletin Board Trim
4314
- Office Supplies > Presentation Supplies > Display Boards > Bulletin Board Accessories > Bulletin Board Trim Sets
4315
- Office Supplies > Presentation Supplies > Display Boards > Bulletin Boards
4316
- Office Supplies > Presentation Supplies > Display Boards > Foam Boards
4317
- Office Supplies > Presentation Supplies > Display Boards > Mounting Boards
4318
- Office Supplies > Presentation Supplies > Display Boards > Poster Boards
4319
- Office Supplies > Presentation Supplies > Document Cameras
4320
- Office Supplies > Presentation Supplies > Dry-Erase Boards
4321
- Office Supplies > Presentation Supplies > Easel Pads
4322
- Office Supplies > Presentation Supplies > Easels
4323
- Office Supplies > Presentation Supplies > Laser Pointers
4324
- Office Supplies > Presentation Supplies > Lecterns
4325
- Office Supplies > Presentation Supplies > Transparencies
4326
- Office Supplies > Presentation Supplies > Wireless Presenters
4327
- Office Supplies > Shipping Supplies
4328
- Office Supplies > Shipping Supplies > Moving & Shipping Boxes
4329
- Office Supplies > Shipping Supplies > Packing Materials
4330
- Office Supplies > Shipping Supplies > Packing Tape
4331
- Religious & Ceremonial
4332
- Religious & Ceremonial > Memorial Ceremony Supplies
4333
- Religious & Ceremonial > Memorial Ceremony Supplies > Memorial Urns
4334
- Religious & Ceremonial > Religious Items
4335
- Religious & Ceremonial > Religious Items > Prayer Beads
4336
- Religious & Ceremonial > Religious Items > Prayer Cards
4337
- Religious & Ceremonial > Religious Items > Religious Altars
4338
- Religious & Ceremonial > Religious Items > Religious Veils
4339
- Religious & Ceremonial > Religious Items > Tarot Cards
4340
- Religious & Ceremonial > Wedding Ceremony Supplies
4341
- Religious & Ceremonial > Wedding Ceremony Supplies > Aisle Runners
4342
- Religious & Ceremonial > Wedding Ceremony Supplies > Flower Girl Baskets
4343
- Religious & Ceremonial > Wedding Ceremony Supplies > Ring Pillows & Holders
4344
- Software
4345
- Software > Computer Software
4346
- Software > Computer Software > Antivirus & Security Software
4347
- Software > Computer Software > Business & Productivity Software
4348
- Software > Computer Software > Compilers & Programming Tools
4349
- Software > Computer Software > Computer Utilities & Maintenance Software
4350
- Software > Computer Software > Dictionary & Translation Software
4351
- Software > Computer Software > Educational Software
4352
- Software > Computer Software > Financial, Tax & Accounting Software
4353
- Software > Computer Software > GPS Map Data & Software
4354
- Software > Computer Software > Handheld & PDA Software
4355
- Software > Computer Software > Multimedia & Design Software
4356
- Software > Computer Software > Multimedia & Design Software > 3D Modeling Software
4357
- Software > Computer Software > Multimedia & Design Software > Animation Editing Software
4358
- Software > Computer Software > Multimedia & Design Software > Graphic Design & Illustration Software
4359
- Software > Computer Software > Multimedia & Design Software > Home & Interior Design Software
4360
- Software > Computer Software > Multimedia & Design Software > Home Publishing Software
4361
- Software > Computer Software > Multimedia & Design Software > Media Viewing Software
4362
- Software > Computer Software > Multimedia & Design Software > Music Composition Software
4363
- Software > Computer Software > Multimedia & Design Software > Sound Editing Software
4364
- Software > Computer Software > Multimedia & Design Software > Video Editing Software
4365
- Software > Computer Software > Multimedia & Design Software > Web Design Software
4366
- Software > Computer Software > Network Software
4367
- Software > Computer Software > Office Application Software
4368
- Software > Computer Software > Operating Systems
4369
- Software > Computer Software > Restore Disks
4370
- Software > Digital Goods & Currency
4371
- Software > Digital Goods & Currency > Computer Icons
4372
- Software > Digital Goods & Currency > Desktop Wallpaper
4373
- Software > Digital Goods & Currency > Digital Artwork
4374
- Software > Digital Goods & Currency > Document Templates
4375
- Software > Digital Goods & Currency > Fonts
4376
- Software > Digital Goods & Currency > Stock Photographs & Video Footage
4377
- Software > Digital Goods & Currency > Virtual Currency
4378
- Software > Video Game Software
4379
- Sporting Goods
4380
- Sporting Goods > Athletics
4381
- Sporting Goods > Athletics > Baseball & Softball
4382
- Sporting Goods > Athletics > Baseball & Softball > Baseball & Softball Bases & Plates
4383
- Sporting Goods > Athletics > Baseball & Softball > Baseball & Softball Batting Gloves
4384
- Sporting Goods > Athletics > Baseball & Softball > Baseball & Softball Gloves & Mitts
4385
- Sporting Goods > Athletics > Baseball & Softball > Baseball & Softball Pitching Mats
4386
- Sporting Goods > Athletics > Baseball & Softball > Baseball & Softball Pitching Mounds
4387
- Sporting Goods > Athletics > Baseball & Softball > Baseball & Softball Protective Gear
4388
- Sporting Goods > Athletics > Baseball & Softball > Baseball & Softball Protective Gear > Baseball & Softball Batting Helmets
4389
- Sporting Goods > Athletics > Baseball & Softball > Baseball & Softball Protective Gear > Baseball & Softball Chest Protectors
4390
- Sporting Goods > Athletics > Baseball & Softball > Baseball & Softball Protective Gear > Baseball & Softball Leg Guards
4391
- Sporting Goods > Athletics > Baseball & Softball > Baseball & Softball Protective Gear > Catchers Equipment Sets
4392
- Sporting Goods > Athletics > Baseball & Softball > Baseball & Softball Protective Gear > Catchers Helmets & Masks
4393
- Sporting Goods > Athletics > Baseball & Softball > Baseball Bats
4394
- Sporting Goods > Athletics > Baseball & Softball > Baseballs
4395
- Sporting Goods > Athletics > Baseball & Softball > Pitching Machines
4396
- Sporting Goods > Athletics > Baseball & Softball > Softball Bats
4397
- Sporting Goods > Athletics > Baseball & Softball > Softballs
4398
- Sporting Goods > Athletics > Basketball
4399
- Sporting Goods > Athletics > Basketball > Basketball Hoop Parts & Accessories
4400
- Sporting Goods > Athletics > Basketball > Basketball Hoop Parts & Accessories > Basketball Backboards
4401
- Sporting Goods > Athletics > Basketball > Basketball Hoop Parts & Accessories > Basketball Hoop Padding
4402
- Sporting Goods > Athletics > Basketball > Basketball Hoop Parts & Accessories > Basketball Hoop Posts
4403
- Sporting Goods > Athletics > Basketball > Basketball Hoop Parts & Accessories > Basketball Nets
4404
- Sporting Goods > Athletics > Basketball > Basketball Hoop Parts & Accessories > Basketball Rims
4405
- Sporting Goods > Athletics > Basketball > Basketball Hoops
4406
- Sporting Goods > Athletics > Basketball > Basketball Training Aids
4407
- Sporting Goods > Athletics > Basketball > Basketballs
4408
- Sporting Goods > Athletics > Boxing & Martial Arts
4409
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Protective Gear
4410
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Protective Gear > Boxing & MMA Hand Wraps
4411
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Protective Gear > Boxing & Martial Arts Arm Guards
4412
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Protective Gear > Boxing & Martial Arts Body Protectors
4413
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Protective Gear > Boxing & Martial Arts Headgear
4414
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Protective Gear > Boxing Gloves & Mitts
4415
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Protective Gear > MMA Shin Guards
4416
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Training Equipment
4417
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Training Equipment > Boxing & MMA Punch Mitts
4418
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Training Equipment > Grappling Dummies
4419
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Training Equipment > Punching & Training Bag Accessories
4420
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Training Equipment > Punching & Training Bags
4421
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing & Martial Arts Training Equipment > Strike Shields
4422
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing Ring Parts
4423
- Sporting Goods > Athletics > Boxing & Martial Arts > Boxing Rings
4424
- Sporting Goods > Athletics > Boxing & Martial Arts > Martial Arts Belts
4425
- Sporting Goods > Athletics > Boxing & Martial Arts > Martial Arts Weapons
4426
- Sporting Goods > Athletics > Broomball Equipment
4427
- Sporting Goods > Athletics > Cheerleading
4428
- Sporting Goods > Athletics > Cheerleading > Cheerleading Pom Poms
4429
- Sporting Goods > Athletics > Coaching & Officiating
4430
- Sporting Goods > Athletics > Coaching & Officiating > Captains Armbands
4431
- Sporting Goods > Athletics > Coaching & Officiating > Field & Court Boundary Markers
4432
- Sporting Goods > Athletics > Coaching & Officiating > Flip Coins & Discs
4433
- Sporting Goods > Athletics > Coaching & Officiating > Linesman Flags
4434
- Sporting Goods > Athletics > Coaching & Officiating > Penalty Cards & Flags
4435
- Sporting Goods > Athletics > Coaching & Officiating > Pitch Counters
4436
- Sporting Goods > Athletics > Coaching & Officiating > Referee Stands & Chairs
4437
- Sporting Goods > Athletics > Coaching & Officiating > Referee Wallets
4438
- Sporting Goods > Athletics > Coaching & Officiating > Scoreboards
4439
- Sporting Goods > Athletics > Coaching & Officiating > Sport & Safety Whistles
4440
- Sporting Goods > Athletics > Coaching & Officiating > Umpire Indicators
4441
- Sporting Goods > Athletics > Cricket
4442
- Sporting Goods > Athletics > Cricket > Cricket Balls
4443
- Sporting Goods > Athletics > Cricket > Cricket Bat Accessories
4444
- Sporting Goods > Athletics > Cricket > Cricket Bat Accessories > Cricket Bat Grips
4445
- Sporting Goods > Athletics > Cricket > Cricket Bats
4446
- Sporting Goods > Athletics > Cricket > Cricket Equipment Sets
4447
- Sporting Goods > Athletics > Cricket > Cricket Protective Gear
4448
- Sporting Goods > Athletics > Cricket > Cricket Protective Gear > Cricket Gloves
4449
- Sporting Goods > Athletics > Cricket > Cricket Protective Gear > Cricket Helmets
4450
- Sporting Goods > Athletics > Cricket > Cricket Protective Gear > Cricket Leg Guards
4451
- Sporting Goods > Athletics > Cricket > Cricket Stumps
4452
- Sporting Goods > Athletics > Dancing
4453
- Sporting Goods > Athletics > Dancing > Ballet Barres
4454
- Sporting Goods > Athletics > Fencing
4455
- Sporting Goods > Athletics > Fencing > Fencing Protective Gear
4456
- Sporting Goods > Athletics > Fencing > Fencing Protective Gear > Fencing Gloves & Cuffs
4457
- Sporting Goods > Athletics > Fencing > Fencing Protective Gear > Fencing Jackets & Lamés
4458
- Sporting Goods > Athletics > Fencing > Fencing Protective Gear > Fencing Masks
4459
- Sporting Goods > Athletics > Fencing > Fencing Weapons
4460
- Sporting Goods > Athletics > Field Hockey & Lacrosse
4461
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Field Hockey & Lacrosse Protective Gear
4462
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Field Hockey & Lacrosse Protective Gear > Field Hockey & Lacrosse Gloves
4463
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Field Hockey & Lacrosse Protective Gear > Field Hockey & Lacrosse Helmets
4464
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Field Hockey & Lacrosse Protective Gear > Field Hockey & Lacrosse Masks & Goggles
4465
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Field Hockey & Lacrosse Protective Gear > Field Hockey & Lacrosse Pads
4466
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Field Hockey Balls
4467
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Field Hockey Goals
4468
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Field Hockey Sticks
4469
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Lacrosse Balls
4470
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Lacrosse Equipment Sets
4471
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Lacrosse Goals
4472
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Lacrosse Stick Parts
4473
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Lacrosse Stick Parts > Lacrosse Mesh & String
4474
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Lacrosse Stick Parts > Lacrosse Stick Heads
4475
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Lacrosse Stick Parts > Lacrosse Stick Shafts
4476
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Lacrosse Sticks
4477
- Sporting Goods > Athletics > Field Hockey & Lacrosse > Lacrosse Training Aids
4478
- Sporting Goods > Athletics > Figure Skating & Hockey
4479
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Balls & Pucks
4480
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Goals
4481
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Protective Gear
4482
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Protective Gear > Hockey Elbow Pads
4483
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Protective Gear > Hockey Gloves
4484
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Protective Gear > Hockey Goalie Equipment Sets
4485
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Protective Gear > Hockey Helmets
4486
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Protective Gear > Hockey Pants
4487
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Protective Gear > Hockey Shin Guards & Leg Pads
4488
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Protective Gear > Hockey Shoulder Pads & Chest Protectors
4489
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Protective Gear > Hockey Suspenders & Belts
4490
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Sledges
4491
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Stick Care
4492
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Stick Parts
4493
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Stick Parts > Hockey Stick Blades
4494
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Stick Parts > Hockey Stick Shafts
4495
- Sporting Goods > Athletics > Figure Skating & Hockey > Hockey Sticks
4496
- Sporting Goods > Athletics > Figure Skating & Hockey > Ice Skate Parts & Accessories
4497
- Sporting Goods > Athletics > Figure Skating & Hockey > Ice Skate Parts & Accessories > Figure Skate Boots
4498
- Sporting Goods > Athletics > Figure Skating & Hockey > Ice Skate Parts & Accessories > Ice Skate Blades
4499
- Sporting Goods > Athletics > Figure Skating & Hockey > Ice Skate Parts & Accessories > Ice Skate Sharpeners
4500
- Sporting Goods > Athletics > Figure Skating & Hockey > Ice Skate Parts & Accessories > Skate Blade Guards
4501
- Sporting Goods > Athletics > Figure Skating & Hockey > Ice Skate Parts & Accessories > Skate Lace Tighteners
4502
- Sporting Goods > Athletics > Figure Skating & Hockey > Ice Skates
4503
- Sporting Goods > Athletics > Football
4504
- Sporting Goods > Athletics > Football > Football Gloves
4505
- Sporting Goods > Athletics > Football > Football Goal Posts
4506
- Sporting Goods > Athletics > Football > Football Kicking Tees & Holders
4507
- Sporting Goods > Athletics > Football > Football Protective Gear
4508
- Sporting Goods > Athletics > Football > Football Protective Gear > Football Girdles
4509
- Sporting Goods > Athletics > Football > Football Protective Gear > Football Helmet Accessories
4510
- Sporting Goods > Athletics > Football > Football Protective Gear > Football Helmet Accessories > Football Chin Straps
4511
- Sporting Goods > Athletics > Football > Football Protective Gear > Football Helmet Accessories > Football Face Masks
4512
- Sporting Goods > Athletics > Football > Football Protective Gear > Football Helmet Accessories > Football Helmet Padding
4513
- Sporting Goods > Athletics > Football > Football Protective Gear > Football Helmet Accessories > Football Helmet Visors
4514
- Sporting Goods > Athletics > Football > Football Protective Gear > Football Helmets
4515
- Sporting Goods > Athletics > Football > Football Protective Gear > Football Neck Rolls
4516
- Sporting Goods > Athletics > Football > Football Protective Gear > Football Rib Protection Shirts & Vests
4517
- Sporting Goods > Athletics > Football > Football Protective Gear > Football Shoulder Pads
4518
- Sporting Goods > Athletics > Football > Football Training Equipment
4519
- Sporting Goods > Athletics > Football > Football Training Equipment > Football Dummies & Sleds
4520
- Sporting Goods > Athletics > Football > Footballs
4521
- Sporting Goods > Athletics > General Purpose Athletic Equipment
4522
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Altitude Training Masks
4523
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Athletic Cups
4524
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Ball Carrying Bags & Carts
4525
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Ball Pump Accessories
4526
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Ball Pump Accessories > Ball Pump Needles
4527
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Ball Pumps
4528
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Exercise & Gym Mat Storage Racks & Carts
4529
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Grip Spray & Chalk
4530
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Gym Mats
4531
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Practice Nets & Screens
4532
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Speed & Agility Ladders & Hurdles
4533
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Sports & Agility Cones
4534
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Sports Megaphones
4535
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Sports Mouthguards
4536
- Sporting Goods > Athletics > General Purpose Athletic Equipment > Stadium Seats & Cushions
4537
- Sporting Goods > Athletics > Gymnastics
4538
- Sporting Goods > Athletics > Gymnastics > Gymnastics Bars & Balance Beams
4539
- Sporting Goods > Athletics > Gymnastics > Gymnastics Protective Gear
4540
- Sporting Goods > Athletics > Gymnastics > Gymnastics Protective Gear > Gymnastics Grips
4541
- Sporting Goods > Athletics > Gymnastics > Gymnastics Rings
4542
- Sporting Goods > Athletics > Gymnastics > Gymnastics Springboards
4543
- Sporting Goods > Athletics > Gymnastics > Pommel Horses
4544
- Sporting Goods > Athletics > Gymnastics > Vaulting Horses
4545
- Sporting Goods > Athletics > Racquetball & Squash
4546
- Sporting Goods > Athletics > Racquetball & Squash > Racquetball & Squash Balls
4547
- Sporting Goods > Athletics > Racquetball & Squash > Racquetball & Squash Eyewear
4548
- Sporting Goods > Athletics > Racquetball & Squash > Racquetball & Squash Gloves
4549
- Sporting Goods > Athletics > Racquetball & Squash > Racquetball Racquets
4550
- Sporting Goods > Athletics > Racquetball & Squash > Squash Racquets
4551
- Sporting Goods > Athletics > Rounders
4552
- Sporting Goods > Athletics > Rounders > Rounders Bats
4553
- Sporting Goods > Athletics > Rounders > Rounders Gloves
4554
- Sporting Goods > Athletics > Rugby
4555
- Sporting Goods > Athletics > Rugby > Rugby Balls
4556
- Sporting Goods > Athletics > Rugby > Rugby Gloves
4557
- Sporting Goods > Athletics > Rugby > Rugby Posts
4558
- Sporting Goods > Athletics > Rugby > Rugby Protective Gear
4559
- Sporting Goods > Athletics > Rugby > Rugby Protective Gear > Rugby Headgear
4560
- Sporting Goods > Athletics > Rugby > Rugby Training Aids
4561
- Sporting Goods > Athletics > Soccer
4562
- Sporting Goods > Athletics > Soccer > Soccer Balls
4563
- Sporting Goods > Athletics > Soccer > Soccer Corner Flags
4564
- Sporting Goods > Athletics > Soccer > Soccer Gloves
4565
- Sporting Goods > Athletics > Soccer > Soccer Goal Accessories
4566
- Sporting Goods > Athletics > Soccer > Soccer Goals
4567
- Sporting Goods > Athletics > Soccer > Soccer Protective Gear
4568
- Sporting Goods > Athletics > Soccer > Soccer Protective Gear > Soccer Shin Guards
4569
- Sporting Goods > Athletics > Team Handball
4570
- Sporting Goods > Athletics > Team Handball > Handballs
4571
- Sporting Goods > Athletics > Tennis
4572
- Sporting Goods > Athletics > Tennis > Tennis Ball Hoppers & Carts
4573
- Sporting Goods > Athletics > Tennis > Tennis Ball Machines
4574
- Sporting Goods > Athletics > Tennis > Tennis Ball Savers
4575
- Sporting Goods > Athletics > Tennis > Tennis Balls
4576
- Sporting Goods > Athletics > Tennis > Tennis Nets
4577
- Sporting Goods > Athletics > Tennis > Tennis Racquet Accessories
4578
- Sporting Goods > Athletics > Tennis > Tennis Racquet Accessories > Racquet Vibration Dampeners
4579
- Sporting Goods > Athletics > Tennis > Tennis Racquet Accessories > Tennis Racquet Bags
4580
- Sporting Goods > Athletics > Tennis > Tennis Racquet Accessories > Tennis Racquet Grips & Tape
4581
- Sporting Goods > Athletics > Tennis > Tennis Racquet Accessories > Tennis Racquet Grommets
4582
- Sporting Goods > Athletics > Tennis > Tennis Racquet Accessories > Tennis Racquet String
4583
- Sporting Goods > Athletics > Tennis > Tennis Racquets
4584
- Sporting Goods > Athletics > Track & Field
4585
- Sporting Goods > Athletics > Track & Field > Discus
4586
- Sporting Goods > Athletics > Track & Field > High Jump Crossbars
4587
- Sporting Goods > Athletics > Track & Field > High Jump Pits
4588
- Sporting Goods > Athletics > Track & Field > Javelins
4589
- Sporting Goods > Athletics > Track & Field > Pole Vault Pits
4590
- Sporting Goods > Athletics > Track & Field > Relay Batons
4591
- Sporting Goods > Athletics > Track & Field > Shot Puts
4592
- Sporting Goods > Athletics > Track & Field > Starter Pistols
4593
- Sporting Goods > Athletics > Track & Field > Throwing Hammers
4594
- Sporting Goods > Athletics > Track & Field > Track Hurdles
4595
- Sporting Goods > Athletics > Track & Field > Track Starting Blocks
4596
- Sporting Goods > Athletics > Track & Field > Vaulting Poles
4597
- Sporting Goods > Athletics > Volleyball
4598
- Sporting Goods > Athletics > Volleyball > Volleyball Nets
4599
- Sporting Goods > Athletics > Volleyball > Volleyball Protective Gear
4600
- Sporting Goods > Athletics > Volleyball > Volleyball Protective Gear > Volleyball Knee Pads
4601
- Sporting Goods > Athletics > Volleyball > Volleyball Training Aids
4602
- Sporting Goods > Athletics > Volleyball > Volleyballs
4603
- Sporting Goods > Athletics > Wallyball Equipment
4604
- Sporting Goods > Athletics > Water Polo
4605
- Sporting Goods > Athletics > Water Polo > Water Polo Balls
4606
- Sporting Goods > Athletics > Water Polo > Water Polo Caps
4607
- Sporting Goods > Athletics > Water Polo > Water Polo Goals
4608
- Sporting Goods > Athletics > Wrestling
4609
- Sporting Goods > Athletics > Wrestling > Wrestling Protective Gear
4610
- Sporting Goods > Athletics > Wrestling > Wrestling Protective Gear > Wrestling Headgear
4611
- Sporting Goods > Athletics > Wrestling > Wrestling Protective Gear > Wrestling Knee Pads
4612
- Sporting Goods > Exercise & Fitness
4613
- Sporting Goods > Exercise & Fitness > Ab Wheels & Rollers
4614
- Sporting Goods > Exercise & Fitness > Aerobic Steps
4615
- Sporting Goods > Exercise & Fitness > Balance Trainers
4616
- Sporting Goods > Exercise & Fitness > Cardio
4617
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machine Accessories
4618
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machine Accessories > Elliptical Trainer Accessories
4619
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machine Accessories > Exercise Bike Accessories
4620
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machine Accessories > Rowing Machine Accessories
4621
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machine Accessories > Stair Climber & Stepper Accessories
4622
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machine Accessories > Treadmill Accessories
4623
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machines
4624
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machines > Elliptical Trainers
4625
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machines > Exercise Bikes
4626
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machines > Rowing Machines
4627
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machines > Stair Climbers & Steppers
4628
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machines > Stair Climbers & Steppers > Stair Climbers
4629
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machines > Stair Climbers & Steppers > Stair Steppers
4630
- Sporting Goods > Exercise & Fitness > Cardio > Cardio Machines > Treadmills
4631
- Sporting Goods > Exercise & Fitness > Cardio > Jump Ropes
4632
- Sporting Goods > Exercise & Fitness > Exercise Balls
4633
- Sporting Goods > Exercise & Fitness > Exercise Bands
4634
- Sporting Goods > Exercise & Fitness > Exercise Benches
4635
- Sporting Goods > Exercise & Fitness > Exercise Equipment Mats
4636
- Sporting Goods > Exercise & Fitness > Exercise Machine & Equipment Sets
4637
- Sporting Goods > Exercise & Fitness > Exercise Wedges
4638
- Sporting Goods > Exercise & Fitness > Foam Roller Accessories
4639
- Sporting Goods > Exercise & Fitness > Foam Roller Accessories > Foam Roller Storage Bags
4640
- Sporting Goods > Exercise & Fitness > Foam Rollers
4641
- Sporting Goods > Exercise & Fitness > Hand Exercisers
4642
- Sporting Goods > Exercise & Fitness > Inversion Tables & Systems
4643
- Sporting Goods > Exercise & Fitness > Medicine Balls
4644
- Sporting Goods > Exercise & Fitness > Power Towers
4645
- Sporting Goods > Exercise & Fitness > Push Up & Pull Up Bars
4646
- Sporting Goods > Exercise & Fitness > Reaction Balls
4647
- Sporting Goods > Exercise & Fitness > Speed & Resistance Parachutes
4648
- Sporting Goods > Exercise & Fitness > Sport Safety Lights & Reflectors
4649
- Sporting Goods > Exercise & Fitness > Stopwatches
4650
- Sporting Goods > Exercise & Fitness > Suspension Trainers
4651
- Sporting Goods > Exercise & Fitness > Vibration Exercise Machines
4652
- Sporting Goods > Exercise & Fitness > Weight Lifting
4653
- Sporting Goods > Exercise & Fitness > Weight Lifting > Free Weight Accessories
4654
- Sporting Goods > Exercise & Fitness > Weight Lifting > Free Weight Accessories > Free Weight Storage Racks
4655
- Sporting Goods > Exercise & Fitness > Weight Lifting > Free Weight Accessories > Weight Bar Collars
4656
- Sporting Goods > Exercise & Fitness > Weight Lifting > Free Weight Accessories > Weight Bars
4657
- Sporting Goods > Exercise & Fitness > Weight Lifting > Free Weights
4658
- Sporting Goods > Exercise & Fitness > Weight Lifting > Weight Lifting Belts
4659
- Sporting Goods > Exercise & Fitness > Weight Lifting > Weight Lifting Gloves & Hand Supports
4660
- Sporting Goods > Exercise & Fitness > Weight Lifting > Weight Lifting Machine & Exercise Bench Accessories
4661
- Sporting Goods > Exercise & Fitness > Weight Lifting > Weight Lifting Machines & Racks
4662
- Sporting Goods > Exercise & Fitness > Weighted Clothing
4663
- Sporting Goods > Exercise & Fitness > Yoga & Pilates
4664
- Sporting Goods > Exercise & Fitness > Yoga & Pilates > Pilates Machines
4665
- Sporting Goods > Exercise & Fitness > Yoga & Pilates > Yoga & Pilates Blocks
4666
- Sporting Goods > Exercise & Fitness > Yoga & Pilates > Yoga & Pilates Mats
4667
- Sporting Goods > Exercise & Fitness > Yoga & Pilates > Yoga & Pilates Towels
4668
- Sporting Goods > Exercise & Fitness > Yoga & Pilates > Yoga Mat Bags & Straps
4669
- Sporting Goods > Indoor Games
4670
- Sporting Goods > Indoor Games > Air Hockey
4671
- Sporting Goods > Indoor Games > Air Hockey > Air Hockey Equipment
4672
- Sporting Goods > Indoor Games > Air Hockey > Air Hockey Table Parts
4673
- Sporting Goods > Indoor Games > Air Hockey > Air Hockey Tables
4674
- Sporting Goods > Indoor Games > Billiards
4675
- Sporting Goods > Indoor Games > Billiards > Billiard Ball Racks
4676
- Sporting Goods > Indoor Games > Billiards > Billiard Balls
4677
- Sporting Goods > Indoor Games > Billiards > Billiard Cue Accessories
4678
- Sporting Goods > Indoor Games > Billiards > Billiard Cue Accessories > Billiard Cue Cases
4679
- Sporting Goods > Indoor Games > Billiards > Billiard Cue Accessories > Billiard Cue Chalk
4680
- Sporting Goods > Indoor Games > Billiards > Billiard Cue Accessories > Billiard Cue Racks
4681
- Sporting Goods > Indoor Games > Billiards > Billiard Cues & Bridges
4682
- Sporting Goods > Indoor Games > Billiards > Billiard Gloves
4683
- Sporting Goods > Indoor Games > Billiards > Billiard Table Lights
4684
- Sporting Goods > Indoor Games > Billiards > Billiard Table Parts & Accessories
4685
- Sporting Goods > Indoor Games > Billiards > Billiard Table Parts & Accessories > Billiard Pockets
4686
- Sporting Goods > Indoor Games > Billiards > Billiard Table Parts & Accessories > Billiard Table Brushes
4687
- Sporting Goods > Indoor Games > Billiards > Billiard Table Parts & Accessories > Billiard Table Cloth
4688
- Sporting Goods > Indoor Games > Billiards > Billiard Table Parts & Accessories > Billiard Table Covers
4689
- Sporting Goods > Indoor Games > Billiards > Billiard Tables
4690
- Sporting Goods > Indoor Games > Bowling
4691
- Sporting Goods > Indoor Games > Bowling > Bowling Ball Bags
4692
- Sporting Goods > Indoor Games > Bowling > Bowling Balls
4693
- Sporting Goods > Indoor Games > Bowling > Bowling Gloves
4694
- Sporting Goods > Indoor Games > Bowling > Bowling Pins
4695
- Sporting Goods > Indoor Games > Bowling > Bowling Wrist Supports
4696
- Sporting Goods > Indoor Games > Foosball
4697
- Sporting Goods > Indoor Games > Foosball > Foosball Balls
4698
- Sporting Goods > Indoor Games > Foosball > Foosball Table Parts & Accessories
4699
- Sporting Goods > Indoor Games > Foosball > Foosball Tables
4700
- Sporting Goods > Indoor Games > Multi-Game Tables
4701
- Sporting Goods > Indoor Games > Ping Pong
4702
- Sporting Goods > Indoor Games > Ping Pong > Ping Pong Balls
4703
- Sporting Goods > Indoor Games > Ping Pong > Ping Pong Nets & Posts
4704
- Sporting Goods > Indoor Games > Ping Pong > Ping Pong Paddle Accessories
4705
- Sporting Goods > Indoor Games > Ping Pong > Ping Pong Paddles & Sets
4706
- Sporting Goods > Indoor Games > Ping Pong > Ping Pong Robot Accessories
4707
- Sporting Goods > Indoor Games > Ping Pong > Ping Pong Robots
4708
- Sporting Goods > Indoor Games > Ping Pong > Ping Pong Tables
4709
- Sporting Goods > Indoor Games > Table Shuffleboard
4710
- Sporting Goods > Indoor Games > Table Shuffleboard > Shuffleboard Tables
4711
- Sporting Goods > Indoor Games > Table Shuffleboard > Table Shuffleboard Powder
4712
- Sporting Goods > Indoor Games > Table Shuffleboard > Table Shuffleboard Pucks
4713
- Sporting Goods > Indoor Games > Throwing Darts
4714
- Sporting Goods > Indoor Games > Throwing Darts > Dart Backboards
4715
- Sporting Goods > Indoor Games > Throwing Darts > Dart Parts
4716
- Sporting Goods > Indoor Games > Throwing Darts > Dart Parts > Dart Flights
4717
- Sporting Goods > Indoor Games > Throwing Darts > Dart Parts > Dart Shafts
4718
- Sporting Goods > Indoor Games > Throwing Darts > Dart Parts > Dart Tips
4719
- Sporting Goods > Indoor Games > Throwing Darts > Dartboards
4720
- Sporting Goods > Indoor Games > Throwing Darts > Darts
4721
- Sporting Goods > Outdoor Recreation
4722
- Sporting Goods > Outdoor Recreation > Boating & Water Sports
4723
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Rafting
4724
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Rafting > Boating Gloves
4725
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Rafting > Canoe Accessories
4726
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Rafting > Canoes
4727
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Rafting > Kayak Accessories
4728
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Rafting > Kayaks
4729
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Rafting > Paddle Leashes
4730
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Rafting > Paddles & Oars
4731
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Rafting > Pedal Boats
4732
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Rafting > Row Boats
4733
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Rafting > Whitewater Rafts
4734
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Water Sport Apparel
4735
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Water Sport Apparel > Drysuits
4736
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Water Sport Apparel > Life Jacket Accessories
4737
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Water Sport Apparel > Life Jackets
4738
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Water Sport Apparel > Rash Guards & Swim Shirts
4739
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Water Sport Apparel > Water Sport Helmets
4740
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Water Sport Apparel > Wetsuit Pieces
4741
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Water Sport Apparel > Wetsuit Pieces > Wetsuit Bottoms
4742
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Water Sport Apparel > Wetsuit Pieces > Wetsuit Hoods, Gloves & Boots
4743
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Water Sport Apparel > Wetsuit Pieces > Wetsuit Tops
4744
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Boating & Water Sport Apparel > Wetsuits
4745
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Diving & Snorkeling
4746
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Diving & Snorkeling > Buoyancy Compensators
4747
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Diving & Snorkeling > Dive Computers
4748
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Diving & Snorkeling > Diving & Snorkeling Equipment Sets
4749
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Diving & Snorkeling > Diving & Snorkeling Fins
4750
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Diving & Snorkeling > Diving & Snorkeling Masks
4751
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Diving & Snorkeling > Diving Belts
4752
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Diving & Snorkeling > Diving Knives & Shears
4753
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Diving & Snorkeling > Diving Regulators
4754
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Diving & Snorkeling > Snorkels
4755
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Kitesurfing
4756
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Kitesurfing > Kiteboard Cases
4757
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Kitesurfing > Kiteboard Parts
4758
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Kitesurfing > Kiteboards
4759
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Kitesurfing > Kitesurfing & Windsurfing Harnesses
4760
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Kitesurfing > Kitesurfing Kites
4761
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Surfing
4762
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Surfing > Bodyboards
4763
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Surfing > Paddleboards
4764
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Surfing > Skimboards
4765
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Surfing > Surf Leashes
4766
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Surfing > Surfboard Cases & Bags
4767
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Surfing > Surfboard Fins
4768
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Surfing > Surfboard Wax
4769
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Surfing > Surfboards
4770
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Surfing > Surfing Gloves
4771
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Surfing > Surfing Tail Pads
4772
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming
4773
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Child Swimming Aids
4774
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Hand Paddles
4775
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Kickboards
4776
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Pull Buoys
4777
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Swim Belts
4778
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Swim Caps
4779
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Swim Gloves
4780
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Swim Goggle & Mask Accessories
4781
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Swim Goggles & Masks
4782
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Swim Weights
4783
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Swimming Fins
4784
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Swimming Fins > Monofins
4785
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Swimming Fins > Training Fins
4786
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Swimming Machines
4787
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Swimming > Swimming Nose Clips
4788
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports
4789
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Kneeboarding
4790
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Kneeboarding > Kneeboards
4791
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Towable Rafts & Tubes
4792
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Towed Water Sport Gloves
4793
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Wakeboarding
4794
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Wakeboarding > Kiteboard & Wakeboard Bindings
4795
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Wakeboarding > Wakeboard Parts
4796
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Wakeboarding > Wakeboards
4797
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Water Skiing
4798
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Water Skiing > Sit-Down Hydrofoils
4799
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Water Skiing > Water Ski Bindings
4800
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Water Skiing > Water Ski Cases & Bags
4801
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Water Skiing > Water Skis
4802
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Towed Water Sports > Water Sport Tow Cables
4803
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Watercraft Storage Racks
4804
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Watercraft Storage Racks > Boat Storage Racks
4805
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Watercraft Storage Racks > Water Sport Board Storage Racks
4806
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Windsurfing
4807
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Windsurfing > Windsurfing Board Parts
4808
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Windsurfing > Windsurfing Board Parts > Windsurfing Board Fins
4809
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Windsurfing > Windsurfing Board Parts > Windsurfing Board Masts
4810
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Windsurfing > Windsurfing Boards
4811
- Sporting Goods > Outdoor Recreation > Boating & Water Sports > Windsurfing > Windsurfing Sails
4812
- Sporting Goods > Outdoor Recreation > Camping & Hiking
4813
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Camp Furniture
4814
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Camp Furniture > Air Mattress & Sleeping Pad Accessories
4815
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Camp Furniture > Air Mattresses
4816
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Camp Furniture > Cots
4817
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Camping Cookware & Dinnerware
4818
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Camping Lights & Lanterns
4819
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Camping Tools
4820
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Camping Tools > Hunting & Survival Knives
4821
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Camping Tools > Multifunction Tools & Knives
4822
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Chemical Hand Warmers
4823
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Compression Sacks
4824
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Hiking Pole Accessories
4825
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Hiking Poles
4826
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Mosquito Nets & Insect Screens
4827
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Navigational Compasses
4828
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Portable Toilets & Showers
4829
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Portable Toilets & Showers > Portable Showers & Privacy Enclosures
4830
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Portable Toilets & Showers > Portable Toilets & Urination Devices
4831
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Portable Water Filters & Purifiers
4832
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Sleeping Bag Liners
4833
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Sleeping Bags
4834
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Sleeping Pads
4835
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Tent Accessories
4836
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Tent Accessories > Inner Tents
4837
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Tent Accessories > Tent Footprints
4838
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Tent Accessories > Tent Poles & Stakes
4839
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Tent Accessories > Tent Vestibules
4840
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Tents
4841
- Sporting Goods > Outdoor Recreation > Camping & Hiking > Windbreaks
4842
- Sporting Goods > Outdoor Recreation > Climbing
4843
- Sporting Goods > Outdoor Recreation > Climbing > Belay Devices
4844
- Sporting Goods > Outdoor Recreation > Climbing > Carabiners
4845
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Apparel & Accessories
4846
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Apparel & Accessories > Climbing Gloves
4847
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Apparel & Accessories > Climbing Helmets
4848
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Apparel & Accessories > Crampons
4849
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Ascenders & Descenders
4850
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Chalk Bags
4851
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Crash Pads
4852
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Harnesses
4853
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Protection Devices
4854
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Rope
4855
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Rope Bags
4856
- Sporting Goods > Outdoor Recreation > Climbing > Climbing Webbing
4857
- Sporting Goods > Outdoor Recreation > Climbing > Ice Climbing Tools
4858
- Sporting Goods > Outdoor Recreation > Climbing > Ice Screws
4859
- Sporting Goods > Outdoor Recreation > Climbing > Indoor Climbing Holds
4860
- Sporting Goods > Outdoor Recreation > Climbing > Quickdraws
4861
- Sporting Goods > Outdoor Recreation > Cycling
4862
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories
4863
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Bags & Panniers
4864
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Baskets
4865
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Bells & Horns
4866
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Cages
4867
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Child Seat Accessories
4868
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Child Seats
4869
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Computer Accessories
4870
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Computers
4871
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Covers
4872
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Fenders
4873
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Front & Rear Racks
4874
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Handlebar Grips & Decor
4875
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Locks
4876
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Mirrors
4877
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Pumps
4878
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Saddle Pads & Seat Covers
4879
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Shock Pumps
4880
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Spoke Beads
4881
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Stands & Storage
4882
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Tire Repair Supplies & Kits
4883
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Toe Straps & Clips
4884
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Tools
4885
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Trailers
4886
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Trainers
4887
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Training Wheels
4888
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Transport Bags & Cases
4889
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Bicycle Water Sport Board Racks
4890
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Accessories > Electric Bicycle Conversion Kits
4891
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts
4892
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Brake Parts
4893
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Brake Parts > Bicycle Brake Calipers
4894
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Brake Parts > Bicycle Brake Levers
4895
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Brake Parts > Bicycle Brake Rotors
4896
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Brake Parts > Bicycle Brake Sets
4897
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Cable Housings
4898
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Cables
4899
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Drivetrain Parts
4900
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Drivetrain Parts > Bicycle Bottom Brackets
4901
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Drivetrain Parts > Bicycle Cassettes & Freewheels
4902
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Drivetrain Parts > Bicycle Chainrings
4903
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Drivetrain Parts > Bicycle Chains
4904
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Drivetrain Parts > Bicycle Cranks
4905
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Drivetrain Parts > Bicycle Derailleurs
4906
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Drivetrain Parts > Bicycle Pedals
4907
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Drivetrain Parts > Bicycle Shifters
4908
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Forks
4909
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Frames
4910
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Groupsets
4911
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Handlebar Extensions
4912
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Handlebars
4913
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Headset Parts
4914
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Headset Parts > Bicycle Headset Bearings
4915
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Headset Parts > Bicycle Headset Spacers
4916
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Headsets
4917
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Kickstands
4918
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Saddles
4919
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Seatpost Clamps
4920
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Seatposts
4921
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Small Parts
4922
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Stems
4923
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Tire Valve Adapters
4924
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Tire Valve Caps
4925
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Tire Valves
4926
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Tires
4927
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Tubes
4928
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Wheel Parts
4929
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Wheel Parts > Bicycle Foot Pegs
4930
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Wheel Parts > Bicycle Hub Parts
4931
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Wheel Parts > Bicycle Hubs
4932
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Wheel Parts > Bicycle Rim Strips
4933
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Wheel Parts > Bicycle Spokes
4934
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Wheel Parts > Bicycle Wheel Axles & Skewers
4935
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Wheel Parts > Bicycle Wheel Nipples
4936
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Wheel Parts > Bicycle Wheel Rims
4937
- Sporting Goods > Outdoor Recreation > Cycling > Bicycle Parts > Bicycle Wheels
4938
- Sporting Goods > Outdoor Recreation > Cycling > Bicycles
4939
- Sporting Goods > Outdoor Recreation > Cycling > Cycling Apparel & Accessories
4940
- Sporting Goods > Outdoor Recreation > Cycling > Cycling Apparel & Accessories > Bicycle Cleat Accessories
4941
- Sporting Goods > Outdoor Recreation > Cycling > Cycling Apparel & Accessories > Bicycle Cleat Accessories > Bicycle Cleat Bolts
4942
- Sporting Goods > Outdoor Recreation > Cycling > Cycling Apparel & Accessories > Bicycle Cleat Accessories > Bicycle Cleat Covers
4943
- Sporting Goods > Outdoor Recreation > Cycling > Cycling Apparel & Accessories > Bicycle Cleat Accessories > Bicycle Cleat Shims & Wedges
4944
- Sporting Goods > Outdoor Recreation > Cycling > Cycling Apparel & Accessories > Bicycle Cleats
4945
- Sporting Goods > Outdoor Recreation > Cycling > Cycling Apparel & Accessories > Bicycle Gloves
4946
- Sporting Goods > Outdoor Recreation > Cycling > Cycling Apparel & Accessories > Bicycle Helmet Parts & Accessories
4947
- Sporting Goods > Outdoor Recreation > Cycling > Cycling Apparel & Accessories > Bicycle Helmets
4948
- Sporting Goods > Outdoor Recreation > Cycling > Cycling Apparel & Accessories > Bicycle Protective Pads
4949
- Sporting Goods > Outdoor Recreation > Cycling > Cycling Apparel & Accessories > Bicycle Shoe Covers
4950
- Sporting Goods > Outdoor Recreation > Cycling > Tricycle Accessories
4951
- Sporting Goods > Outdoor Recreation > Cycling > Tricycles
4952
- Sporting Goods > Outdoor Recreation > Cycling > Unicycle Accessories
4953
- Sporting Goods > Outdoor Recreation > Cycling > Unicycles
4954
- Sporting Goods > Outdoor Recreation > Equestrian
4955
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Care
4956
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Care > Horse Blankets & Sheets
4957
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Care > Horse Boots & Leg Wraps
4958
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Care > Horse Feed
4959
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Care > Horse Fly Masks
4960
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Care > Horse Grooming
4961
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Care > Horse Grooming > Horse Clippers & Trimmers
4962
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Care > Horse Grooming > Horse Grooming Combs, Brushes & Mitts
4963
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Care > Horse Treats
4964
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Care > Horse Vitamins & Supplements
4965
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Care > Horse Wormers
4966
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack
4967
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack > Bridle Bits
4968
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack > Bridles
4969
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack > Cinches
4970
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack > Horse Halters
4971
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack > Horse Harnesses
4972
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack > Horse Leads
4973
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack > Reins
4974
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack > Saddles
4975
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack > Stirrups
4976
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack Accessories
4977
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack Accessories > Horse Tack Boxes
4978
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack Accessories > Saddle Accessories
4979
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack Accessories > Saddle Accessories > Saddle Bags & Panniers
4980
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack Accessories > Saddle Accessories > Saddle Covers & Cases
4981
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack Accessories > Saddle Accessories > Saddle Pads & Blankets
4982
- Sporting Goods > Outdoor Recreation > Equestrian > Horse Tack Accessories > Saddle Accessories > Saddle Racks
4983
- Sporting Goods > Outdoor Recreation > Equestrian > Riding Apparel & Accessories
4984
- Sporting Goods > Outdoor Recreation > Equestrian > Riding Apparel & Accessories > Equestrian Gloves
4985
- Sporting Goods > Outdoor Recreation > Equestrian > Riding Apparel & Accessories > Equestrian Helmets
4986
- Sporting Goods > Outdoor Recreation > Equestrian > Riding Apparel & Accessories > Riding Crops & Whips
4987
- Sporting Goods > Outdoor Recreation > Equestrian > Riding Apparel & Accessories > Riding Pants
4988
- Sporting Goods > Outdoor Recreation > Fishing
4989
- Sporting Goods > Outdoor Recreation > Fishing > Bite Alarms
4990
- Sporting Goods > Outdoor Recreation > Fishing > Fishing & Hunting Waders
4991
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Bait & Chum Containers
4992
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Gaffs
4993
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Hook Removal Tools
4994
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Lines & Leaders
4995
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Nets
4996
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Reel Accessories
4997
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Reel Accessories > Fishing Reel Bags & Cases
4998
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Reel Accessories > Fishing Reel Lubricants
4999
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Reel Accessories > Fishing Reel Replacement Spools
5000
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Reels
5001
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Rod Accessories
5002
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Rod Accessories > Fishing Rod Bags & Cases
5003
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Rod Accessories > Fishing Rod Holders & Storage Racks
5004
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Rods
5005
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Spears
5006
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Tackle
5007
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Tackle > Fishing Baits & Lures
5008
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Tackle > Fishing Floats
5009
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Tackle > Fishing Hooks
5010
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Tackle > Fishing Sinkers
5011
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Tackle > Fishing Snaps & Swivels
5012
- Sporting Goods > Outdoor Recreation > Fishing > Fishing Traps
5013
- Sporting Goods > Outdoor Recreation > Fishing > Fly Tying Materials
5014
- Sporting Goods > Outdoor Recreation > Fishing > Fly Tying Materials > Fishing Beads
5015
- Sporting Goods > Outdoor Recreation > Fishing > Fly Tying Materials > Fishing Yarn
5016
- Sporting Goods > Outdoor Recreation > Fishing > Live Bait
5017
- Sporting Goods > Outdoor Recreation > Fishing > Tackle Bags & Boxes
5018
- Sporting Goods > Outdoor Recreation > Golf
5019
- Sporting Goods > Outdoor Recreation > Golf > Divot Tools
5020
- Sporting Goods > Outdoor Recreation > Golf > Golf Accessory Sets
5021
- Sporting Goods > Outdoor Recreation > Golf > Golf Bag Accessories
5022
- Sporting Goods > Outdoor Recreation > Golf > Golf Bag Accessories > Golf Bag Carts
5023
- Sporting Goods > Outdoor Recreation > Golf > Golf Bag Accessories > Golf Bag Covers & Cases
5024
- Sporting Goods > Outdoor Recreation > Golf > Golf Bags
5025
- Sporting Goods > Outdoor Recreation > Golf > Golf Ball Markers
5026
- Sporting Goods > Outdoor Recreation > Golf > Golf Balls
5027
- Sporting Goods > Outdoor Recreation > Golf > Golf Club Parts & Accessories
5028
- Sporting Goods > Outdoor Recreation > Golf > Golf Club Parts & Accessories > Golf Club Grips
5029
- Sporting Goods > Outdoor Recreation > Golf > Golf Club Parts & Accessories > Golf Club Headcovers
5030
- Sporting Goods > Outdoor Recreation > Golf > Golf Club Parts & Accessories > Golf Club Shafts
5031
- Sporting Goods > Outdoor Recreation > Golf > Golf Clubs
5032
- Sporting Goods > Outdoor Recreation > Golf > Golf Flags
5033
- Sporting Goods > Outdoor Recreation > Golf > Golf Gloves
5034
- Sporting Goods > Outdoor Recreation > Golf > Golf Tees
5035
- Sporting Goods > Outdoor Recreation > Golf > Golf Towels
5036
- Sporting Goods > Outdoor Recreation > Golf > Golf Training Aids
5037
- Sporting Goods > Outdoor Recreation > Hang Gliding & Skydiving
5038
- Sporting Goods > Outdoor Recreation > Hang Gliding & Skydiving > Air Suits
5039
- Sporting Goods > Outdoor Recreation > Hang Gliding & Skydiving > Hang Gliders
5040
- Sporting Goods > Outdoor Recreation > Hang Gliding & Skydiving > Parachutes
5041
- Sporting Goods > Outdoor Recreation > Hunting & Shooting
5042
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery
5043
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Archery Armguards
5044
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Archery Gloves & Releases
5045
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Archery Targets
5046
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Arrow Parts & Accessories
5047
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Arrow Parts & Accessories > Arrow Fletchings
5048
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Arrow Parts & Accessories > Arrow Nocks
5049
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Arrow Parts & Accessories > Broadheads & Field Points
5050
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Arrows & Bolts
5051
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Bow & Crossbow Accessories
5052
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Bows & Crossbows
5053
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Bows & Crossbows > Compound Bows
5054
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Bows & Crossbows > Crossbows
5055
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Bows & Crossbows > Recurve & Longbows
5056
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Archery > Quivers
5057
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Clay Pigeon Shooting
5058
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Clay Pigeon Shooting > Clay Pigeon Throwers
5059
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Clay Pigeon Shooting > Clay Pigeons
5060
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting
5061
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting & Shooting Protective Gear
5062
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting & Shooting Protective Gear > Hunting & Shooting Gloves
5063
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting & Shooting Protective Gear > Hunting & Shooting Jackets
5064
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting > Animal Traps
5065
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting > Hearing Enhancers
5066
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting > Hunting Blinds & Screens
5067
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting > Hunting Dog Equipment
5068
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting > Tree Stands
5069
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting > Wild Game Feeders
5070
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting > Wildlife Attractants
5071
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting > Wildlife Attractants > Cover Scents & Scent Attractants
5072
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting > Wildlife Attractants > Hunting & Wildlife Calls
5073
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting > Wildlife Attractants > Hunting & Wildlife Decoys
5074
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Hunting > Wildlife Attractants > Wildlife Bait, Feed & Minerals
5075
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft
5076
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Airsoft
5077
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Airsoft > Airsoft Gun Parts & Accessories
5078
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Airsoft > Airsoft Gun Parts & Accessories > Airsoft Gun Batteries
5079
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Airsoft > Airsoft Guns
5080
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Airsoft > Airsoft Pellets
5081
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball
5082
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball & Airsoft Protective Gear
5083
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball & Airsoft Protective Gear > Paintball & Airsoft Gloves
5084
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball & Airsoft Protective Gear > Paintball & Airsoft Goggles & Masks
5085
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball & Airsoft Protective Gear > Paintball & Airsoft Pads
5086
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball & Airsoft Protective Gear > Paintball & Airsoft Vests
5087
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball > Paintball Grenade Launchers
5088
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball > Paintball Grenades
5089
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball > Paintball Gun Parts & Accessories
5090
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball > Paintball Gun Parts & Accessories > Paintball Air Tanks
5091
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball > Paintball Gun Parts & Accessories > Paintball Gun Barrels
5092
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball > Paintball Gun Parts & Accessories > Paintball Gun Drop Forwards
5093
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball > Paintball Gun Parts & Accessories > Paintball Hoppers
5094
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball > Paintball Guns
5095
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball > Paintball Harnesses & Packs
5096
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Paintball & Airsoft > Paintball > Paintballs
5097
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Shooting & Range Accessories
5098
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Shooting & Range Accessories > Shooting Rests
5099
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Shooting & Range Accessories > Shooting Sticks & Bipods
5100
- Sporting Goods > Outdoor Recreation > Hunting & Shooting > Shooting & Range Accessories > Shooting Targets
5101
- Sporting Goods > Outdoor Recreation > Hydration System Accessories
5102
- Sporting Goods > Outdoor Recreation > Hydration Systems
5103
- Sporting Goods > Outdoor Recreation > Inline & Roller Skating
5104
- Sporting Goods > Outdoor Recreation > Inline & Roller Skating > Inline & Roller Skating Protective Gear
5105
- Sporting Goods > Outdoor Recreation > Inline & Roller Skating > Inline & Roller Skating Protective Gear > Roller Skating Pads
5106
- Sporting Goods > Outdoor Recreation > Inline & Roller Skating > Inline Skate Parts
5107
- Sporting Goods > Outdoor Recreation > Inline & Roller Skating > Inline Skates
5108
- Sporting Goods > Outdoor Recreation > Inline & Roller Skating > Roller Skate Parts
5109
- Sporting Goods > Outdoor Recreation > Inline & Roller Skating > Roller Skates
5110
- Sporting Goods > Outdoor Recreation > Inline & Roller Skating > Roller Skis
5111
- Sporting Goods > Outdoor Recreation > Kite Buggying
5112
- Sporting Goods > Outdoor Recreation > Kite Buggying > Kite Buggies
5113
- Sporting Goods > Outdoor Recreation > Kite Buggying > Kite Buggy Accessories
5114
- Sporting Goods > Outdoor Recreation > Outdoor Games
5115
- Sporting Goods > Outdoor Recreation > Outdoor Games > Badminton
5116
- Sporting Goods > Outdoor Recreation > Outdoor Games > Badminton > Badminton Nets
5117
- Sporting Goods > Outdoor Recreation > Outdoor Games > Badminton > Badminton Racquets & Sets
5118
- Sporting Goods > Outdoor Recreation > Outdoor Games > Badminton > Shuttlecocks
5119
- Sporting Goods > Outdoor Recreation > Outdoor Games > Deck Shuffleboard
5120
- Sporting Goods > Outdoor Recreation > Outdoor Games > Deck Shuffleboard > Deck Shuffleboard Cues
5121
- Sporting Goods > Outdoor Recreation > Outdoor Games > Deck Shuffleboard > Deck Shuffleboard Pucks
5122
- Sporting Goods > Outdoor Recreation > Outdoor Games > Disc Golf
5123
- Sporting Goods > Outdoor Recreation > Outdoor Games > Disc Golf > Disc Golf Bags
5124
- Sporting Goods > Outdoor Recreation > Outdoor Games > Disc Golf > Disc Golf Baskets
5125
- Sporting Goods > Outdoor Recreation > Outdoor Games > Lawn Games
5126
- Sporting Goods > Outdoor Recreation > Outdoor Games > Paddle Ball Sets
5127
- Sporting Goods > Outdoor Recreation > Outdoor Games > Pickleball
5128
- Sporting Goods > Outdoor Recreation > Outdoor Games > Pickleball > Pickleball Paddles
5129
- Sporting Goods > Outdoor Recreation > Outdoor Games > Pickleball > Pickleballs
5130
- Sporting Goods > Outdoor Recreation > Outdoor Games > Platform & Paddle Tennis
5131
- Sporting Goods > Outdoor Recreation > Outdoor Games > Platform & Paddle Tennis > Platform & Paddle Tennis Paddles
5132
- Sporting Goods > Outdoor Recreation > Outdoor Games > Platform & Paddle Tennis > Platform Tennis Balls
5133
- Sporting Goods > Outdoor Recreation > Outdoor Games > Tetherball
5134
- Sporting Goods > Outdoor Recreation > Outdoor Games > Tetherball > Tetherball Poles
5135
- Sporting Goods > Outdoor Recreation > Outdoor Games > Tetherball > Tetherball Sets
5136
- Sporting Goods > Outdoor Recreation > Outdoor Games > Tetherball > Tetherballs
5137
- Sporting Goods > Outdoor Recreation > Riding Scooters
5138
- Sporting Goods > Outdoor Recreation > Skateboarding
5139
- Sporting Goods > Outdoor Recreation > Skateboarding > Skate Rails
5140
- Sporting Goods > Outdoor Recreation > Skateboarding > Skate Ramps
5141
- Sporting Goods > Outdoor Recreation > Skateboarding > Skateboard Parts
5142
- Sporting Goods > Outdoor Recreation > Skateboarding > Skateboard Parts > Skateboard Decks
5143
- Sporting Goods > Outdoor Recreation > Skateboarding > Skateboard Parts > Skateboard Small Parts
5144
- Sporting Goods > Outdoor Recreation > Skateboarding > Skateboard Parts > Skateboard Trucks
5145
- Sporting Goods > Outdoor Recreation > Skateboarding > Skateboard Parts > Skateboard Wheels
5146
- Sporting Goods > Outdoor Recreation > Skateboarding > Skateboarding Protective Gear
5147
- Sporting Goods > Outdoor Recreation > Skateboarding > Skateboarding Protective Gear > Skate Helmets
5148
- Sporting Goods > Outdoor Recreation > Skateboarding > Skateboarding Protective Gear > Skateboarding Gloves
5149
- Sporting Goods > Outdoor Recreation > Skateboarding > Skateboarding Protective Gear > Skateboarding Pads
5150
- Sporting Goods > Outdoor Recreation > Skateboarding > Skateboards
5151
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities
5152
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Avalanche Safety
5153
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Avalanche Safety > Avalanche Probes
5154
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Avalanche Safety > Avalanche Safety Airbags
5155
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding
5156
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski & Snowboard Bags
5157
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski & Snowboard Goggle Accessories
5158
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski & Snowboard Goggle Accessories > Ski & Snowboard Goggle Lenses
5159
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski & Snowboard Goggles
5160
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski & Snowboard Helmets
5161
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski & Snowboard Leashes
5162
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski & Snowboard Storage Racks
5163
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski & Snowboard Tuning Tools
5164
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski & Snowboard Wax
5165
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski Binding Parts
5166
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski Bindings
5167
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski Boots
5168
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Ski Poles
5169
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Skis
5170
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Skis > Cross-Country Skis
5171
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Skis > Downhill Skis
5172
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Snowboard Binding Parts
5173
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Snowboard Bindings
5174
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Snowboard Boots
5175
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Skiing & Snowboarding > Snowboards
5176
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Sleds
5177
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Snowshoeing
5178
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Snowshoeing > Snowshoe Bindings
5179
- Sporting Goods > Outdoor Recreation > Winter Sports & Activities > Snowshoeing > Snowshoes
5180
- Toys & Games
5181
- Toys & Games > Game Timers
5182
- Toys & Games > Games
5183
- Toys & Games > Games > Battle Top Accessories
5184
- Toys & Games > Games > Battle Tops
5185
- Toys & Games > Games > Bingo Sets
5186
- Toys & Games > Games > Blackjack & Craps Sets
5187
- Toys & Games > Games > Board Games
5188
- Toys & Games > Games > Card Game Accessories
5189
- Toys & Games > Games > Card Games
5190
- Toys & Games > Games > Dexterity Games
5191
- Toys & Games > Games > Dice Sets & Games
5192
- Toys & Games > Games > Poker Chip Accessories
5193
- Toys & Games > Games > Poker Chip Accessories > Poker Chip Carriers & Trays
5194
- Toys & Games > Games > Poker Chips & Sets
5195
- Toys & Games > Games > Portable Electronic Games
5196
- Toys & Games > Games > Roulette Wheels & Sets
5197
- Toys & Games > Games > Slot Machines
5198
- Toys & Games > Games > Tile Games
5199
- Toys & Games > Outdoor Play Equipment
5200
- Toys & Games > Outdoor Play Equipment > Inflatable Bouncer Accessories
5201
- Toys & Games > Outdoor Play Equipment > Inflatable Bouncers
5202
- Toys & Games > Outdoor Play Equipment > Play Swings
5203
- Toys & Games > Outdoor Play Equipment > Play Tents & Tunnels
5204
- Toys & Games > Outdoor Play Equipment > Playhouses
5205
- Toys & Games > Outdoor Play Equipment > Pogo Sticks
5206
- Toys & Games > Outdoor Play Equipment > Sandboxes
5207
- Toys & Games > Outdoor Play Equipment > See Saws
5208
- Toys & Games > Outdoor Play Equipment > Slides
5209
- Toys & Games > Outdoor Play Equipment > Stilts
5210
- Toys & Games > Outdoor Play Equipment > Swing Set & Playset Accessories
5211
- Toys & Games > Outdoor Play Equipment > Swing Sets & Playsets
5212
- Toys & Games > Outdoor Play Equipment > Trampoline Accessories
5213
- Toys & Games > Outdoor Play Equipment > Trampolines
5214
- Toys & Games > Outdoor Play Equipment > Water Play Equipment
5215
- Toys & Games > Outdoor Play Equipment > Water Play Equipment > Play Sprinkers
5216
- Toys & Games > Outdoor Play Equipment > Water Play Equipment > Water Parks & Slides
5217
- Toys & Games > Outdoor Play Equipment > Water Play Equipment > Water Tables
5218
- Toys & Games > Puzzles
5219
- Toys & Games > Puzzles > Jigsaw Puzzle Accessories
5220
- Toys & Games > Puzzles > Jigsaw Puzzles
5221
- Toys & Games > Puzzles > Mechanical Puzzles
5222
- Toys & Games > Puzzles > Wooden & Pegged Puzzles
5223
- Toys & Games > Toys
5224
- Toys & Games > Toys > Activity Toys
5225
- Toys & Games > Toys > Activity Toys > Ball & Cup Games
5226
- Toys & Games > Toys > Activity Toys > Bouncy Balls
5227
- Toys & Games > Toys > Activity Toys > Bubble Blowing Solution
5228
- Toys & Games > Toys > Activity Toys > Bubble Blowing Toys
5229
- Toys & Games > Toys > Activity Toys > Coiled Spring Toys
5230
- Toys & Games > Toys > Activity Toys > Marbles
5231
- Toys & Games > Toys > Activity Toys > Paddle Ball Toys
5232
- Toys & Games > Toys > Activity Toys > Ribbon & Streamer Toys
5233
- Toys & Games > Toys > Activity Toys > Spinning Tops
5234
- Toys & Games > Toys > Activity Toys > Toy Jacks
5235
- Toys & Games > Toys > Activity Toys > Yo-Yo Parts & Accessories
5236
- Toys & Games > Toys > Activity Toys > Yo-Yos
5237
- Toys & Games > Toys > Art & Drawing Toys
5238
- Toys & Games > Toys > Art & Drawing Toys > Play Dough & Putty
5239
- Toys & Games > Toys > Art & Drawing Toys > Toy Drawing Tablets
5240
- Toys & Games > Toys > Ball Pit Accessories
5241
- Toys & Games > Toys > Ball Pit Accessories > Ball Pit Balls
5242
- Toys & Games > Toys > Ball Pits
5243
- Toys & Games > Toys > Bath Toys
5244
- Toys & Games > Toys > Beach & Sand Toys
5245
- Toys & Games > Toys > Building Toys
5246
- Toys & Games > Toys > Building Toys > Construction Set Toys
5247
- Toys & Games > Toys > Building Toys > Foam Blocks
5248
- Toys & Games > Toys > Building Toys > Interlocking Blocks
5249
- Toys & Games > Toys > Building Toys > Marble Track Sets
5250
- Toys & Games > Toys > Building Toys > Wooden Blocks
5251
- Toys & Games > Toys > Dolls, Playsets & Toy Figures
5252
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Action & Toy Figures
5253
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Bobblehead Figures
5254
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Doll & Action Figure Accessories
5255
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Dollhouse Accessories
5256
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Dollhouses
5257
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Dolls
5258
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Paper & Magnetic Dolls
5259
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Puppet & Puppet Theater Accessories
5260
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Puppet Theaters
5261
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Puppets & Marionettes
5262
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Stuffed Animals
5263
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Toy Playsets
5264
- Toys & Games > Toys > Educational Toys
5265
- Toys & Games > Toys > Educational Toys > Ant Farms
5266
- Toys & Games > Toys > Educational Toys > Astronomy Toys & Models
5267
- Toys & Games > Toys > Educational Toys > Bug Collecting Kits
5268
- Toys & Games > Toys > Educational Toys > Educational Flash Cards
5269
- Toys & Games > Toys > Educational Toys > Reading Toys
5270
- Toys & Games > Toys > Educational Toys > Science & Exploration Sets
5271
- Toys & Games > Toys > Educational Toys > Toy Abacuses
5272
- Toys & Games > Toys > Executive Toys
5273
- Toys & Games > Toys > Executive Toys > Magnet Toys
5274
- Toys & Games > Toys > Flying Toy Accessories
5275
- Toys & Games > Toys > Flying Toy Accessories > Kite Accessories
5276
- Toys & Games > Toys > Flying Toy Accessories > Kite Accessories > Kite Line Reels & Winders
5277
- Toys & Games > Toys > Flying Toys
5278
- Toys & Games > Toys > Flying Toys > Air & Water Rockets
5279
- Toys & Games > Toys > Flying Toys > Kites
5280
- Toys & Games > Toys > Flying Toys > Toy Gliders
5281
- Toys & Games > Toys > Flying Toys > Toy Parachutes
5282
- Toys & Games > Toys > Musical Toys
5283
- Toys & Games > Toys > Musical Toys > Toy Instruments
5284
- Toys & Games > Toys > Play Vehicle Accessories
5285
- Toys & Games > Toys > Play Vehicle Accessories > Toy Race Car & Track Accessories
5286
- Toys & Games > Toys > Play Vehicle Accessories > Toy Train Accessories
5287
- Toys & Games > Toys > Play Vehicles
5288
- Toys & Games > Toys > Play Vehicles > Toy Airplanes
5289
- Toys & Games > Toys > Play Vehicles > Toy Boats
5290
- Toys & Games > Toys > Play Vehicles > Toy Cars
5291
- Toys & Games > Toys > Play Vehicles > Toy Helicopters
5292
- Toys & Games > Toys > Play Vehicles > Toy Motorcycles
5293
- Toys & Games > Toys > Play Vehicles > Toy Race Car & Track Sets
5294
- Toys & Games > Toys > Play Vehicles > Toy Spaceships
5295
- Toys & Games > Toys > Play Vehicles > Toy Trains & Train Sets
5296
- Toys & Games > Toys > Play Vehicles > Toy Trucks & Construction Vehicles
5297
- Toys & Games > Toys > Pretend Play
5298
- Toys & Games > Toys > Pretend Play > Play Money & Banking
5299
- Toys & Games > Toys > Pretend Play > Pretend Electronics
5300
- Toys & Games > Toys > Pretend Play > Pretend Housekeeping
5301
- Toys & Games > Toys > Pretend Play > Pretend Lawn & Garden
5302
- Toys & Games > Toys > Pretend Play > Pretend Professions & Role Playing
5303
- Toys & Games > Toys > Pretend Play > Pretend Shopping & Grocery
5304
- Toys & Games > Toys > Pretend Play > Toy Kitchens & Play Food
5305
- Toys & Games > Toys > Pretend Play > Toy Kitchens & Play Food > Play Food
5306
- Toys & Games > Toys > Pretend Play > Toy Kitchens & Play Food > Toy Cookware
5307
- Toys & Games > Toys > Pretend Play > Toy Kitchens & Play Food > Toy Kitchens
5308
- Toys & Games > Toys > Pretend Play > Toy Kitchens & Play Food > Toy Tableware
5309
- Toys & Games > Toys > Pretend Play > Toy Tools
5310
- Toys & Games > Toys > Remote Control Toy Accessories
5311
- Toys & Games > Toys > Remote Control Toys
5312
- Toys & Games > Toys > Remote Control Toys > Remote Control Airships & Blimps
5313
- Toys & Games > Toys > Remote Control Toys > Remote Control Boats & Watercraft
5314
- Toys & Games > Toys > Remote Control Toys > Remote Control Cars & Trucks
5315
- Toys & Games > Toys > Remote Control Toys > Remote Control Helicopters
5316
- Toys & Games > Toys > Remote Control Toys > Remote Control Motorcycles
5317
- Toys & Games > Toys > Remote Control Toys > Remote Control Planes
5318
- Toys & Games > Toys > Remote Control Toys > Remote Control Robots
5319
- Toys & Games > Toys > Remote Control Toys > Remote Control Tanks
5320
- Toys & Games > Toys > Riding Toy Accessories
5321
- Toys & Games > Toys > Riding Toys
5322
- Toys & Games > Toys > Riding Toys > Electric Riding Vehicles
5323
- Toys & Games > Toys > Riding Toys > Hobby Horses
5324
- Toys & Games > Toys > Riding Toys > Push & Pedal Riding Vehicles
5325
- Toys & Games > Toys > Riding Toys > Rocking & Spring Riding Toys
5326
- Toys & Games > Toys > Riding Toys > Wagons
5327
- Toys & Games > Toys > Robotic Toys
5328
- Toys & Games > Toys > Sports Toy Accessories
5329
- Toys & Games > Toys > Sports Toy Accessories > Fitness Toy Accessories
5330
- Toys & Games > Toys > Sports Toy Accessories > Fitness Toy Accessories > Hula Hoop Accessories
5331
- Toys & Games > Toys > Sports Toys
5332
- Toys & Games > Toys > Sports Toys > Baseball Toys
5333
- Toys & Games > Toys > Sports Toys > Basketball Toys
5334
- Toys & Games > Toys > Sports Toys > Boomerangs
5335
- Toys & Games > Toys > Sports Toys > Bowling Toys
5336
- Toys & Games > Toys > Sports Toys > Fingerboards & Fingerboard Sets
5337
- Toys & Games > Toys > Sports Toys > Fishing Toys
5338
- Toys & Games > Toys > Sports Toys > Fitness Toys
5339
- Toys & Games > Toys > Sports Toys > Fitness Toys > Hula Hoops
5340
- Toys & Games > Toys > Sports Toys > Flying Discs
5341
- Toys & Games > Toys > Sports Toys > Footbags
5342
- Toys & Games > Toys > Sports Toys > Golf Toys
5343
- Toys & Games > Toys > Sports Toys > Hockey Toys
5344
- Toys & Games > Toys > Sports Toys > Playground Balls
5345
- Toys & Games > Toys > Sports Toys > Racquet Sport Toys
5346
- Toys & Games > Toys > Sports Toys > Toy Footballs
5347
- Toys & Games > Toys > Toy Gift Baskets
5348
- Toys & Games > Toys > Toy Weapon & Gadget Accessories
5349
- Toys & Games > Toys > Toy Weapons & Gadgets
5350
- Toys & Games > Toys > Visual Toys
5351
- Toys & Games > Toys > Visual Toys > Kaleidoscopes
5352
- Toys & Games > Toys > Visual Toys > Prisms
5353
- Toys & Games > Toys > Wind-Up Toys
5354
- Vehicles & Parts
5355
- Vehicles & Parts > Vehicle Parts & Accessories
5356
- Vehicles & Parts > Vehicle Parts & Accessories > Aircraft Parts & Accessories
5357
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Electronics
5358
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Electronics > Motor Vehicle A/V Players & In-Dash Systems
5359
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Electronics > Motor Vehicle Amplifiers
5360
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Electronics > Motor Vehicle Cassette Adapters
5361
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Electronics > Motor Vehicle Cassette Players
5362
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Electronics > Motor Vehicle Equalizers & Crossovers
5363
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Electronics > Motor Vehicle Parking Cameras
5364
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Electronics > Motor Vehicle Speakerphones
5365
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Electronics > Motor Vehicle Speakers
5366
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Electronics > Motor Vehicle Subwoofers
5367
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Electronics > Motor Vehicle Video Monitor Mounts
5368
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts
5369
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Braking
5370
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Carpet & Upholstery
5371
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Climate Control
5372
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Controls
5373
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Engine Oil Circulation
5374
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Engine Parts
5375
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Engines
5376
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Exhaust
5377
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Frame & Body Parts
5378
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Fuel Systems
5379
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Interior Fittings
5380
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Lighting
5381
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Mirrors
5382
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Power & Electrical Systems
5383
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Seating
5384
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Sensors & Gauges
5385
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Suspension Parts
5386
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Towing
5387
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Transmission & Drivetrain Parts
5388
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Wheel Systems
5389
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Wheel Systems > Motor Vehicle Rims & Wheels
5390
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Wheel Systems > Motor Vehicle Rims & Wheels > Automotive Rims & Wheels
5391
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Wheel Systems > Motor Vehicle Rims & Wheels > Motorcycle Rims & Wheels
5392
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Wheel Systems > Motor Vehicle Rims & Wheels > Off-Road and All-Terrain Vehicle Rims & Wheels
5393
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Wheel Systems > Motor Vehicle Tire Accessories
5394
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Wheel Systems > Motor Vehicle Tires
5395
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Wheel Systems > Motor Vehicle Tires > Automotive Tires
5396
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Wheel Systems > Motor Vehicle Tires > Motorcycle Tires
5397
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Wheel Systems > Motor Vehicle Tires > Off-Road and All-Terrain Vehicle Tires
5398
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Wheel Systems > Motor Vehicle Wheel Parts
5399
- Vehicles & Parts > Vehicle Parts & Accessories > Motor Vehicle Parts > Motor Vehicle Window Parts & Accessories
5400
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor
5401
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Portable Fuel Cans
5402
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Cleaning
5403
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Cleaning > Car Wash Brushes
5404
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Cleaning > Car Wash Solutions
5405
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Cleaning > Vehicle Carpet & Upholstery Cleaners
5406
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Cleaning > Vehicle Fuel Injection Cleaning Kits
5407
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Cleaning > Vehicle Glass Cleaners
5408
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Cleaning > Vehicle Waxes, Polishes & Protectants
5409
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers
5410
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers > Golf Cart Enclosures
5411
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers > Motor Vehicle Windshield Covers
5412
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers > Tonneau Covers
5413
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers > Vehicle Hardtops
5414
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers > Vehicle Soft Tops
5415
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers > Vehicle Storage Covers
5416
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers > Vehicle Storage Covers > Automotive Storage Covers
5417
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers > Vehicle Storage Covers > Golf Cart Storage Covers
5418
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers > Vehicle Storage Covers > Motorcycle Storage Covers
5419
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers > Vehicle Storage Covers > Recreational Vehicle Storage Covers
5420
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Covers > Vehicle Storage Covers > Watercraft Storage Covers
5421
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor
5422
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Bumper Stickers
5423
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Air Fresheners
5424
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Antenna Balls
5425
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Dashboard Accessories
5426
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Decals
5427
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Decor Accessory Sets
5428
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Display Flags
5429
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Emblems & Hood Ornaments
5430
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Hitch Covers
5431
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle License Plate Covers
5432
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle License Plate Frames
5433
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle License Plate Mounts & Holders
5434
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle License Plates
5435
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Magnets
5436
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Rear View Mirror Ornaments
5437
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Shift Boots
5438
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Shift Knobs
5439
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Steering Wheel Covers
5440
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Decor > Vehicle Wraps
5441
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids
5442
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Antifreeze
5443
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Brake Fluid
5444
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Cooling System Additives
5445
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Engine Degreasers
5446
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Fuel System Cleaners
5447
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Greases
5448
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Hydraulic Clutch Fluid
5449
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Motor Oil
5450
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Performance Additives
5451
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Power Steering Fluid
5452
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Transmission Fluid
5453
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Fluids > Vehicle Windshield Fluid
5454
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Paint
5455
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Paint > Motor Vehicle Body Paint
5456
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Paint > Motor Vehicle Brake Caliper Paint
5457
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Repair & Specialty Tools
5458
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Repair & Specialty Tools > Motor Vehicle Brake Service Kits
5459
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Repair & Specialty Tools > Motor Vehicle Clutch Alignment & Removal Tools
5460
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Repair & Specialty Tools > Vehicle Battery Chargers
5461
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Repair & Specialty Tools > Vehicle Battery Testers
5462
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Repair & Specialty Tools > Vehicle Body Filler
5463
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Repair & Specialty Tools > Vehicle Diagnostic Scanners
5464
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Repair & Specialty Tools > Vehicle Jump Starters
5465
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Repair & Specialty Tools > Vehicle Jumper Cables
5466
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Repair & Specialty Tools > Vehicle Tire Repair & Tire Changing Tools
5467
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Maintenance, Care & Decor > Vehicle Repair & Specialty Tools > Windshield Repair Kits
5468
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security
5469
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Motorcycle Protective Gear
5470
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Motorcycle Protective Gear > Motorcycle Chest & Back Protectors
5471
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Motorcycle Protective Gear > Motorcycle Elbow & Wrist Guards
5472
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Motorcycle Protective Gear > Motorcycle Gloves
5473
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Motorcycle Protective Gear > Motorcycle Goggles
5474
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Motorcycle Protective Gear > Motorcycle Hand Guards
5475
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Motorcycle Protective Gear > Motorcycle Helmet Parts & Accessories
5476
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Motorcycle Protective Gear > Motorcycle Helmets
5477
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Motorcycle Protective Gear > Motorcycle Kidney Belts
5478
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Motorcycle Protective Gear > Motorcycle Knee & Shin Guards
5479
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Motorcycle Protective Gear > Motorcycle Neck Braces
5480
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Off-Road & All-Terrain Vehicle Protective Gear
5481
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Off-Road & All-Terrain Vehicle Protective Gear > ATV & UTV Bar Pads
5482
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks
5483
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Automotive Alarm Accessories
5484
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Automotive Alarm Systems
5485
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Motorcycle Alarms & Locks
5486
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Vehicle Door Locks & Parts
5487
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Vehicle Door Locks & Parts > Vehicle Door Lock Actuators
5488
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Vehicle Door Locks & Parts > Vehicle Door Lock Knobs
5489
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Vehicle Door Locks & Parts > Vehicle Door Locks & Locking Systems
5490
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Vehicle Hitch Locks
5491
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Vehicle Immobilizers
5492
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Vehicle Remote Keyless Systems
5493
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Vehicle Steering Wheel Locks
5494
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Alarms & Locks > Vehicle Wheel Clamps
5495
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Safety Equipment
5496
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Safety Equipment > Car Window Nets
5497
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Safety Equipment > Emergency Road Flares
5498
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Safety Equipment > Motor Vehicle Airbag Parts
5499
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Safety Equipment > Motor Vehicle Roll Cages & Bars
5500
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Safety Equipment > Vehicle Seat Belt Buckles
5501
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Safety Equipment > Vehicle Seat Belt Covers
5502
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Safety Equipment > Vehicle Seat Belt Straps
5503
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Safety Equipment > Vehicle Seat Belts
5504
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Safety Equipment > Vehicle Warning Whips
5505
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Safety & Security > Vehicle Safety Equipment > Vehicle Wheel Chocks
5506
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo
5507
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Cargo Nets
5508
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Rack Accessories
5509
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Rack Accessories > Vehicle Bicycle Rack Accessories
5510
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Rack Accessories > Vehicle Ski & Snowboard Rack Accessories
5511
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Racks
5512
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Racks > Vehicle Base Rack Systems
5513
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Racks > Vehicle Bicycle Racks
5514
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Racks > Vehicle Boat Racks
5515
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Racks > Vehicle Cargo Racks
5516
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Racks > Vehicle Fishing Rod Racks
5517
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Racks > Vehicle Gun Racks
5518
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Racks > Vehicle Motorcycle & Scooter Racks
5519
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Racks > Vehicle Ski & Snowboard Racks
5520
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Carrying Racks > Vehicle Water Sport Board Racks
5521
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Loading Ramps
5522
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Trailers
5523
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Trailers > Boat Trailers
5524
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Trailers > Horse & Livestock Trailers
5525
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Trailers > Travel Trailers
5526
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motor Vehicle Trailers > Utility & Cargo Trailers
5527
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Motorcycle Bags & Panniers
5528
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Truck Bed Storage Boxes & Organizers
5529
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Vehicle Headrest Hangers & Hooks
5530
- Vehicles & Parts > Vehicle Parts & Accessories > Vehicle Storage & Cargo > Vehicle Organizers
5531
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories
5532
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Docking & Anchoring
5533
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Docking & Anchoring > Anchor Chains
5534
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Docking & Anchoring > Anchor Lines & Ropes
5535
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Docking & Anchoring > Anchor Windlasses
5536
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Docking & Anchoring > Anchors
5537
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Docking & Anchoring > Boat Hooks
5538
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Docking & Anchoring > Boat Ladders
5539
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Docking & Anchoring > Dock Cleats
5540
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Docking & Anchoring > Dock Steps
5541
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Sailboat Parts
5542
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Care
5543
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Care > Watercraft Cleaners
5544
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Care > Watercraft Polishes
5545
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Engine Parts
5546
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Engine Parts > Watercraft Alternators
5547
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Engine Parts > Watercraft Carburetors & Parts
5548
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Engine Parts > Watercraft Engine Controls
5549
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Engine Parts > Watercraft Ignition Parts
5550
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Engine Parts > Watercraft Impellers
5551
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Engine Parts > Watercraft Motor Locks
5552
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Engine Parts > Watercraft Motor Mounts
5553
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Engine Parts > Watercraft Pistons & Parts
5554
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Engine Parts > Watercraft Propellers
5555
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Engines & Motors
5556
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Exhaust Parts
5557
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Exhaust Parts > Watercraft Manifolds
5558
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Exhaust Parts > Watercraft Mufflers & Parts
5559
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Fuel Systems
5560
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Fuel Systems > Watercraft Fuel Lines & Parts
5561
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Fuel Systems > Watercraft Fuel Meters
5562
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Fuel Systems > Watercraft Fuel Pumps & Parts
5563
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Fuel Systems > Watercraft Fuel Tanks & Parts
5564
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Lighting
5565
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Steering Parts
5566
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Steering Parts > Watercraft Steering Cables
5567
- Vehicles & Parts > Vehicle Parts & Accessories > Watercraft Parts & Accessories > Watercraft Steering Parts > Watercraft Steering Wheels
5568
- Vehicles & Parts > Vehicles
5569
- Vehicles & Parts > Vehicles > Aircraft
5570
- Vehicles & Parts > Vehicles > Motor Vehicles
5571
- Vehicles & Parts > Vehicles > Motor Vehicles > Cars, Trucks & Vans
5572
- Vehicles & Parts > Vehicles > Motor Vehicles > Golf Carts
5573
- Vehicles & Parts > Vehicles > Motor Vehicles > Motorcycles & Scooters
5574
- Vehicles & Parts > Vehicles > Motor Vehicles > Off-Road and All-Terrain Vehicles
5575
- Vehicles & Parts > Vehicles > Motor Vehicles > Off-Road and All-Terrain Vehicles > ATVs & UTVs
5576
- Vehicles & Parts > Vehicles > Motor Vehicles > Off-Road and All-Terrain Vehicles > Go Karts & Dune Buggies
5577
- Vehicles & Parts > Vehicles > Motor Vehicles > Recreational Vehicles
5578
- Vehicles & Parts > Vehicles > Motor Vehicles > Snowmobiles
5579
- Vehicles & Parts > Vehicles > Watercraft
5580
- Vehicles & Parts > Vehicles > Watercraft > Motor Boats
5581
- Vehicles & Parts > Vehicles > Watercraft > Personal Watercraft
5582
- Vehicles & Parts > Vehicles > Watercraft > Sailboats
5583
- Vehicles & Parts > Vehicles > Watercraft > Yachts
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/google/tvc_google-source.js DELETED
@@ -1,292 +0,0 @@
1
- var _googleClothingAndAccessories = false;
2
- var _googleNeedsProductCat = false;
3
- var _googleRequiresBrand = true;
4
-
5
- // ALERT! This function is equivalent for the woocommerce_to_feed_fields() function in class-data.php
6
- function woocommerceToGoogleFields() {
7
- return {
8
- 'id': 'ID',
9
- 'title': 'post_title',
10
- 'google_product_category': 'category',
11
- 'description': 'post_content',
12
- 'link': 'permalink',
13
- 'image_link': 'attachment_url',
14
- 'additional_image_link': '_wp_attachement_metadata',
15
- 'price': '_regular_price',
16
- 'sale_price': '_sale_price',
17
- 'sale_price_effective_date': '_sale_price_dates_from',
18
- 'item_group_id': 'item_group_id',
19
- 'mpn': 'ID',
20
- 'tax': 'Use the settings in the Merchant Center',
21
- 'shipping': 'Use the settings in the Merchant Center',
22
- };
23
- }
24
-
25
- // ALERT! This function is equivalent for the set_google_output_attribute_levels() function in class-data.php
26
- function setGoogleOutputAttributeLevels( feedHolder, targetCountry ) {
27
- for ( var i = 0; i < feedHolder[ 'attributes' ].length; i ++ ) {
28
-
29
- if ( feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] === '0' ) {
30
-
31
- switch ( feedHolder[ 'attributes' ][ i ][ 'fieldName' ] ) {
32
-
33
- case 'google_product_category':
34
-
35
- if ( _googleNeedsProductCat === true ) {
36
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '1';
37
- } else {
38
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '4';
39
- }
40
-
41
- break;
42
-
43
- case 'is_bundle':
44
- case 'multipack':
45
-
46
- if ( jQuery.inArray( targetCountry, googleSpecialProductCountries() ) < 0 ) {
47
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '4';
48
- } else {
49
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '1';
50
- }
51
-
52
- break;
53
-
54
- case 'brand':
55
-
56
- if ( _googleRequiresBrand === true ) {
57
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '1';
58
- } else {
59
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '4';
60
- }
61
-
62
- break;
63
-
64
- case 'item_group_id':
65
-
66
- if ( jQuery.inArray( targetCountry, googleSpecialClothingGroupCountries() ) > - 1 ) {
67
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '1';
68
- } else {
69
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '4';
70
- }
71
-
72
- break;
73
-
74
- case 'gender':
75
- case 'age_group':
76
- case 'color':
77
- case 'size':
78
-
79
- if ( jQuery.inArray( targetCountry, googleSpecialClothingGroupCountries() ) > - 1 && _googleClothingAndAccessories === true ) {
80
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '1';
81
- } else {
82
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '4';
83
- }
84
-
85
- break;
86
-
87
- case 'tax':
88
-
89
- // In accordance with the Google Feed Specifications update of september 2015
90
- if ( targetCountry === 'US' ) {
91
-
92
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '1';
93
- } else {
94
-
95
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '4';
96
- }
97
-
98
- break;
99
-
100
- case 'shipping':
101
-
102
- // In accordance with the Google Feed Specifications update of september 2015
103
- if ( jQuery.inArray( targetCountry, googleSpecialShippingCountries() ) > - 1 ) {
104
-
105
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '1';
106
- } else {
107
-
108
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '4';
109
- }
110
-
111
- break;
112
-
113
- case 'subscription_costs':
114
- case 'subscription_cost-period':
115
- case 'subscription_cost-period_length':
116
- case 'subscription_cost-amount':
117
-
118
- if ( jQuery.inArray( targetCountry, googleSpecialSubscriptionCountries()) > - 1 ) {
119
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '4';
120
- } else {
121
- feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] = '0';
122
- }
123
-
124
- break;
125
-
126
- default:
127
- break;
128
-
129
- }
130
-
131
- // set the attribute to active if it's a recommended or highly recommended attribute, or if it has a value
132
- feedHolder[ 'attributes' ][ i ][ 'isActive' ] = setAttributeStatus( parseInt( feedHolder[ 'attributes' ][ i ][ 'fieldLevel' ] ), feedHolder[ 'attributes' ][ i ][ 'value' ] );
133
- }
134
- }
135
-
136
- return feedHolder;
137
- }
138
-
139
- function setGooglePresets( field ) {
140
- switch ( field ) {
141
- case 'condition':
142
- return '{"m":[{"s":{"static":"new"}}]}';
143
-
144
- case 'availability':
145
- return '{"m":[{"s":{"static":"in stock"},"c":[{"1":"0#_stock_status#0#instock"}]},{"s":{"static":"out of stock"}}]}';
146
-
147
- case 'identifier_exists':
148
- return '{"m":[{"s":{"static":"yes"}}]}';
149
-
150
- case 'adult':
151
- return '{"m":[{"s":{"static":"no"}}]}';
152
-
153
- case 'price':
154
- return '{"m":[{"s":{"source":"combined","f":"_regular_price|1#wc_currency"}}]}';
155
-
156
- default:
157
- break;
158
- }
159
- }
160
-
161
- function fillGoogleCategoryVariables( selectedCategory, currentLevel ) {
162
- switch ( currentLevel ) {
163
- case 'lvl_0':
164
- case 'lvl_1':
165
- _googleClothingAndAccessories = false;
166
- _googleNeedsProductCat = false;
167
- _googleRequiresBrand = true;
168
- break;
169
- }
170
-
171
- switch ( selectedCategory ) {
172
- case 'Clothing':
173
- _googleClothingAndAccessories = true;
174
- _googleNeedsProductCat = true;
175
- _googleRequiresBrand = true;
176
- break;
177
-
178
- case 'Software':
179
- case 'Apparel & Accessories':
180
- _googleClothingAndAccessories = true;
181
- _googleNeedsProductCat = true;
182
- _googleRequiresBrand = true;
183
- break;
184
-
185
- case 'Media':
186
- _googleClothingAndAccessories = false;
187
- _googleNeedsProductCat = true;
188
- _googleRequiresBrand = false;
189
- break;
190
-
191
- default:
192
- break;
193
- }
194
- }
195
-
196
- function googleStaticFieldOptions( fieldName ) {
197
- var options = [];
198
-
199
- switch ( fieldName ) {
200
- case 'condition':
201
- options = [ 'new', 'used', 'refurbished' ];
202
- break;
203
-
204
- case 'availability':
205
- options = [ 'in stock', 'out of stock', 'preorder' ];
206
- break;
207
-
208
- case 'identifier_exists':
209
- options = [ 'yes', 'no' ];
210
- break;
211
-
212
- case 'gender':
213
- options = [ 'unisex', 'male', 'female' ];
214
- break;
215
-
216
- case 'age_group':
217
- options = [ 'adult', 'newborn', 'infant', 'toddler', 'kids' ];
218
- break;
219
-
220
- case 'size_type':
221
- options = [ 'regular', 'petite', 'plus', 'big and tall', 'maternity' ];
222
- break;
223
-
224
- case 'size_system':
225
- options = [ 'EU', 'US', 'UK', 'DE', 'FR', 'JP', 'CN', 'IT', 'BR', 'MEX', 'AU' ];
226
- break;
227
-
228
- case 'adult':
229
- options = [ 'yes', 'no' ];
230
- break;
231
-
232
- case 'energy_efficiency_class':
233
- case 'min_energy_efficiency_class':
234
- case 'max_energy_efficiency_class':
235
- options = [ 'A', 'A+', 'A++', 'A+++', 'B', 'C', 'D', 'E', 'F', 'G' ];
236
- break;
237
-
238
- case 'excluded_destination':
239
- options = [ 'Shopping', 'ShoppingActions', 'DisplayAds' ];
240
- break;
241
-
242
- default:
243
- options = [];
244
- break;
245
- }
246
-
247
- return options;
248
- }
249
-
250
- function switchToGoogleFeedFormMainInputs( isNew, channel ) {
251
- jQuery( '#country-list-row' ).show();
252
- jQuery( '#category-list-row' ).show();
253
- jQuery( '#google-feed-title-row' ).show();
254
- jQuery( '#google-feed-description-row' ).show();
255
- jQuery( '#aggregator-selector-row' ).hide();
256
-
257
- appendCategoryLists( parseInt( channel ), 'en-US', isNew );
258
- }
259
-
260
- function googleInputChanged( feedId, categoryChanged ) {
261
- var fileName = jQuery( '#file-name' ).val();
262
- var selectedCountry = jQuery( '#countries' ).val();
263
- var selectedMainCategory = jQuery( '#lvl_0' ).val();
264
-
265
- // enable or disable the correct buttons for the google channel
266
- if ( fileName && selectedCountry !== '0' && selectedMainCategory && selectedMainCategory !== '0' ) {
267
- updateFeedFormAfterInputChanged( feedId, categoryChanged );
268
- } else {
269
- // keep the Generate and Save buttons disabled
270
- disableFeedActionButtons();
271
- }
272
- }
273
-
274
- // ALERT! This function is equivalent to the special_clothing_group_countries() function in class-feed.php in the google channels folder
275
- function googleSpecialClothingGroupCountries() {
276
- return [ 'US', 'GB', 'DE', 'FR', 'JP', 'BR' ]; // Brazil added based on the new Feed Specifications from september 2015
277
- }
278
-
279
- // ALERT! This function is equivalent to the special_shipping_countries() function in class-feed.php in the google channels folder
280
- function googleSpecialShippingCountries() {
281
- return [ 'US', 'GB', 'DE', 'AU', 'FR', 'CH', 'CZ', 'NL', 'IT', 'ES', 'JP' ];
282
- }
283
-
284
- // ALERT! This function is equivalent to the special_product_countries() function in class-feed.php in the google channels folder
285
- function googleSpecialProductCountries() {
286
- return [ 'US', 'GB', 'DE', 'AU', 'FR', 'CH', 'CZ', 'NL', 'IT', 'ES', 'JP', 'BR' ];
287
- }
288
-
289
- // ALERT! This function is equivalent to the special_subscription_countries() function in class-feed.php in the google channels folder
290
- function googleSpecialSubscriptionCountries() {
291
- return [ 'DE', 'FR', 'GB' ];
292
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/js/tvc_channel-functions.js DELETED
@@ -1,707 +0,0 @@
1
- "use strict";
2
- /**
3
- * Switches the correct input fields on the feed form on or off depending on the selected channel
4
- *
5
- * @param {string} channel
6
- * @param {boolean} isNew
7
- * @returns nothing
8
- */
9
-
10
- // TVC_CHANNEL_RELATED
11
- function tvc_showChannelInputs( channel, isNew ) {
12
- var fName = {
13
- '1': 'switchToGoogleFeedFormMainInputs',
14
- '2': 'switchToBingFeedFormMainInputs',
15
- '3': 'switchToBeslisFeedFormMainInputs',
16
- '4': 'switchToPricegrabberFeedFormMainInputs',
17
- '5': 'switchToShoppingFeedFormMainInputs',
18
- '6': 'switchToAmazonFeedFormMainInputs',
19
- '7': 'switchToConnexityFeedFormMainInputs',
20
- '9': 'switchToNextagFeedFormMainInputs',
21
- '10': 'switchToKieskeurigFeedFormMainInputs',
22
- '11': 'switchToVergelijkFeedFormMainInputs',
23
- '12': 'switchToKoopjespakkerFeedFormMainInputs',
24
- '13': 'switchToAvantLinkFeedFormMainInputs',
25
- '14': 'switchToZboziFeedFormMainInputs',
26
- '15': 'switchToComconFeedFormMainInputs',
27
- '16': 'switchToFacebookFeedFormMainInputs',
28
- '17': 'switchToBolFeedFormMainInputs',
29
- '18': 'switchToAdtractionFeedFormMainInputs',
30
- '19': 'switchToRicardoFeedFormMainInputs',
31
- '20': 'switchToEbayFeedFormMainInputs',
32
- '21': 'switchToShopzillaFeedFormMainInputs',
33
- '22': 'switchToConvertoFeedFormMainInputs',
34
- '23': 'switchToIdealoFeedFormMainInputs',
35
- '24': 'switchToHeurekaFeedFormMainInputs',
36
- '25': 'switchToPepperjamFeedFormMainInputs',
37
- '26': 'switchToGalaxusProductDataFeedFormMainInputs',
38
- '27': 'switchToGalaxusProductPropertiesFeedFormMainInputs',
39
- '28': 'switchToGalaxusProductStockPricingFeedFormMainInputs',
40
- '996': 'switchToTsvFeedFormMainInputs',
41
- '997': 'switchToTxtFeedFormMainInputs',
42
- '998': 'switchToCsvFeedFormMainInputs',
43
- '999': 'switchToFeedFormMainInputs',
44
- };
45
-
46
- // call the correct function
47
- if ( fName.hasOwnProperty( channel ) ) {
48
- window[ fName[ channel ] ]( isNew, channel );
49
- }
50
-
51
- // standard for all channels
52
- jQuery( '#update-schedule-row' ).show();
53
- jQuery( '#add-product-variations-row' ).show();
54
-
55
- if ( (
56
- null === jQuery( '#lvl_0' ).val() && '' === jQuery( '#selected-categories' ).html() ) || 0 === jQuery( '#tvc-countries-selector' ).val() ) {
57
- tvc_show_or_hide_category_map( channel );
58
- } else {
59
- jQuery( '#tvc-category-map' ).show();
60
- }
61
- }
62
-
63
- /**
64
- * depending on channel show or hide the category map directly after channel selection
65
- * Add the channel to the "show" part when it does not have an own category list
66
- *
67
- * @param {string} channel
68
- * @returns nothing
69
- */
70
- function tvc_show_or_hide_category_map( channel ) {
71
- var category_map_selector = jQuery( '#tvc-category-map' );
72
-
73
- switch ( channel ) {
74
- case '15': // Commerce Connector
75
- case '17': // Bol.com
76
- case '18': // Adtraction
77
- case '22': // Converto
78
- case '23': // Idealo
79
- case '25': // Pepperjam
80
- case '26': // Galaxus Product Data
81
- case '27': // Galaxus Product Stock Pricing
82
- case '28': // Galaxus Product Properties
83
- category_map_selector.show();
84
- break;
85
-
86
- default:
87
- category_map_selector.hide();
88
- break;
89
- }
90
- }
91
-
92
- /**
93
- * Usually categories are separated by a > but some channels use other separators
94
- *
95
- * @since 2.2.0
96
- *
97
- * @param {string} channel
98
- * @returns {string} separator
99
- */
100
- function tvc_category_separator( channel ) {
101
- switch ( channel ) {
102
- case '14': // Commerce Connector
103
- case '24': // Commerce Connector
104
- return ' | ';
105
-
106
- default:
107
- return ' > ';
108
- }
109
- }
110
-
111
- /**
112
- * calls the correct channel function that makes sure the correct input fields are shown after the user has changed the title or channel
113
- *
114
- * @param {string} channel
115
- * @param {string} feedId
116
- * @param {boolean} categoryChanged
117
- * @returns nothing
118
- */
119
- function tvc_reactOnChannelInputChanged( channel, feedId, categoryChanged ) {
120
- var functionName = '';
121
- var tabId = tvc_getUrlVariable( 'tab' ); // identify the feed type
122
-
123
- if ( 'product-feed' === tabId ) { // handle product feeds from different merchants
124
- var fName = {
125
- '1': 'googleInputChanged',
126
- '2': 'bingInputChanged',
127
- '3': 'beslisInputChanged',
128
- '4': 'pricegrabberInputChanged',
129
- '5': 'shoppingInputChanged',
130
- '6': 'amazonInputChanged',
131
- '7': 'connexityInputChanged',
132
- '9': 'nextagInputChanged',
133
- '10': 'kieskeurigInputChanged',
134
- '11': 'vergelijkInputChanged',
135
- '12': 'koopjespakkerInputChanged',
136
- '13': 'avantlinkInputChanged',
137
- '14': 'zboziInputChanged',
138
- '15': 'comconInputChanged',
139
- '16': 'facebookInputChanged',
140
- '17': 'bolInputChanged',
141
- '18': 'adtractionInputChanged',
142
- '19': 'ricardoInputChanged',
143
- '20': 'ebayInputChanged',
144
- '21': 'shopzillaInputChanged',
145
- '22': 'convertoInputChanged',
146
- '23': 'idealoInputChanged',
147
- '24': 'heurekaInputChanged',
148
- '25': 'pepperjamInputChanged',
149
- '26': 'galaxusProductDataInputChanged',
150
- '27': 'galaxusProductStockPricingInputChanged',
151
- '28': 'galaxusProductPropertiesInputChanged',
152
- '996': 'TsvInputChanged',
153
- '997': 'TxtInputChanged',
154
- '998': 'CsvInputChanged',
155
- '999': 'InputChanged',
156
- };
157
-
158
- functionName = fName[ channel ];
159
- } else { // handle special feeds from add-ons
160
- var functionString = tvc_convertToCamelCase( tabId.split( '-' ) );
161
- functionName = functionString + 'Changed';
162
- }
163
-
164
- // call the correct function
165
- if ( functionName ) {
166
- window[ functionName ]( feedId, categoryChanged );
167
- }
168
- }
169
-
170
- /**
171
- * Returns txt of xml depending on the feed type that needs to be made
172
- *
173
- * @param {string} channel
174
- * @returns {string} with the channel feed type
175
- */
176
- function tvc_getChannelFeedType( channel ) {
177
- switch ( channel ) {
178
- case '2': // bing
179
- case '4': // pricegrabber
180
- case '6': // amazon
181
- case '7': // connexity
182
- case '9': // nextag
183
- case '12': // koopjespakker.nl
184
- case '21': // shopzilla
185
- case '25': // pepperjam
186
- case '997': // Custom TXT Feed
187
- return 'txt';
188
-
189
- case '15': // Commerce Connector
190
- case '17': // Bol.com
191
- case '19': // Ricardo.ch
192
- case '22': // Converto
193
- case '23': // Idealo
194
- case '26': // Galaxus Product Data
195
- case '27': // Galaxus Product Stock Pricing
196
- case '28': // Galaxus Product Properties
197
- case '998': // Custom CSV Feed
198
- return 'csv';
199
-
200
- case '996': // Custom TSV feed
201
- return 'tsv';
202
-
203
- default:
204
- return 'xml';
205
- }
206
- }
207
-
208
- /**
209
- * returns the correct country code for the channel specific category text file
210
- *
211
- * @param {string} channel
212
- * @returns {String} with the channels country code
213
- */
214
- function tvc_channelCountryCode( channel ) {
215
- var language = 'en-US';
216
-
217
- // TVC_CHANNEL_RELATED
218
- switch ( channel ) {
219
- case '3': // Beslist
220
- case '10': // Kieskeurig
221
- case '11': // Vergelijk
222
- case '12': // Koopjespakker
223
- case '17': // Bol.com
224
- language = 'nl-NL';
225
- break;
226
-
227
- case '14': // Zbozi
228
- case '24': // Heureka
229
- language = 'cs-CZ';
230
- break;
231
-
232
- case '19': // Ricardo.ch
233
- language = 'de-CH';
234
- break;
235
-
236
- case '23': // Idealo
237
- language = 'de-DE';
238
- break;
239
- }
240
-
241
- return language;
242
- }
243
-
244
- /**
245
- * Returns true if the specified channel does not have its own categories but uses the users shop
246
- * categories instead
247
- *
248
- * @param {string} channel
249
- * @returns {Boolean} true when this channel uses categories from the shop
250
- */
251
- function tvc_channelUsesOwnCategories( channel ) {
252
- // only add the channel when it uses the shop categories in stead of specific channel categories
253
- switch ( channel ) {
254
- case '10': // kieskeurig.nl
255
- case '15': // Commerce Connector
256
- case '17': // Bol.com
257
- case '18': // Adtraction
258
- case '22': // Converto
259
- case '23': // Idealo
260
- case '25': // Pepperjam
261
- case '26': // Galaxus Product Data
262
- case '27': // Galaxus Product Stock Pricing
263
- case '28': // Galaxus Product Properties
264
- return true;
265
-
266
- default:
267
- return false;
268
- }
269
- }
270
-
271
- /**
272
- * If required for that channel, this function activates the correct function that will prepare the global category
273
- * variables in the channel specific javascript file. Does nothing when not required for the channel
274
- *
275
- * @param {string} channel
276
- * @param {string} selectedCategory
277
- * @param {string} currentLevelId
278
- * @returns nothing
279
- */
280
- function tvc_fillCategoryVariables(
281
- channel, selectedCategory, currentLevelId ) {
282
- var fName = {
283
- '1': 'fillGoogleCategoryVariables',
284
- '4': 'fillPricegrabberCategoryVariables',
285
- '5': 'fillShoppingCategoryVariables',
286
- '6': 'fillAmazonCategoryVariables',
287
- '7': 'fillConnexityCategoryVariables',
288
- '9': 'fillNextagCategoryVariables',
289
- '13': 'fillAvantLinkCategoryVariables',
290
- '14': 'fillZboziCategoryVariables',
291
- };
292
-
293
- // call the correct function
294
- if ( fName.hasOwnProperty( channel ) ) {
295
- // call the correct switch main form inputs function
296
- window[ fName[ channel ] ]( selectedCategory, currentLevelId );
297
- }
298
- }
299
-
300
- /**
301
- * Some fields require specific allowed inputs. This function gets the correct options for given field
302
- *
303
- * @param {string} rowId
304
- * @param {string} queryLevel
305
- * @param {string} combinationLevel
306
- * @param {string} channel
307
- * @param {string} fieldName
308
- * @param {string} selectedValue
309
- * @returns {String} containing the allowed options
310
- */
311
- function tvc_displayCorrectStaticField(
312
- rowId, queryLevel, combinationLevel, channel, fieldName, selectedValue ) {
313
- var html = '';
314
- var options = tvc_restrictedStaticFields( channel, fieldName );
315
-
316
- if ( options !== undefined ) {
317
- if ( options.length === 0 ) {
318
- // show the standard text type input field
319
- html = tvc_staticInputField( rowId, queryLevel, combinationLevel, selectedValue );
320
- } else {
321
- // show the standard selector with the correct allowed options
322
- html = tvc_staticInputSelect( rowId, queryLevel, combinationLevel, options, selectedValue );
323
- }
324
- }
325
-
326
- return html;
327
- }
328
-
329
- /**
330
- * Gets the advised input fields
331
- *
332
- * @param {string} channel
333
- * @returns {array} array containing the advised inputs
334
- */
335
- function tvc_getAdvisedInputs( channel ) {
336
- var fName = {
337
- '1': 'woocommerceToGoogleFields',
338
- '2': 'woocommerceToBingFields',
339
- '3': 'woocommerceToBeslisFields',
340
- '4': 'woocommerceToPricegrabberFields',
341
- '5': 'woocommerceToShoppingFields',
342
- '6': 'woocommerceToAmazonFields',
343
- '7': 'woocommerceToConnexityFields',
344
- '9': 'woocommerceToNextagFields',
345
- '10': 'woocommerceToKieskeurigFields',
346
- '11': 'woocommerceToVergelijkFields',
347
- '12': 'woocommerceToKoopjespakkerFields',
348
- '13': 'woocommerceToAvantLinkFields',
349
- '14': 'woocommerceToZboziFields',
350
- '15': 'woocommerceToComconFields',
351
- '16': 'woocommerceToFacebookFields',
352
- '17': 'woocommerceToBolFields',
353
- '18': 'woocommerceToAdtractionFields',
354
- '19': 'woocommerceToRicardoFields',
355
- '20': 'woocommerceToeBayFields',
356
- '21': 'woocommerceToShopzillaFields',
357
- '22': 'woocommerceToConvertoFields',
358
- '23': 'woocommerceToIdealoFields',
359
- '24': 'woocommerceToHeurekaFields',
360
- '25': 'woocommerceToPepperjamFields',
361
- '26': 'woocommerceToGalaxusProductDataFields',
362
- '27': 'woocommerceToGalaxusProductStockPricingFields',
363
- '28': 'woocommerceToGalaxusProductPropertiesFields',
364
- };
365
-
366
- if ( fName.hasOwnProperty( channel ) ) {
367
- // call the correct function
368
- return window[ fName[ channel ] ]();
369
- } else {
370
- return [];
371
- }
372
- }
373
-
374
- /**
375
- * Sets the attributes to the correct levels depending on several variables.
376
- *
377
- * @param {string} channel Channel id.
378
- * @param {object} feedHolder Feed Holder containing feed data items.
379
- * @param {string} selectArgument
380
- *
381
- * @returns {object} feed holder with the correct attribute levels
382
- */
383
- // ALERT has a relation with the set_output_attribute_levels() function in the class-tvc-data.php file
384
- function tvc_setOutputAttributeLevels( channel, feedHolder, selectArgument ) {
385
- switch ( channel ) {
386
- case '1':
387
- return setGoogleOutputAttributeLevels( feedHolder, selectArgument );
388
-
389
- case '2':
390
- return setBingOutputAttributeLevels( feedHolder );
391
-
392
- case '3':
393
- return setBeslisOutputAttributeLevels( feedHolder );
394
-
395
- case '4':
396
- return setPricegrabberOutputAttributeLevels( feedHolder );
397
-
398
- case '5':
399
- return setShoppingOutputAttributeLevels( feedHolder );
400
-
401
- case '6':
402
- return setAmazonOutputAttributeLevels( feedHolder );
403
-
404
- case '7':
405
- return setConnexityOutputAttributeLevels( feedHolder );
406
-
407
- case '9':
408
- return setNextagOutputAttributeLevels( feedHolder );
409
-
410
- case '10':
411
- return setKieskeurigOutputAttributeLevels( feedHolder );
412
-
413
- case '11':
414
- return setVergelijkOutputAttributeLevels( feedHolder );
415
-
416
- case '13':
417
- return setAvantLinkOutputAttributeLevels( feedHolder,
418
- selectArgument );
419
-
420
- case '14':
421
- return setZboziOutputAttributeLevels( feedHolder, selectArgument );
422
-
423
- case '26':
424
- return setGalaxusProductDataAttributeLevels( feedHolder,
425
- selectArgument );
426
-
427
- case '27':
428
- return setGalaxusProductStockPricingAttributeLevels( feedHolder );
429
-
430
- case '28':
431
- return setGalaxusProductPropertiesAttributeLevels( feedHolder );
432
-
433
- case '996':
434
- return setTsvOutputAttributeLevels( feedHolder );
435
-
436
- case '997':
437
- return setTxtOutputAttributeLevels( feedHolder );
438
-
439
- case '998':
440
- return setCsvOutputAttributeLevels( feedHolder );
441
-
442
- case '999':
443
- return setOutputAttributeLevels( feedHolder );
444
-
445
- default:
446
- return feedHolder;
447
- }
448
- }
449
-
450
- /**
451
- * returns an array with the channel specific fields with restricted input options
452
- *
453
- * @param {string} channel
454
- * @param {string} fieldName
455
- * @returns {array}
456
- */
457
- function tvc_restrictedStaticFields( channel, fieldName ) {
458
- var fName = {
459
- '1': 'googleStaticFieldOptions',
460
- '2': 'bingStaticFieldOptions',
461
- '3': 'beslisStaticFieldOptions',
462
- '4': 'pricegrabberStaticFieldOptions',
463
- '5': 'shoppingStaticFieldOptions',
464
- '6': 'amazonStaticFieldOptions',
465
- '7': 'connexityStaticFieldOptions',
466
- '9': 'nextagStaticFieldOptions',
467
- '10': 'kieskeurigStaticFieldOptions',
468
- '11': 'vergelijkStaticFieldOptions',
469
- '12': 'koopjespakkerStaticFieldOptions',
470
- '13': 'avantlinkStaticFieldOptions',
471
- '14': 'zboziStaticFieldOptions',
472
- '15': 'comconStaticFieldOptions',
473
- '16': 'facebookStaticFieldOptions',
474
- '17': 'bolStaticFieldOptions',
475
- '18': 'adtractionStaticFieldOptions',
476
- '19': 'ricardoStaticFieldOptions',
477
- '20': 'ebayStaticFieldOptions',
478
- '21': 'shopzillaStaticFieldOptions',
479
- '23': 'idealoStaticFieldOptions',
480
- '25': 'pepperjamStaticFieldOptions',
481
- '26': 'galaxusProductDataStaticFieldOptions',
482
- '27': 'galaxusProductStockPricingStaticFieldOptions',
483
- '28': 'galaxusProductPropertiesStaticFieldOptions',
484
- };
485
-
486
- if ( fName.hasOwnProperty( channel ) ) {
487
- // call the correct function
488
- return window[ fName[ channel ] ]( fieldName );
489
- } else {
490
-
491
- return [];
492
- }
493
- }
494
-
495
- /**
496
- * set a preset condition, other than the advised input, for fields for a specific channel (eg. condition = static field with 'new' selected
497
- *
498
- * @param {array} outputsField
499
- * @param {string} channel
500
- * @returns {array}
501
- */
502
- function tvc_setChannelRelatedPresets( outputsField, channel ) {
503
- // TVC_CHANNEL_RELATED
504
- switch ( channel ) {
505
-
506
- case '1': // Google
507
- if ( outputsField[ 'field_label' ] === 'condition' || outputsField[ 'field_label' ] === 'availability' || outputsField[ 'field_label' ] === 'identifier_exists' || outputsField[ 'field_label' ] === 'adult' || outputsField[ 'field_label' ] === 'price' ) {
508
-
509
- // only switch to the 'preset' value if no user value is set
510
- if ( ! outputsField[ 'value' ] ) {
511
- outputsField[ 'value' ] = setGooglePresets( outputsField[ 'field_label' ] );
512
- }
513
- }
514
- break;
515
-
516
- case '2': // Bing
517
- if ( outputsField[ 'field_label' ] === 'seller_name' ) {
518
- // only switch to the 'preset' value if no user value is set
519
- if ( ! outputsField[ 'value' ] ) {
520
- outputsField[ 'value' ] = setBingPresets( outputsField[ 'field_label' ] );
521
- }
522
- }
523
- break;
524
-
525
- case '3': // Beslist
526
- if ( outputsField[ 'field_label' ] === 'Conditie' || outputsField[ 'field_label' ] === 'Levertijd' ) {
527
- // only switch to the 'preset' value if no user value is set
528
- if ( ! outputsField[ 'value' ] ) {
529
- outputsField[ 'value' ] = setBeslisPresets( outputsField[ 'field_label' ] );
530
- }
531
- }
532
- break;
533
-
534
- case '13': // Avant Link
535
- if ( outputsField[ 'field_label' ] === 'condition' || outputsField[ 'field_label' ] === 'availability' || outputsField[ 'field_label' ] === 'identifier_exists' ) {
536
-
537
- // only switch to the 'preset' value if no user value is set
538
- if ( ! outputsField[ 'value' ] ) {
539
- outputsField[ 'value' ] = setAvantLinkPresets( outputsField[ 'field_label' ] );
540
- }
541
- }
542
- break;
543
-
544
- case '14': // Zbozi
545
- if ( outputsField[ 'field_label' ] === 'EROTIC' || outputsField[ 'field_label' ] === 'VISIBILITY' ) {
546
- // only switch to the 'preset' value if no user value is set
547
- if ( ! outputsField[ 'value' ] ) {
548
- outputsField[ 'value' ] = setZboziPresets( outputsField[ 'field_label' ] );
549
- }
550
- }
551
- break;
552
-
553
- case '15': // Commerce Connector
554
- if ( outputsField[ 'field_label' ] === 'Delivery time' ) {
555
- // only switch to the 'preset' value if no user value is set
556
- if ( ! outputsField[ 'value' ] ) {
557
- outputsField[ 'value' ] = setComconPresets( outputsField[ 'field_label' ] );
558
- }
559
- }
560
- break;
561
-
562
- case '16': // Facebook
563
- if ( outputsField[ 'field_label' ] === 'condition' || outputsField[ 'field_label' ] === 'availability' || outputsField[ 'field_label' ] === 'price' ) {
564
-
565
- // only switch to the 'preset' value if no user value is set
566
- if ( ! outputsField[ 'value' ] ) {
567
- outputsField[ 'value' ] = setFacebookPresets( outputsField[ 'field_label' ] );
568
- }
569
- }
570
- break;
571
-
572
- case '17': // Bol.com
573
- if ( outputsField[ 'field_label' ] === 'Condition' || outputsField[ 'field_label' ] === 'Deliverycode' ) {
574
- // only switch to the 'preset' value if no user value is set
575
- if ( ! outputsField[ 'value' ] ) {
576
- outputsField[ 'value' ] = setBolPresets( outputsField[ 'field_label' ] );
577
- }
578
- }
579
- break;
580
-
581
- case '18': // Adtraction
582
- if ( outputsField[ 'field_label' ] === 'instock' ) {
583
- // only switch to the 'preset' value if no user value is set
584
- if ( ! outputsField[ 'value' ] ) {
585
- outputsField[ 'value' ] = setAdtractionPresets( outputsField[ 'field_label' ] );
586
- }
587
- }
588
- break;
589
-
590
- case '19': // Ricardo
591
- if ( outputsField[ 'field_label' ] === 'Descriptions[0].LanguageNr' || outputsField[ 'field_label' ] === 'Increment' || outputsField[ 'field_label' ] === 'AvailabilityId' || outputsField[ 'field_label' ] === 'Condition' ) {
592
-
593
- // only switch to the 'preset' value if no user value is set
594
- if ( ! outputsField[ 'value' ] ) {
595
- outputsField[ 'value' ] = setRicardoPresets( outputsField[ 'field_label' ] );
596
- }
597
- }
598
- break;
599
-
600
- case '20': // eBay
601
- break;
602
-
603
- case '21': // Shopzilla
604
- if ( outputsField[ 'field_label' ] === 'Availability' || outputsField[ 'field_label' ] === 'Condition' ) {
605
- // only switch to the 'preset' value if no user value is set
606
- if ( ! outputsField[ 'value' ] ) {
607
- outputsField[ 'value' ] = setShopzillaPresets( outputsField[ 'field_label' ] );
608
- }
609
- }
610
- break;
611
-
612
- case '22': // Converto
613
- if ( outputsField[ 'field_label' ] === 'Availability' || outputsField[ 'field_label' ] === 'Condition' ) {
614
- // only switch to the 'preset' value if no user value is set
615
- if ( ! outputsField[ 'value' ] ) {
616
- outputsField[ 'value' ] = setShopzillaPresets( outputsField[ 'field_label' ] );
617
- }
618
- }
619
- break;
620
-
621
- case '24': // Heureka
622
- if ( 'ITEM_TYPE' === outputsField[ 'field_label' ] ) {
623
- if ( ! outputsField[ 'value' ] ) {
624
- outputsField[ 'value' ] = setHeurekaPresets( outputsField[ 'field_label' ] );
625
- }
626
- }
627
- break;
628
-
629
- case '25': // Pepperjam
630
- if ( 'ITEM_TYPE' === outputsField[ 'discontinued' ] ) {
631
- if ( ! outputsField[ 'value' ] ) {
632
- outputsField[ 'value' ] = setPepperjamPresets( outputsField[ 'field_label' ] );
633
- }
634
- }
635
- break;
636
-
637
- case '26': // Galaxus Product Data
638
- if ( 'ITEM_TYPE' === outputsField[ 'discontinued' ] ) {
639
- if ( ! outputsField[ 'value' ] ) {
640
- outputsField[ 'value' ] = setGalaxusProductDataPresets( outputsField[ 'field_label' ] );
641
- }
642
- }
643
- break;
644
-
645
- case '27': // Galaxus Product Stock Pricing
646
- if ( 'ITEM_TYPE' === outputsField[ 'discontinued' ] ) {
647
- if ( ! outputsField[ 'value' ] ) {
648
- outputsField[ 'value' ] = setGalaxusProductStockPricingPresets( outputsField[ 'field_label' ] );
649
- }
650
- }
651
- break;
652
-
653
- case '28': // Galaxus Product Properties
654
- if ( 'ITEM_TYPE' === outputsField[ 'discontinued' ] ) {
655
- if ( ! outputsField[ 'value' ] ) {
656
- outputsField[ 'value' ] = setGalaxusProductPropertiesPresets( outputsField[ 'field_label' ] );
657
- }
658
- }
659
- break;
660
-
661
- default:
662
- break;
663
- }
664
- }
665
-
666
- function tvc_requiresLanguageInput( channel ) {
667
- switch ( channel ) {
668
- case '26':
669
- return true; // Galaxus Product Data
670
-
671
- default:
672
- return false;
673
- }
674
- }
675
-
676
- /**
677
- * returns if a channel is a custom feed channel
678
- *
679
- * @param {string} channel
680
- * @returns {boolean}
681
- */
682
- function tvc_isCustomChannel( channel ) {
683
- switch ( channel ) {
684
- case '996': // Custom TSV Feed
685
- case '997': // Custom TXT Feed
686
- case '998': // Custom CSV Feed
687
- case '999': // Custom XML Feed
688
- return true;
689
-
690
- default:
691
- return false;
692
- }
693
- }
694
-
695
- // ALERT! has a php equivalent in class-feed-master.php called set_attribute_status();
696
- function setAttributeStatus( fieldLevel, fieldValue ) {
697
- if ( fieldLevel > 0 && fieldLevel < 3 ) {
698
- return true;
699
- }
700
-
701
- if ( fieldValue ) {
702
- return true;
703
- }
704
-
705
- return false;
706
- }
707
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/js/tvc_channel-functions.min.js DELETED
@@ -1,498 +0,0 @@
1
- function tvc_showChannelInputs(b, a) {
2
- var c = {
3
- "1": "switchToGoogleFeedFormMainInputs",
4
- "2": "switchToBingFeedFormMainInputs",
5
- "3": "switchToBeslisFeedFormMainInputs",
6
- "4": "switchToPricegrabberFeedFormMainInputs",
7
- "5": "switchToShoppingFeedFormMainInputs",
8
- "6": "switchToAmazonFeedFormMainInputs",
9
- "7": "switchToConnexityFeedFormMainInputs",
10
- "9": "switchToNextagFeedFormMainInputs",
11
- "10": "switchToKieskeurigFeedFormMainInputs",
12
- "11": "switchToVergelijkFeedFormMainInputs",
13
- "12": "switchToKoopjespakkerFeedFormMainInputs",
14
- "13": "switchToAvantLinkFeedFormMainInputs",
15
- "14": "switchToZboziFeedFormMainInputs",
16
- "15": "switchToComconFeedFormMainInputs",
17
- "16": "switchToFacebookFeedFormMainInputs",
18
- "17": "switchToBolFeedFormMainInputs",
19
- "18": "switchToAdtractionFeedFormMainInputs",
20
- "19": "switchToRicardoFeedFormMainInputs",
21
- "20": "switchToEbayFeedFormMainInputs",
22
- "21": "switchToShopzillaFeedFormMainInputs",
23
- "22": "switchToConvertoFeedFormMainInputs",
24
- "23": "switchToIdealoFeedFormMainInputs",
25
- "24": "switchToHeurekaFeedFormMainInputs",
26
- "25": "switchToPepperjamFeedFormMainInputs",
27
- "26": "switchToGalaxusProductDataFeedFormMainInputs",
28
- "27": "switchToGalaxusProductPropertiesFeedFormMainInputs",
29
- "28": "switchToGalaxusProductStockPricingFeedFormMainInputs",
30
- "996": "switchToTsvFeedFormMainInputs",
31
- "997": "switchToTxtFeedFormMainInputs",
32
- "998": "switchToCsvFeedFormMainInputs",
33
- "999": "switchToFeedFormMainInputs"
34
- };
35
- if (c.hasOwnProperty(b)) {
36
- window[c[b]](a, b)
37
- }
38
- jQuery("#update-schedule-row").show();
39
- jQuery("#add-product-variations-row").show();
40
- if ((null === jQuery("#lvl_0").val() && "" === jQuery("#selected-categories").html()) || 0 === jQuery("#tvc-countries-selector").val()) {
41
- tvc_show_or_hide_category_map(b)
42
- } else {
43
- jQuery("#tvc-category-map").show()
44
- }
45
- }
46
-
47
- function tvc_show_or_hide_category_map(b) {
48
- var a = jQuery("#tvc-category-map");
49
- switch (b) {
50
- case"15":
51
- case"17":
52
- case"18":
53
- case"22":
54
- case"23":
55
- case"25":
56
- case"26":
57
- case"27":
58
- case"28":
59
- a.show();
60
- break;
61
- default:
62
- a.hide();
63
- break
64
- }
65
- }
66
-
67
- function tvc_category_separator(a) {
68
- switch (a) {
69
- case"14":
70
- case"24":
71
- return " | ";
72
- default:
73
- return " > "
74
- }
75
- }
76
-
77
- function tvc_reactOnChannelInputChanged(d, b, g) {
78
- var f = "";
79
- var c = tvc_getUrlVariable("tab");
80
- if ("product-feed" === c) {
81
- var e = {
82
- "1": "googleInputChanged",
83
- "2": "bingInputChanged",
84
- "3": "beslisInputChanged",
85
- "4": "pricegrabberInputChanged",
86
- "5": "shoppingInputChanged",
87
- "6": "amazonInputChanged",
88
- "7": "connexityInputChanged",
89
- "9": "nextagInputChanged",
90
- "10": "kieskeurigInputChanged",
91
- "11": "vergelijkInputChanged",
92
- "12": "koopjespakkerInputChanged",
93
- "13": "avantlinkInputChanged",
94
- "14": "zboziInputChanged",
95
- "15": "comconInputChanged",
96
- "16": "facebookInputChanged",
97
- "17": "bolInputChanged",
98
- "18": "adtractionInputChanged",
99
- "19": "ricardoInputChanged",
100
- "20": "ebayInputChanged",
101
- "21": "shopzillaInputChanged",
102
- "22": "convertoInputChanged",
103
- "23": "idealoInputChanged",
104
- "24": "heurekaInputChanged",
105
- "25": "pepperjamInputChanged",
106
- "26": "galaxusProductDataInputChanged",
107
- "27": "galaxusProductStockPricingInputChanged",
108
- "28": "galaxusProductPropertiesInputChanged",
109
- "996": "TsvInputChanged",
110
- "997": "TxtInputChanged",
111
- "998": "CsvInputChanged",
112
- "999": "InputChanged"
113
- };
114
- f = e[d]
115
- } else {
116
- var a = tvc_convertToCamelCase(c.split("-"));
117
- f = a + "Changed"
118
- }
119
- if (f) {
120
- window[f](b, g)
121
- }
122
- }
123
-
124
- function tvc_getChannelFeedType(a) {
125
- switch (a) {
126
- case"2":
127
- case"4":
128
- case"6":
129
- case"7":
130
- case"9":
131
- case"12":
132
- case"21":
133
- case"25":
134
- case"997":
135
- return "txt";
136
- case"15":
137
- case"17":
138
- case"19":
139
- case"22":
140
- case"23":
141
- case"26":
142
- case"27":
143
- case"28":
144
- case"998":
145
- return "csv";
146
- case"996":
147
- return "tsv";
148
- default:
149
- return "xml"
150
- }
151
- }
152
-
153
- function tvc_channelCountryCode(a) {
154
- var b = "en-US";
155
- switch (a) {
156
- case"3":
157
- case"10":
158
- case"11":
159
- case"12":
160
- case"17":
161
- b = "nl-NL";
162
- break;
163
- case"14":
164
- case"24":
165
- b = "cs-CZ";
166
- break;
167
- case"19":
168
- b = "de-CH";
169
- break;
170
- case"23":
171
- b = "de-DE";
172
- break
173
- }
174
- return b
175
- }
176
-
177
- function tvc_channelUsesOwnCategories(a) {
178
- switch (a) {
179
- case"10":
180
- case"15":
181
- case"17":
182
- case"18":
183
- case"22":
184
- case"23":
185
- case"25":
186
- case"26":
187
- case"27":
188
- case"28":
189
- return true;
190
- default:
191
- return false
192
- }
193
- }
194
-
195
- function tvc_fillCategoryVariables(b, d, a) {
196
- var c = {
197
- "1": "fillGoogleCategoryVariables",
198
- "4": "fillPricegrabberCategoryVariables",
199
- "5": "fillShoppingCategoryVariables",
200
- "6": "fillAmazonCategoryVariables",
201
- "7": "fillConnexityCategoryVariables",
202
- "9": "fillNextagCategoryVariables",
203
- "13": "fillAvantLinkCategoryVariables",
204
- "14": "fillZboziCategoryVariables"
205
- };
206
- if (c.hasOwnProperty(b)) {
207
- window[c[b]](d, a)
208
- }
209
- }
210
-
211
- function tvc_displayCorrectStaticField(f, e, g, d, h, c) {
212
- var b = "";
213
- var a = tvc_restrictedStaticFields(d, h);
214
- if (a !== undefined) {
215
- if (a.length === 0) {
216
- b = tvc_staticInputField(f, e, g, c)
217
- } else {
218
- b = tvc_staticInputSelect(f, e, g, a, c)
219
- }
220
- }
221
- return b
222
- }
223
-
224
- function tvc_getAdvisedInputs(a) {
225
- var b = {
226
- "1": "woocommerceToGoogleFields",
227
- "2": "woocommerceToBingFields",
228
- "3": "woocommerceToBeslisFields",
229
- "4": "woocommerceToPricegrabberFields",
230
- "5": "woocommerceToShoppingFields",
231
- "6": "woocommerceToAmazonFields",
232
- "7": "woocommerceToConnexityFields",
233
- "9": "woocommerceToNextagFields",
234
- "10": "woocommerceToKieskeurigFields",
235
- "11": "woocommerceToVergelijkFields",
236
- "12": "woocommerceToKoopjespakkerFields",
237
- "13": "woocommerceToAvantLinkFields",
238
- "14": "woocommerceToZboziFields",
239
- "15": "woocommerceToComconFields",
240
- "16": "woocommerceToFacebookFields",
241
- "17": "woocommerceToBolFields",
242
- "18": "woocommerceToAdtractionFields",
243
- "19": "woocommerceToRicardoFields",
244
- "20": "woocommerceToeBayFields",
245
- "21": "woocommerceToShopzillaFields",
246
- "22": "woocommerceToConvertoFields",
247
- "23": "woocommerceToIdealoFields",
248
- "24": "woocommerceToHeurekaFields",
249
- "25": "woocommerceToPepperjamFields",
250
- "26": "woocommerceToGalaxusProductDataFields",
251
- "27": "woocommerceToGalaxusProductStockPricingFields",
252
- "28": "woocommerceToGalaxusProductPropertiesFields"
253
- };
254
- if (b.hasOwnProperty(a)) {
255
- return window[b[a]]()
256
- } else {
257
- return []
258
- }
259
- }
260
-
261
- function tvc_setOutputAttributeLevels(b, c, a) {
262
- switch (b) {
263
- case"1":
264
- return setGoogleOutputAttributeLevels(c, a);
265
- case"2":
266
- return setBingOutputAttributeLevels(c);
267
- case"3":
268
- return setBeslisOutputAttributeLevels(c);
269
- case"4":
270
- return setPricegrabberOutputAttributeLevels(c);
271
- case"5":
272
- return setShoppingOutputAttributeLevels(c);
273
- case"6":
274
- return setAmazonOutputAttributeLevels(c);
275
- case"7":
276
- return setConnexityOutputAttributeLevels(c);
277
- case"9":
278
- return setNextagOutputAttributeLevels(c);
279
- case"10":
280
- return setKieskeurigOutputAttributeLevels(c);
281
- case"11":
282
- return setVergelijkOutputAttributeLevels(c);
283
- case"13":
284
- return setAvantLinkOutputAttributeLevels(c, a);
285
- case"14":
286
- return setZboziOutputAttributeLevels(c, a);
287
- case"26":
288
- return setGalaxusProductDataAttributeLevels(c, a);
289
- case"27":
290
- return setGalaxusProductStockPricingAttributeLevels(c);
291
- case"28":
292
- return setGalaxusProductPropertiesAttributeLevels(c);
293
- case"996":
294
- return setTsvOutputAttributeLevels(c);
295
- case"997":
296
- return setTxtOutputAttributeLevels(c);
297
- case"998":
298
- return setCsvOutputAttributeLevels(c);
299
- case"999":
300
- return setOutputAttributeLevels(c);
301
- default:
302
- return c
303
- }
304
- }
305
-
306
- function tvc_restrictedStaticFields(a, c) {
307
- var b = {
308
- "1": "googleStaticFieldOptions",
309
- "2": "bingStaticFieldOptions",
310
- "3": "beslisStaticFieldOptions",
311
- "4": "pricegrabberStaticFieldOptions",
312
- "5": "shoppingStaticFieldOptions",
313
- "6": "amazonStaticFieldOptions",
314
- "7": "connexityStaticFieldOptions",
315
- "9": "nextagStaticFieldOptions",
316
- "10": "kieskeurigStaticFieldOptions",
317
- "11": "vergelijkStaticFieldOptions",
318
- "12": "koopjespakkerStaticFieldOptions",
319
- "13": "avantlinkStaticFieldOptions",
320
- "14": "zboziStaticFieldOptions",
321
- "15": "comconStaticFieldOptions",
322
- "16": "facebookStaticFieldOptions",
323
- "17": "bolStaticFieldOptions",
324
- "18": "adtractionStaticFieldOptions",
325
- "19": "ricardoStaticFieldOptions",
326
- "20": "ebayStaticFieldOptions",
327
- "21": "shopzillaStaticFieldOptions",
328
- "23": "idealoStaticFieldOptions",
329
- "25": "pepperjamStaticFieldOptions",
330
- "26": "galaxusProductDataStaticFieldOptions",
331
- "27": "galaxusProductStockPricingStaticFieldOptions",
332
- "28": "galaxusProductPropertiesStaticFieldOptions"
333
- };
334
- if (b.hasOwnProperty(a)) {
335
- return window[b[a]](c)
336
- } else {
337
- return []
338
- }
339
- }
340
-
341
- function tvc_setChannelRelatedPresets(a, b) {
342
- switch (b) {
343
- case"1":
344
- if (a.field_label === "condition" || a.field_label === "availability" || a.field_label === "identifier_exists" || a.field_label === "adult" || a.field_label === "price") {
345
- if (!a.value) {
346
- a.value = setGooglePresets(a.field_label)
347
- }
348
- }
349
- break;
350
- case"2":
351
- if (a.field_label === "seller_name") {
352
- if (!a.value) {
353
- a.value = setBingPresets(a.field_label)
354
- }
355
- }
356
- break;
357
- case"3":
358
- if (a.field_label === "Conditie" || a.field_label === "Levertijd") {
359
- if (!a.value) {
360
- a.value = setBeslisPresets(a.field_label)
361
- }
362
- }
363
- break;
364
- case"13":
365
- if (a.field_label === "condition" || a.field_label === "availability" || a.field_label === "identifier_exists") {
366
- if (!a.value) {
367
- a.value = setAvantLinkPresets(a.field_label)
368
- }
369
- }
370
- break;
371
- case"14":
372
- if (a.field_label === "EROTIC" || a.field_label === "VISIBILITY") {
373
- if (!a.value) {
374
- a.value = setZboziPresets(a.field_label)
375
- }
376
- }
377
- break;
378
- case"15":
379
- if (a.field_label === "Delivery time") {
380
- if (!a.value) {
381
- a.value = setComconPresets(a.field_label)
382
- }
383
- }
384
- break;
385
- case"16":
386
- if (a.field_label === "condition" || a.field_label === "availability" || a.field_label === "price") {
387
- if (!a.value) {
388
- a.value = setFacebookPresets(a.field_label)
389
- }
390
- }
391
- break;
392
- case"17":
393
- if (a.field_label === "Condition" || a.field_label === "Deliverycode") {
394
- if (!a.value) {
395
- a.value = setBolPresets(a.field_label)
396
- }
397
- }
398
- break;
399
- case"18":
400
- if (a.field_label === "instock") {
401
- if (!a.value) {
402
- a.value = setAdtractionPresets(a.field_label)
403
- }
404
- }
405
- break;
406
- case"19":
407
- if (a.field_label === "Descriptions[0].LanguageNr" || a.field_label === "Increment" || a.field_label === "AvailabilityId" || a.field_label === "Condition") {
408
- if (!a.value) {
409
- a.value = setRicardoPresets(a.field_label)
410
- }
411
- }
412
- break;
413
- case"20":
414
- break;
415
- case"21":
416
- if (a.field_label === "Availability" || a.field_label === "Condition") {
417
- if (!a.value) {
418
- a.value = setShopzillaPresets(a.field_label)
419
- }
420
- }
421
- break;
422
- case"22":
423
- if (a.field_label === "Availability" || a.field_label === "Condition") {
424
- if (!a.value) {
425
- a.value = setShopzillaPresets(a.field_label)
426
- }
427
- }
428
- break;
429
- case"24":
430
- if ("ITEM_TYPE" === a.field_label) {
431
- if (!a.value) {
432
- a.value = setHeurekaPresets(a.field_label)
433
- }
434
- }
435
- break;
436
- case"25":
437
- if ("ITEM_TYPE" === a.discontinued) {
438
- if (!a.value) {
439
- a.value = setPepperjamPresets(a.field_label)
440
- }
441
- }
442
- break;
443
- case"26":
444
- if ("ITEM_TYPE" === a.discontinued) {
445
- if (!a.value) {
446
- a.value = setGalaxusProductDataPresets(a.field_label)
447
- }
448
- }
449
- break;
450
- case"27":
451
- if ("ITEM_TYPE" === a.discontinued) {
452
- if (!a.value) {
453
- a.value = setGalaxusProductStockPricingPresets(a.field_label)
454
- }
455
- }
456
- break;
457
- case"28":
458
- if ("ITEM_TYPE" === a.discontinued) {
459
- if (!a.value) {
460
- a.value = setGalaxusProductPropertiesPresets(a.field_label)
461
- }
462
- }
463
- break;
464
- default:
465
- break
466
- }
467
- }
468
-
469
- function tvc_requiresLanguageInput(a) {
470
- switch (a) {
471
- case"26":
472
- return true;
473
- default:
474
- return false
475
- }
476
- }
477
-
478
- function tvc_isCustomChannel(a) {
479
- switch (a) {
480
- case"996":
481
- case"997":
482
- case"998":
483
- case"999":
484
- return true;
485
- default:
486
- return false
487
- }
488
- }
489
-
490
- function setAttributeStatus(b, a) {
491
- if (b > 0 && b < 3) {
492
- return true
493
- }
494
- if (a) {
495
- return true
496
- }
497
- return false
498
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/js/tvc_feedhandling.js DELETED
@@ -1,144 +0,0 @@
1
- "use strict";
2
- var _feedHolder;
3
-
4
- function tvc_getFeedAttributes( feedId, channel, callback ) {
5
- tvc_getOutputFields(
6
- feedId,
7
- channel,
8
- function( fields ) {
9
- if ( fields !== '0' ) {
10
- callback( JSON.parse( fields ) );
11
- } else {
12
- callback( [] ); // free feed format selected
13
- }
14
- }
15
- );
16
- }
17
-
18
- function tvc_customSourceFields( sourceId, callback ) {
19
- tvc_getSourceFields(
20
- sourceId,
21
- function( fields ) {
22
- callback( fields && fields !== '0' ? JSON.parse( fields ) : '0' );
23
- }
24
- );
25
- }
26
-
27
- function tvc_mainFeedFilters( feedId, callback ) {
28
-
29
- tvc_getMainFeedFilters(
30
- feedId,
31
- function( filters ) {
32
- callback( filters !== '0' ? JSON.parse( filters ) : null );
33
- }
34
- );
35
- }
36
-
37
- /**
38
- * Fills the attributes of the current _feed object with data from the outputs var
39
- *
40
- * @param {array} outputs containing output strings outputs
41
- * @param {string} channel id
42
- * @param {int} source id
43
- */
44
- function tvc_addFeedAttributes( outputs, channel, source ) {
45
-
46
- var inputs = tvc_getAdvisedInputs( channel );
47
- var i = 0;
48
-
49
- _feedHolder.clearAllAttributes();
50
-
51
- for ( var field in outputs ) {
52
-
53
- var outputTitle = outputs[ field ][ 'field_label' ];
54
- var activity = true;
55
-
56
- /**
57
- * deactivate if this attribute is not required and has no value
58
- */
59
- if ( parseInt( outputs[ field ][ 'category_id' ] ) > 2 && outputs[ field ][ 'value' ] === '' ) {
60
- activity = false;
61
- } else if ( outputs[ field ][ 'category_id' ] === '0' ) {
62
- activity = false;
63
- } else if ( parseInt( outputs[ field ][ 'category_id' ] ) > 2 && outputs[ field ][ 'value' ] === undefined ) {
64
- activity = false;
65
- }
66
-
67
- tvc_setChannelRelatedPresets( outputs[ field ], channel );
68
-
69
- _feedHolder.addAttribute( i, outputTitle, inputs[ outputTitle ], outputs[ field ][ 'value' ], outputs[ field ][ 'category_id' ], activity, 0, 0, 0 );
70
-
71
- i ++;
72
- }
73
- }
74
-
75
- function tvc_saveFeedToDb( feed, callback ) {
76
-
77
- /**
78
- * store the feed in a local variable
79
- */
80
- _feedHolder = feed;
81
-
82
- var feedDataSelectorTable = jQuery( '#tvc-ajax-feed-data-to-database-conversion-array' ).text(); // get the data from the edit feed form code
83
- var feedDataToStore = tvc_getFeedDataToStore( feedDataSelectorTable );
84
- var metaToStore = tvc_filterActiveMetaData( _feedHolder[ 'attributes' ], _feedHolder[ 'categoryMapping' ] );
85
- var feedFilter = _feedHolder[ 'feedFilter' ];
86
-
87
- tvc_updateFeedToDb(
88
- feedDataToStore,
89
- metaToStore,
90
- feedFilter,
91
- function( response ) {
92
- callback( response.trim() );
93
- }
94
- );
95
- }
96
-
97
- /**
98
- * Gets the full metaData array from the _feedHolder and returns a tvc_attributeMeta object with keys and values from only the active ones.
99
- * Also stores the category mapping array in a tvc_attributeMeta object.
100
- *
101
- * @param {Array} metaData
102
- * @param {Array} categoryMapping
103
- * @returns {Array} array with tvc_attributeMeta objects containing meta keys and meta values
104
- */
105
- function tvc_filterActiveMetaData( metaData, categoryMapping ) {
106
-
107
- // make a storage place to store the changed attributes
108
- var activeMeta = [];
109
-
110
- for ( var i = 0; i < metaData.length; i ++ ) {
111
-
112
- // if the advised source is not equal to the advised inputs, the user has selected his own input so this needs to be stored
113
- if ( metaData[ i ][ 'value' ] !== undefined && metaData[ i ][ 'value' ] !== '' && metaData[ i ][ 'isActive' ] === true ) {
114
-
115
- // store the meta data in a Tvc_AttributeMeta object
116
- activeMeta.push( new Tvc_AttributeMeta( metaData[ i ][ 'fieldName' ], metaData[ i ][ 'value' ] ) );
117
- }
118
- }
119
-
120
- // also store the category mapping as meta data
121
- if ( categoryMapping.length > 0 ) {
122
-
123
- activeMeta.push( new Tvc_AttributeMeta( 'category_mapping', categoryMapping ) );
124
- }
125
-
126
- return activeMeta;
127
- }
128
-
129
- function tvc_getFeedDataToStore( feedDataSelector ) {
130
- var selector = JSON.parse( feedDataSelector );
131
- var result = [];
132
-
133
- for (var i = 0; i < selector.length; i++) {
134
- var dataItem = {
135
- 'name' : selector[i]['db'],
136
- 'value' : undefined !== _feedHolder[ selector[i]['feed'] ] ? _feedHolder[ selector[i]['feed'] ] : '',
137
- 'type' : selector[i]['type']
138
- };
139
-
140
- result.push( dataItem );
141
- }
142
-
143
- return result;
144
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/js/tvc_feedhandling.min.js DELETED
@@ -1,85 +0,0 @@
1
- var _feedHolder;
2
-
3
- function tvc_getFeedAttributes(a, b, c) {
4
- tvc_getOutputFields(a, b, function (d) {
5
- if (d !== "0") {
6
- c(JSON.parse(d))
7
- } else {
8
- c([])
9
- }
10
- })
11
- }
12
-
13
- function tvc_customSourceFields(a, b) {
14
- tvc_getSourceFields(a, function (c) {
15
- b(c && c !== "0" ? JSON.parse(c) : "0")
16
- })
17
- }
18
-
19
- function tvc_mainFeedFilters(a, b) {
20
- tvc_getMainFeedFilters(a, function (c) {
21
- b(c !== "0" ? JSON.parse(c) : null)
22
- })
23
- }
24
-
25
- function tvc_addFeedAttributes(h, d, e) {
26
- var a = tvc_getAdvisedInputs(d);
27
- var c = 0;
28
- _feedHolder.clearAllAttributes();
29
- for (var g in h) {
30
- var b = h[g]["field_label"];
31
- var f = true;
32
- if (parseInt(h[g]["category_id"]) > 2 && h[g]["value"] === "") {
33
- f = false
34
- } else {
35
- if (h[g]["category_id"] === "0") {
36
- f = false
37
- } else {
38
- if (parseInt(h[g]["category_id"]) > 2 && h[g]["value"] === undefined) {
39
- f = false
40
- }
41
- }
42
- }
43
- tvc_setChannelRelatedPresets(h[g], d);
44
- _feedHolder.addAttribute(c, b, a[b], h[g]["value"], h[g]["category_id"], f, 0, 0, 0);
45
- c++
46
- }
47
- }
48
-
49
- function tvc_saveFeedToDb(d, f) {
50
- _feedHolder = d;
51
- var c = jQuery("#tvc-ajax-feed-data-to-database-conversion-array").text();
52
- var a = tvc_getFeedDataToStore(c);
53
- var b = tvc_filterActiveMetaData(_feedHolder.attributes, _feedHolder.categoryMapping);
54
- var e = _feedHolder.feedFilter;
55
- tvc_updateFeedToDb(a, b, e, function (g) {
56
- f(g.trim())
57
- })
58
- }
59
-
60
- function tvc_filterActiveMetaData(b, d) {
61
- var a = [];
62
- for (var c = 0; c < b.length; c++) {
63
- if (b[c]["value"] !== undefined && b[c]["value"] !== "" && b[c]["isActive"] === true) {
64
- a.push(new Tvc_AttributeMeta(b[c]["fieldName"], b[c]["value"]))
65
- }
66
- }
67
- if (d.length > 0) {
68
- a.push(new Tvc_AttributeMeta("category_mapping", d))
69
- }
70
- return a
71
- }
72
-
73
- function tvc_getFeedDataToStore(e) {
74
- var b = JSON.parse(e);
75
- var a = [];
76
- for (var d = 0; d < b.length; d++) {
77
- var c = {
78
- name: b[d]["db"],
79
- value: undefined !== _feedHolder[b[d]["feed"]] ? _feedHolder[b[d]["feed"]] : "",
80
- type: b[d]["type"]
81
- };
82
- a.push(c)
83
- }
84
- return a
85
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/js/tvc_general-functions.js DELETED
@@ -1,102 +0,0 @@
1
- "use strict";
2
- /**
3
- * Finds the index of an object with a specific value in an array of objects
4
- *
5
- * @param {array} theArray with objects
6
- * @param {string} searchTerm
7
- * @param {string} arrayProperty
8
- * @returns {int} the index of the object or false of its not in the array
9
- */
10
- function tvc_arrayObjectIndexOf( theArray, searchTerm, arrayProperty ) {
11
- for ( var i = 0, len = theArray.length; i < len; i ++ ) {
12
- if ( theArray[ i ][ arrayProperty ] === searchTerm ) {
13
- return i; // return the index
14
- }
15
- }
16
-
17
- return - 1; // return false if object could not be found
18
- }
19
-
20
- /**
21
- * Get a specific variable from the current url
22
- *
23
- * @param {string} key
24
- * @returns {String}
25
- */
26
- function tvc_getUrlVariable( key ) {
27
- var result = '';
28
- var url = window.location.search.substring( 1 );
29
- var params = url.split( '&' );
30
-
31
- for ( var i = 0; i < params.length; i ++ ) {
32
- var param = params[ i ].split( '=' );
33
-
34
- if ( param[ 0 ] === key ) {
35
- result = param[ 1 ];
36
- }
37
- }
38
-
39
- return result;
40
- }
41
-
42
- /**
43
- * Counts the number of items in an object
44
- *
45
- * @param {object} object
46
- * @returns {int} number of items in object
47
- */
48
- function tvc_countObjectItems( object ) {
49
- var count = 0;
50
-
51
- for ( var k in object ) {
52
- if ( object.hasOwnProperty( k ) ) {
53
- count ++;
54
- }
55
- }
56
-
57
- return count;
58
- }
59
-
60
- /**
61
- * Returns true if the object is empty
62
- *
63
- * @param {object} object
64
- * @returns {Boolean} true if object is empty
65
- */
66
- // TODO: Er bestaat ook een jQuery.isEmptyObject() functie. In hoeverre is die bruikbaar ter vervanging van onderstaande functie?
67
- function tvc_isEmptyQueryObject( object ) {
68
- // null and undefined are "empty"
69
- if ( object === null ) {
70
- return true;
71
- }
72
-
73
- // Assume if it has a length property with a non-zero value
74
- // that that property is correct.
75
- if ( object.length > 0 ) {
76
- return false;
77
- }
78
- if ( object.length === 0 ) {
79
- return true;
80
- }
81
-
82
- // Otherwise, does it have any properties of its own?
83
- // Note that this doesn't handle
84
- // toString and valueOf enumeration bugs in IE < 9
85
- for ( var key in object ) {
86
- //if ( hasOwnProperty.call( object, key ) )
87
- if ( object.hasOwnProperty( key ) ) {
88
- return false;
89
- }
90
- }
91
- return true;
92
- }
93
-
94
- /**
95
- * Takes a string with a number at the end and increments the number
96
- *
97
- * @param {String} stringWithNumber
98
- * @returns {String} with incremented number
99
- */
100
- function tvc_incrementLast( stringWithNumber ) {
101
- return stringWithNumber.replace( /[0-9]+(?!.*[0-9])/, parseInt( stringWithNumber.match( /[0-9]+(?!.*[0-9])/ ), 10 ) + 1 );
102
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/js/tvc_general-functions.min.js DELETED
@@ -1 +0,0 @@
1
- function tvc_arrayObjectIndexOf(d,c,b){for(var e=0,a=d.length;e<a;e++){if(d[e][b]===c){return e}}return -1}function tvc_getUrlVariable(d){var a="";var b=window.location.search.substring(1);var f=b.split("&");for(var c=0;c<f.length;c++){var e=f[c].split("=");if(e[0]===d){a=e[1]}}return a}function tvc_countObjectItems(b){var c=0;for(var a in b){if(b.hasOwnProperty(a)){c++}}return c}function tvc_isEmptyQueryObject(a){if(a===null){return true}if(a.length>0){return false}if(a.length===0){return true}for(var b in a){if(a.hasOwnProperty(b)){return false}}return true}function tvc_incrementLast(a){return a.replace(/[0-9]+(?!.*[0-9])/,parseInt(a.match(/[0-9]+(?!.*[0-9])/),10)+1)};
 
includes/application/js/tvc_logic.js DELETED
@@ -1,454 +0,0 @@
1
-
2
- "use strict";
3
- /*global tvc_feed_settings_form_vars, tvc_manage_channels_vars, tvc_feed_list_form_vars */
4
- var _feedHolder;
5
-
6
- function tvc_editCategories() {
7
- var cat_lvl_selector = jQuery( '#category-selector-lvl' );
8
-
9
- if ( ! tvc_isCustomChannel( _feedHolder[ 'channel' ] ) ) {
10
- var currentCategories = _feedHolder[ 'mainCategory' ].split( ' > ' );
11
- var cat_length = currentCategories.length;
12
- var cat_selectors = jQuery( '#lvl_' + ( cat_length ) ).html() !== '' ? cat_length + 1 : cat_length;
13
-
14
- jQuery( '#selected-categories' ).hide();
15
- jQuery( '#lvl_0' ).prop( 'disabled', false );
16
-
17
- for ( var i = 0; i < cat_selectors; i ++ ) {
18
- var levelElement = jQuery( '#lvl_' + i );
19
-
20
- if ( ! currentCategories[ i ] ) {
21
- levelElement.val( '0' );
22
- }
23
- levelElement.show();
24
- }
25
- } else {
26
- // as the user selected a free format, just show a text input control
27
- cat_lvl_selector.html(
28
- tvc_freeCategoryInputCntrl(
29
- 'default',
30
- _feedHolder[ 'feedId' ],
31
- _feedHolder[ 'mainCategory' ]
32
- )
33
- );
34
- cat_lvl_selector.prop( 'disabled', false );
35
- }
36
- }
37
-
38
- function tvc_generateFeed() {
39
- if ( jQuery( '#file-name' ).val() !== '' ) {
40
- if ( _feedHolder[ 'categoryMapping' ] && _feedHolder[ 'categoryMapping' ].length > 0 ) {
41
- disableFeedActionButtons();
42
- tvc_generateAndSaveFeed();
43
- } else {
44
- var userInput = confirm(
45
- tvc_feed_settings_form_vars.no_category_selected
46
- );
47
-
48
- if ( userInput === true ) {
49
- disableFeedActionButtons();
50
- tvc_generateAndSaveFeed();
51
- }
52
- }
53
- } else {
54
- jQuery( '#alert-message' ).
55
- html( '<p>' + tvc_feed_settings_form_vars.file_name_required + '</p>' );
56
- jQuery( '#success-message' ).show();
57
- }
58
- }
59
-
60
- function tvc_saveFeedData() {
61
- if ( jQuery( '#file-name' ).val() !== '' ) {
62
- tvc_saveFeed();
63
- } else {
64
- jQuery( '#alert-message' ).
65
- html( '<p>' + tvc_feed_settings_form_vars.file_name_required + '</p>' );
66
- jQuery( '#success-message' ).show();
67
- }
68
- }
69
-
70
- function getCombinedValue( rowId, sourceLevel ) {
71
- var c = 1;
72
- var combinedValue = '';
73
- var oldValue = _feedHolder.getCombinedOutputValue( rowId, sourceLevel );
74
-
75
- while ( jQuery( '#combined-input-field-cntrl-' + rowId + '-' + sourceLevel + '-' + c ).
76
- val() ) {
77
- var idString = rowId + '-' + sourceLevel + '-' + c;
78
-
79
- var selectedValue = jQuery( '#combined-input-field-cntrl-' + idString ).
80
- val();
81
-
82
- combinedValue += c > 1 ?
83
- jQuery( '#combined-separator-cntrl-' + idString ).val() + '#' :
84
- '';
85
-
86
- if ( selectedValue !== 'static' ) {
87
- combinedValue += selectedValue !== 'select' ?
88
- selectedValue + '|' :
89
- '';
90
- } else if ( jQuery( '#static-input-field-' + idString ).val() ) {
91
- combinedValue += selectedValue + '#' + jQuery( '#static-input-field-' + idString ).val() + '|';
92
- } else {
93
- combinedValue = oldValue + '|';
94
- break; // if one of the static input fields is still empty, return the old value
95
- }
96
-
97
- c ++;
98
- }
99
-
100
- combinedValue = combinedValue.substring( 0, combinedValue.length - 1 ); // remove the last |
101
-
102
- return c > 1 ? combinedValue : false; // need at least two fields to be valid
103
- }
104
-
105
- function tvc_staticValueChanged( id, level, combinationLevel ) {
106
- if ( combinationLevel > 0 ) { // the static field resides in a combination source
107
- tvc_changedCombinedOutput( id, level, combinationLevel );
108
- } else {
109
- // store the change in the feed
110
- tvc_setStaticValue( id, level, combinationLevel );
111
-
112
- // when the identifier_exists static value has changed, the level of a few attributes should be changed
113
- if ( id === 34 ) {
114
- tvc_setIdentifierExistsDependancies();
115
- }
116
- }
117
- }
118
-
119
- function tvc_changedOutputSelection( level ) {
120
- var outputFieldControlElement = jQuery( '#output-field-cntrl-' + level );
121
-
122
- if ( outputFieldControlElement.val() !== 'no-value' ) {
123
- tvc_activateOptionalFieldRow( level, outputFieldControlElement.val() );
124
- }
125
- }
126
-
127
- function tvc_hasExtraSourceRow( nrOfSources, value ) {
128
- if ( value.length > 0 ) {
129
- return value[ nrOfSources - 1 ].hasOwnProperty( 'c' );
130
- } else {
131
- return false;
132
- }
133
- }
134
-
135
- function tvc_changedCustomOutputTitle() {
136
- var title = jQuery( '#custom-output-title-input' ).val();
137
-
138
- if ( title ) {
139
- tvc_activateCustomFieldRow( title );
140
- }
141
- }
142
-
143
- function tvc_deleteSpecificFeed( id, title ) {
144
- var userInput = confirm( tvc_feed_list_form_vars.confirm_delete_feed.replace( '%feedname%', title ) );
145
-
146
- if ( userInput === true ) {
147
- tvc_deleteFeed( id, title );
148
- console.log( 'File ' + title + ' removed from server.' );
149
- tvc_show_success_message( tvc_feed_list_form_vars.feed_removed.replace( '%feedname%', title ) );
150
- parent.location='admin.php?page=tvc-product-feed-manager&tab=feed-list';
151
- }
152
- }
153
-
154
- function tvc_alertRemoveChannel() {
155
- var userInput = confirm( tvc_manage_channels_vars.confirm_removing_channel );
156
- if ( true !== userInput ) {
157
- return false;
158
- }
159
- }
160
-
161
- function tvc_valueOptionChanged( rowId, sourceLevel, valueEditorLevel ) {
162
- var type = jQuery( '#value-options-' + rowId + '-' + sourceLevel + '-' + valueEditorLevel ).val();
163
-
164
- //var selectorCode = tvc_getCorrectValueSelector( rowId, sourceLevel, valueEditorLevel, type, '', '' );
165
- var selectorCode = tvc_getCorrectValueSelector( rowId, sourceLevel, 0, type, '', '' );
166
-
167
- jQuery( '#value-editor-input-span-' + rowId + '-' + sourceLevel + '-' + valueEditorLevel ).html( selectorCode );
168
- }
169
-
170
- function tvc_getCorrectValueSelector(
171
- rowId, sourceLevel, valueEditorLevel, type, value, endValue ) {
172
- var selectorCode = '';
173
-
174
- // TODO: the type is now based on the value and on the text. Should be only value as this makes it
175
- // easier to work with different languages
176
- switch ( type ) {
177
- case '0':
178
- case 'change nothing':
179
- tvc_valueInputOptionsChanged( rowId, sourceLevel, valueEditorLevel ); // save the value in meta as there is no input field required
180
- selectorCode = '';
181
- break;
182
-
183
- case '1':
184
- case 'overwrite':
185
- selectorCode = tvc_valueOptionsSingleInput( rowId, sourceLevel, valueEditorLevel, value );
186
- break;
187
-
188
- case '2':
189
- case 'replace':
190
- selectorCode = tvc_valueOptionsReplaceInput( rowId, sourceLevel, valueEditorLevel, value, endValue );
191
- break;
192
-
193
- case '3':
194
- case 'remove':
195
- case '4':
196
- case 'add prefix':
197
- case '5':
198
- case 'add suffix':
199
- selectorCode = tvc_valueOptionsSingleInputValue( rowId, sourceLevel, valueEditorLevel, value );
200
- break;
201
-
202
- case '6':
203
- case 'recalculate':
204
- selectorCode = tvc_valueOptionsRecalculate( rowId, sourceLevel, valueEditorLevel, value, endValue );
205
- break;
206
-
207
- case '7':
208
- case 'convert to child-element':
209
- selectorCode = tvc_valueOptionsElementInput( rowId, sourceLevel, valueEditorLevel, value );
210
- break;
211
-
212
- default:
213
- selectorCode = tvc_valueOptionsSingleInput( rowId, sourceLevel, valueEditorLevel, value );
214
- break;
215
- }
216
-
217
- return selectorCode;
218
- }
219
-
220
- function tvc_deactivateFeed( id ) {
221
- tvc_switchFeedStatus(
222
- id,
223
- function( result ) {
224
- tvc_updateFeedRowStatus( id, parseInt( result ) );
225
- }
226
- );
227
- }
228
-
229
- function tvc_duplicateFeed( id, feedName ) {
230
- tvc_duplicateExistingFeed(
231
- id,
232
- function( result ) {
233
- if ( result ) {
234
- tvc_show_success_message( tvc_feed_list_form_vars.added_feed_copy.replace( '%feedname%', feedName ) );
235
- }
236
- }
237
- );
238
- }
239
-
240
- function tvc_regenerateFeed( feedId ) {
241
- // when there's already a feed processing, then the status should be "in queue", else status should set to "processing"
242
- var feedStatus = tvcQueueStringIsEmpty() ? 3 : 4;
243
-
244
- tvcAddToQueueString( feedId );
245
-
246
- tvc_showFeedSpinner();
247
-
248
- tvc_updateFeedRowStatus( feedId, feedStatus );
249
-
250
- console.log( 'Started regenerating feed ' + feedId );
251
-
252
- tvc_updateFeedFile( feedId, function( xmlResult ) {
253
-
254
- tvc_hideFeedSpinner();
255
-
256
- console.log(xmlResult);
257
-
258
- // activate the feed list status checker to update the feed list when a status changes
259
- var checkStatus = setInterval( function(){
260
- tvc_getCurrentFeedStatus( feedId, function( statResult ) {
261
- var data = JSON.parse( statResult );
262
- if ('3' !== data[ 'status_id' ] && '4' !== data[ 'status_id' ]) {
263
- console.log( data );
264
- tvc_resetFeedStatus( data );
265
- tvc_resetFeedList();
266
- clearInterval( checkStatus );
267
- tvcRemoveFromQueueString( feedId );
268
- }
269
- } );
270
- }, 10000 );
271
- })
272
- }
273
-
274
- function tvc_viewFeed( url ) {
275
- if ( -1 !== url.indexOf( 'http' ) ) { // Filter out duplicate feeds that have not been generated yet.
276
- window.open(url);
277
- } else {
278
- alert( tvc_feed_list_form_vars.feed_not_generated );
279
- }
280
- }
281
-
282
- function tvc_addRowValueEditor(
283
- rowId, sourceLevel, valueEditorLevel, values ) {
284
- // add the change values controls
285
- jQuery( '#end-row-id-' + rowId ).remove();
286
- jQuery( '#row-' + rowId ).
287
- append( tvc_valueEditor( rowId, sourceLevel, valueEditorLevel, values ) + tvc_endrow( rowId ) );
288
-
289
- // and remove the edit values control
290
- jQuery( '#value-editor-input-query-add-span-' + rowId + '-' + sourceLevel + '-' + valueEditorLevel ).remove();
291
- }
292
-
293
- /**
294
- * Takes an array of words and puts them together in a camel structure way.
295
- *
296
- * @param {array} stringArray contains the words from which the string should be generated
297
- *
298
- * @returns {string} camel structured string
299
- */
300
- function tvc_convertToCamelCase( stringArray ) {
301
- // first word should remain lowercase
302
- var result = stringArray[ 0 ].toLowerCase();
303
-
304
- for ( var i = 1; i < stringArray.length; i++ ) {
305
- result += stringArray[ i ].charAt( 0 ).toUpperCase() + stringArray[ i ].slice( 1 );
306
- }
307
-
308
- return result;
309
- }
310
-
311
- function tvc_addValueEditorQuery( rowId, sourceLevel, conditionLevel ) {
312
- if ( tvc_changeValueIsFilled( rowId, sourceLevel, conditionLevel ) ) {
313
- if ( tvc_queryIsFilled(
314
- rowId,
315
- (
316
- sourceLevel - 1
317
- ),
318
- 1
319
- )
320
- ) {
321
- tvc_showEditValueQuery( rowId, sourceLevel, conditionLevel, true );
322
- } else {
323
- alert( tvc_feed_settings_form_vars.query_requirements );
324
- }
325
- } else {
326
- alert( tvc_feed_settings_form_vars.first_fill_in_change_value );
327
- }
328
- }
329
-
330
- function tvc_queryStringToQueryObject( queryString ) {
331
- var queryObject = {};
332
-
333
- if ( queryString ) {
334
- for ( var key in queryString ) {
335
- queryObject = tvc_convertQueryStringToQueryObject( queryString[ key ] );
336
- }
337
- }
338
-
339
- return queryObject;
340
- }
341
-
342
- function tvc_valueStringToValueObject( valueString ) {
343
- var valueObject = {};
344
-
345
- if ( valueString ) {
346
- for ( var key in valueString ) {
347
- // do not process the query part of the string
348
- if ( key !== 'q' ) {
349
- valueObject = tvc_convertValueStringToValueObject( valueString[ key ] );
350
- }
351
- }
352
- }
353
-
354
- return valueObject;
355
- }
356
-
357
- function tvc_convertQueryStringToQueryObject( queryString ) {
358
- var queryObject = {};
359
-
360
- var stringSplit = queryString.split( '#' );
361
-
362
- if ( stringSplit[ 0 ] === '1' || stringSplit[ 0 ] === '2' ) {
363
- queryObject.preCondition = stringSplit[ 0 ];
364
- } else {
365
- queryObject.preCondition = '0';
366
- }
367
-
368
- queryObject.source = stringSplit[ 1 ];
369
- queryObject.condition = stringSplit[ 2 ];
370
- queryObject.value = stringSplit[ 3 ] ? stringSplit[ 3 ] : '';
371
- queryObject.endValue = stringSplit[ 5 ] ? stringSplit[ 5 ] : '';
372
-
373
- return queryObject;
374
- }
375
-
376
- function tvc_resortObject( object ) {
377
- var result = [];
378
- var i = 1;
379
-
380
- // re-sort the conditions
381
- for ( var element in object ) {
382
- var o = {};
383
- for ( var key in object[ element ] ) {
384
- if ( key !== 'q' ) { // exclude q as key
385
- o[ i ] = object[ element ][ key ];
386
- result.push( o );
387
- } else {
388
- result[ i - 1 ].q = object[ element ][ key ];
389
- }
390
- }
391
-
392
- i ++;
393
- }
394
-
395
- // don't return an empty {} string
396
- return i > 1 ? result : '';
397
- }
398
-
399
- function tvc_convertValueStringToValueObject( valueString ) {
400
- var valueObject = {};
401
- var valueSplit = valueString.split( '#' );
402
-
403
- valueObject.preCondition = valueSplit[ 0 ];
404
- valueObject.condition = valueSplit[ 1 ];
405
- valueObject.value = valueSplit[ 2 ];
406
- valueObject.endValue = valueSplit[ 3 ] ? valueSplit[ 3 ] : '';
407
-
408
- return valueObject;
409
- }
410
-
411
- function tvc_makeCleanQueryObject() {
412
- var queryObject = {};
413
-
414
- queryObject.preCondition = 'if';
415
- queryObject.source = 'select';
416
- queryObject.condition = '';
417
- queryObject.value = '';
418
- queryObject.endValue = '';
419
-
420
- return queryObject;
421
- }
422
-
423
- function tvc_makeCleanValueObject() {
424
- var valueObject = {};
425
-
426
- valueObject.preCondition = 'change';
427
- valueObject.condition = 'overwrite';
428
- valueObject.value = '';
429
- valueObject.endValue = '';
430
-
431
- return valueObject;
432
- }
433
-
434
- function tvc_addNewItemToCategoryString(
435
- level, oldString, newValue, separator ) {
436
- var categoryLevel = oldString.split( separator ).length;
437
-
438
- if ( oldString === tvc_feed_settings_form_vars.map_to_default_category || level === '0' ) {
439
- return newValue;
440
- } else {
441
- if ( categoryLevel <= level ) {
442
- return oldString + separator + newValue;
443
- } else {
444
- var pos = 0;
445
-
446
- for ( var i = 0; i < level; i ++ ) {
447
- pos = oldString.indexOf( separator, pos + 1 );
448
- var oldPart = oldString.substring( 0, pos );
449
- }
450
-
451
- return oldPart + separator + newValue;
452
- }
453
- }
454
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/js/tvc_logic.min.js DELETED
@@ -1,343 +0,0 @@
1
- var _feedHolder;
2
-
3
- function tvc_editCategories() {
4
- var d = jQuery("#category-selector-lvl");
5
- if (!tvc_isCustomChannel(_feedHolder.channel)) {
6
- var e = _feedHolder.mainCategory.split(" > ");
7
- var c = e.length;
8
- var a = jQuery("#lvl_" + (c)).html() !== "" ? c + 1 : c;
9
- jQuery("#selected-categories").hide();
10
- jQuery("#lvl_0").prop("disabled", false);
11
- for (var b = 0; b < a; b++) {
12
- var f = jQuery("#lvl_" + b);
13
- if (!e[b]) {
14
- f.val("0")
15
- }
16
- f.show()
17
- }
18
- } else {
19
- d.html(tvc_freeCategoryInputCntrl("default", _feedHolder.feedId, _feedHolder.mainCategory));
20
- d.prop("disabled", false)
21
- }
22
- }
23
-
24
- function tvc_generateFeed() {
25
- if (jQuery("#file-name").val() !== "") {
26
- if (_feedHolder.categoryMapping && _feedHolder.categoryMapping.length > 0) {
27
- disableFeedActionButtons();
28
- tvc_generateAndSaveFeed();
29
- } else {
30
- var a = confirm(tvc_feed_settings_form_vars.no_category_selected);
31
- if (a === true) {
32
- disableFeedActionButtons();
33
- tvc_generateAndSaveFeed();
34
- }
35
- }
36
-
37
- } else {
38
- jQuery("#alert-message").html("<p>" + tvc_feed_settings_form_vars.file_name_required + "</p>");
39
- jQuery("#success-message").show()
40
- }
41
- }
42
-
43
- function tvc_saveFeedData() {
44
- if (jQuery("#file-name").val() !== "") {
45
- tvc_saveFeed()
46
- } else {
47
- jQuery("#alert-message").html("<p>" + tvc_feed_settings_form_vars.file_name_required + "</p>");
48
- jQuery("#success-message").show()
49
- }
50
- }
51
-
52
- function getCombinedValue(g, f) {
53
- var h = 1;
54
- var b = "";
55
- var d = _feedHolder.getCombinedOutputValue(g, f);
56
- while (jQuery("#combined-input-field-cntrl-" + g + "-" + f + "-" + h).val()) {
57
- var a = g + "-" + f + "-" + h;
58
- var e = jQuery("#combined-input-field-cntrl-" + a).val();
59
- b += h > 1 ? jQuery("#combined-separator-cntrl-" + a).val() + "#" : "";
60
- if (e !== "static") {
61
- b += e !== "select" ? e + "|" : ""
62
- } else {
63
- if (jQuery("#static-input-field-" + a).val()) {
64
- b += e + "#" + jQuery("#static-input-field-" + a).val() + "|"
65
- } else {
66
- b = d + "|";
67
- break
68
- }
69
- }
70
- h++
71
- }
72
- b = b.substring(0, b.length - 1);
73
- return h > 1 ? b : false
74
- }
75
-
76
- function tvc_staticValueChanged(c, b, a) {
77
- if (a > 0) {
78
- tvc_changedCombinedOutput(c, b, a)
79
- } else {
80
- tvc_setStaticValue(c, b, a);
81
- if (c === 34) {
82
- tvc_setIdentifierExistsDependancies()
83
- }
84
- }
85
- }
86
-
87
- function tvc_changedOutputSelection(b) {
88
- var a = jQuery("#output-field-cntrl-" + b);
89
- if (a.val() !== "no-value") {
90
- tvc_activateOptionalFieldRow(b, a.val())
91
- }
92
- }
93
-
94
- function tvc_hasExtraSourceRow(a, b) {
95
- if (b.length > 0) {
96
- return b[a - 1].hasOwnProperty("c")
97
- } else {
98
- return false
99
- }
100
- }
101
-
102
- function tvc_changedCustomOutputTitle() {
103
- var a = jQuery("#custom-output-title-input").val();
104
- if (a) {
105
- tvc_activateCustomFieldRow(a)
106
- }
107
- }
108
-
109
- function tvc_deleteSpecificFeed(c, b) {
110
- var a = confirm(tvc_feed_list_form_vars.confirm_delete_feed.replace("%feedname%", b));
111
- if (a === true) {
112
- tvc_deleteFeed(c, b);
113
- console.log("File " + b + " removed from server.");
114
- tvc_show_success_message(tvc_feed_list_form_vars.feed_removed.replace("%feedname%", b))
115
- parent.location='admin.php?page=tvc-product-feed-manager&tab=feed-list';
116
- }
117
- }
118
-
119
- function tvc_alertRemoveChannel() {
120
- var a = confirm(tvc_manage_channels_vars.confirm_removing_channel);
121
- if (true !== a) {
122
- return false
123
- }
124
- }
125
-
126
- function tvc_valueOptionChanged(d, c, e) {
127
- var b = jQuery("#value-options-" + d + "-" + c + "-" + e).val();
128
- var a = tvc_getCorrectValueSelector(d, c, 0, b, "", "");
129
- jQuery("#value-editor-input-span-" + d + "-" + c + "-" + e).html(a)
130
- }
131
-
132
- function tvc_getCorrectValueSelector(f, e, g, c, d, a) {
133
- var b = "";
134
- switch (c) {
135
- case"0":
136
- case"change nothing":
137
- tvc_valueInputOptionsChanged(f, e, g);
138
- b = "";
139
- break;
140
- case"1":
141
- case"overwrite":
142
- b = tvc_valueOptionsSingleInput(f, e, g, d);
143
- break;
144
- case"2":
145
- case"replace":
146
- b = tvc_valueOptionsReplaceInput(f, e, g, d, a);
147
- break;
148
- case"3":
149
- case"remove":
150
- case"4":
151
- case"add prefix":
152
- case"5":
153
- case"add suffix":
154
- b = tvc_valueOptionsSingleInputValue(f, e, g, d);
155
- break;
156
- case"6":
157
- case"recalculate":
158
- b = tvc_valueOptionsRecalculate(f, e, g, d, a);
159
- break;
160
- case"7":
161
- case"convert to child-element":
162
- b = tvc_valueOptionsElementInput(f, e, g, d);
163
- break;
164
- default:
165
- b = tvc_valueOptionsSingleInput(f, e, g, d);
166
- break
167
- }
168
- return b
169
- }
170
-
171
- function tvc_deactivateFeed(a) {
172
- tvc_switchFeedStatus(a, function (b) {
173
- tvc_updateFeedRowStatus(a, parseInt(b))
174
- })
175
- }
176
-
177
- function tvc_duplicateFeed(b, a) {
178
- tvc_duplicateExistingFeed(b, function (c) {
179
- if (c) {
180
- tvc_show_success_message(tvc_feed_list_form_vars.added_feed_copy.replace("%feedname%", a))
181
- }
182
- })
183
- }
184
-
185
- function tvc_regenerateFeed(a) {
186
- var b = tvcQueueStringIsEmpty() ? 3 : 4;
187
- tvcAddToQueueString(a);
188
- tvc_showFeedSpinner();
189
- tvc_updateFeedRowStatus(a, b);
190
- console.log("Started regenerating feed " + a);
191
- tvc_updateFeedFile(a, function (d) {
192
- tvc_hideFeedSpinner();
193
- console.log(d);
194
- var c = setInterval(function () {
195
- tvc_getCurrentFeedStatus(a, function (f) {
196
- var e = JSON.parse(f);
197
- if ("3" !== e.status_id && "4" !== e.status_id) {
198
- console.log(e);
199
- tvc_resetFeedStatus(e);
200
- tvc_resetFeedList();
201
- clearInterval(c);
202
- tvcRemoveFromQueueString(a)
203
- }
204
- })
205
- }, 10000)
206
- })
207
- }
208
-
209
- function tvc_viewFeed(a) {
210
- if (-1 !== a.indexOf("http")) {
211
- window.open(a)
212
- } else {
213
- alert(tvc_feed_list_form_vars.feed_not_generated)
214
- }
215
- }
216
-
217
- function tvc_addRowValueEditor(c, b, d, a) {
218
- jQuery("#end-row-id-" + c).remove();
219
- jQuery("#row-" + c).append(tvc_valueEditor(c, b, d, a) + tvc_endrow(c));
220
- jQuery("#value-editor-input-query-add-span-" + c + "-" + b + "-" + d).remove()
221
- }
222
-
223
- function tvc_convertToCamelCase(b) {
224
- var a = b[0].toLowerCase();
225
- for (var c = 1; c < b.length; c++) {
226
- a += b[c].charAt(0).toUpperCase() + b[c].slice(1)
227
- }
228
- return a
229
- }
230
-
231
- function tvc_addValueEditorQuery(c, b, a) {
232
- if (tvc_changeValueIsFilled(c, b, a)) {
233
- if (tvc_queryIsFilled(c, (b - 1), 1)) {
234
- tvc_showEditValueQuery(c, b, a, true)
235
- } else {
236
- alert(tvc_feed_settings_form_vars.query_requirements)
237
- }
238
- } else {
239
- alert(tvc_feed_settings_form_vars.first_fill_in_change_value)
240
- }
241
- }
242
-
243
- function tvc_queryStringToQueryObject(c) {
244
- var b = {};
245
- if (c) {
246
- for (var a in c) {
247
- b = tvc_convertQueryStringToQueryObject(c[a])
248
- }
249
- }
250
- return b
251
- }
252
-
253
- function tvc_valueStringToValueObject(b) {
254
- var a = {};
255
- if (b) {
256
- for (var c in b) {
257
- if (c !== "q") {
258
- a = tvc_convertValueStringToValueObject(b[c])
259
- }
260
- }
261
- }
262
- return a
263
- }
264
-
265
- function tvc_convertQueryStringToQueryObject(c) {
266
- var b = {};
267
- var a = c.split("#");
268
- if (a[0] === "1" || a[0] === "2") {
269
- b.preCondition = a[0]
270
- } else {
271
- b.preCondition = "0"
272
- }
273
- b.source = a[1];
274
- b.condition = a[2];
275
- b.value = a[3] ? a[3] : "";
276
- b.endValue = a[5] ? a[5] : "";
277
- return b
278
- }
279
-
280
- function tvc_resortObject(b) {
281
- var a = [];
282
- var e = 1;
283
- for (var d in b) {
284
- var f = {};
285
- for (var c in b[d]) {
286
- if (c !== "q") {
287
- f[e] = b[d][c];
288
- a.push(f)
289
- } else {
290
- a[e - 1].q = b[d][c]
291
- }
292
- }
293
- e++
294
- }
295
- return e > 1 ? a : ""
296
- }
297
-
298
- function tvc_convertValueStringToValueObject(b) {
299
- var a = {};
300
- var c = b.split("#");
301
- a.preCondition = c[0];
302
- a.condition = c[1];
303
- a.value = c[2];
304
- a.endValue = c[3] ? c[3] : "";
305
- return a
306
- }
307
-
308
- function tvc_makeCleanQueryObject() {
309
- var a = {};
310
- a.preCondition = "if";
311
- a.source = "select";
312
- a.condition = "";
313
- a.value = "";
314
- a.endValue = "";
315
- return a
316
- }
317
-
318
- function tvc_makeCleanValueObject() {
319
- var a = {};
320
- a.preCondition = "change";
321
- a.condition = "overwrite";
322
- a.value = "";
323
- a.endValue = "";
324
- return a
325
- }
326
-
327
- function tvc_addNewItemToCategoryString(h, a, f, e) {
328
- var b = a.split(e).length;
329
- if (a === tvc_feed_settings_form_vars.map_to_default_category || h === "0") {
330
- return f
331
- } else {
332
- if (b <= h) {
333
- return a + e + f
334
- } else {
335
- var g = 0;
336
- for (var c = 0; c < h; c++) {
337
- g = a.indexOf(e, g + 1);
338
- var d = a.substring(0, g)
339
- }
340
- return d + e + f
341
- }
342
- }
343
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/js/tvc_object-attribute-meta.js DELETED
@@ -1,66 +0,0 @@
1
- "use strict";
2
-
3
- function Tvc_AttributeMeta( key, value ) {
4
-
5
- this.key = key;
6
- this.value = value;
7
- }
8
-
9
- function countSources( mappingData ) {
10
-
11
- return mappingData.length > 0 ? mappingData.length : 1;
12
- }
13
-
14
- function tvc_getMappingSourceValue( mapping, sourceCounter ) {
15
-
16
- if ( mapping && mapping.length > 0 ) {
17
-
18
- if ( mapping[ sourceCounter ] && 's' in mapping[ sourceCounter ] && 'source' in mapping[ sourceCounter ].s ) {
19
-
20
- // do not return a combined value
21
- return mapping[ sourceCounter ].s[ 'source' ] !== 'combined' ? mapping[ sourceCounter ].s[ 'source' ] : null;
22
- } else {
23
- return null;
24
- }
25
- } else {
26
- return null; // mapping seems to be empty
27
- }
28
- }
29
-
30
- function tvc_getMappingCombinedValue( mapping, sourceCounter ) {
31
-
32
- if ( mapping && mapping.length > 0 ) {
33
-
34
- if ( mapping[ sourceCounter ] && 's' in mapping[ sourceCounter ] && 'source' in mapping[ sourceCounter ].s && mapping[ sourceCounter ].s[ 'source' ] === 'combined' ) {
35
- return mapping[ sourceCounter ].s[ 'f' ];
36
- } else {
37
- return null;
38
- }
39
- } else {
40
- return null; // mapping seems to be empty
41
- }
42
- }
43
-
44
- function tvc_getMappingStaticValue( mapping, sourceCounter ) {
45
-
46
- if ( mapping && mapping.length > 0 ) {
47
-
48
- if ( mapping[ sourceCounter ] && 's' in mapping[ sourceCounter ] && 'static' in mapping[ sourceCounter ].s ) {
49
- return mapping[ sourceCounter ].s[ 'static' ];
50
- } else {
51
- return null;
52
- }
53
- } else {
54
- return null; // mapping seems to be empty
55
- }
56
- }
57
-
58
- function tvc_getMappingConditions( mapping, sourceCounter ) {
59
- if ( mapping && mapping.length > 0 ) {
60
- if ( mapping[ sourceCounter ] && 'c' in mapping[ sourceCounter ] ) {
61
- return mapping[ sourceCounter ].c;
62
- }
63
- } else {
64
- return null;
65
- }
66
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/js/tvc_object-attribute-meta.min.js DELETED
@@ -1 +0,0 @@
1
- function Tvc_AttributeMeta(a,b){this.key=a;this.value=b}function countSources(a){return a.length>0?a.length:1}function tvc_getMappingSourceValue(b,a){if(b&&b.length>0){if(b[a]&&"s" in b[a]&&"source" in b[a].s){return b[a].s.source!=="combined"?b[a].s.source:null}else{return null}}else{return null}}function tvc_getMappingCombinedValue(b,a){if(b&&b.length>0){if(b[a]&&"s" in b[a]&&"source" in b[a].s&&b[a].s.source==="combined"){return b[a].s.f}else{return null}}else{return null}}function tvc_getMappingStaticValue(b,a){if(b&&b.length>0){if(b[a]&&"s" in b[a]&&"static" in b[a].s){return b[a].s["static"]}else{return null}}else{return null}}function tvc_getMappingConditions(b,a){if(b&&b.length>0){if(b[a]&&"c" in b[a]){return b[a].c}}else{return null}};
 
includes/application/js/tvc_object-feed.js DELETED
@@ -1,849 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * Feed Object
5
- *
6
- * @param {int} feedId
7
- * @param {string} title Title of the feed file
8
- * @param {int} includeVariations Does this feed include variations
9
- * @param {int} aggregator Is this an aggregator feed
10
- * @param {int} channel Channel definition
11
- * @param {string} mainCategory
12
- * @param {array} categoryMapping
13
- * @param {string} url
14
- * @param {string} dataSource Source id (for now only WooCommerce is supported)
15
- * @param {string} country Two letter country identifier
16
- * @param {string} language
17
- * @param {string} feedTitle Google's feed title text
18
- * @param {string} feedDescription Google's feed description text
19
- * @param {string} updateSchedule Updates schedule string
20
- * @param {array} feedFilter Feed filters
21
- * @param {int} status Status of the feed
22
- * @param {string} feedType Type of feed (default Product Feed Type)
23
- *
24
- * @constructor
25
- */
26
- function Feed( feedId, title, includeVariations, aggregator, channel, mainCategory,
27
- categoryMapping, url, dataSource, country, language, feedTitle,
28
- feedDescription, updateSchedule, feedFilter, status, feedType ) {
29
-
30
- this.feedId = feedId;
31
- this.title = title;
32
- this.mainCategory = mainCategory;
33
- this.categoryMapping = categoryMapping;
34
- this.includeVariations = includeVariations;
35
- this.isAggregator = aggregator;
36
- this.feedTitle = feedTitle;
37
- this.feedDescription = feedDescription;
38
- this.url = url;
39
- this.dataSource = dataSource;
40
- this.channel = channel;
41
- this.country = channel !== '3' ? country : 'NL'; // for Beslist.nl only register the Netherlands
42
- this.language = language;
43
- this.status = status;
44
- this.updateSchedule = updateSchedule;
45
- this.feedFilter = feedFilter;
46
- this.attributes = [];
47
- this.feedType = feedType;
48
-
49
- // objects functions
50
- this.addAttribute = addAttributeToFeed;
51
- this.getAttributeIdByName = getAttributeId;
52
- this.activateAttribute = activateFeedsAttribute;
53
- this.checkIfCustomNameExists = checkCustomName;
54
- this.countCombinedFields = countAttributesCombinedFields;
55
- this.deactivateAttribute = deactivateFeedsAttribute;
56
- this.deactivateCategory = deactivateCategoryMap;
57
- this.activateCategory = activateCategoryMap;
58
- this.setStaticAttributeValue = setAttributesStaticValue;
59
- this.setSourceValue = setAttributesSourceValue;
60
- this.setAlternativeSourceValue = setAlternativeAttributesSourceValue;
61
- this.setCombinedOutputValue = setAttributesCombinedOutputValue;
62
- this.setCategoryValue = setAttributesCategoryValue;
63
- this.setFeedFilter = setFeedFilterValue;
64
- this.mapCategory = mapACategory;
65
- this.changeCustomFeedCategoryMap = changeCustomCategoryMap;
66
- this.changeIncludeVariations = changeIncludeVariationsValue;
67
- this.changeAggregator = changeAggregatorValue;
68
- this.resetNrQueries = rstNrQueries;
69
- this.incrNrQueries = addNrQueries;
70
- this.decrNrQueries = substrNrQueries;
71
- this.addConditionValue = addAttributesCondition;
72
- this.addValueQueryValue = addAttributesValueQuery;
73
- this.removeAttribute = removeAttributeFromFeed;
74
- this.removeValueConditionValue = removeAttributesCondition;
75
- this.removeValueQueryValue = removeAttributesValueQuery;
76
- this.removeAlternativeSourceValue = removeAlternativeSource;
77
- this.removeCombinedOutputValue = removeAttributesCombinedOutputValue;
78
- this.removeEditValueValue = removeAttributesEditValue;
79
- this.removeFeedFilter = removeFeedFilterValue;
80
- this.getAttributesQueriesObject = getAttributesQueries;
81
- this.getCombinedOutputValue = getAttributesCombinedOutputValue;
82
- this.getValueQueryValue = getAttributesValueQueries;
83
- this.getAttributesSourceObject = getAttributesSources;
84
- this.getSourceObject = getSourceData;
85
- this.getAlternativeSourcesObject = getAlternativeSources;
86
- this.getAttributesValueObject = getAttributesValues;
87
- this.getFeedFilter = getFeedFilterValue;
88
- this.getFeedType = getFeedType;
89
- this.setMainCategory = setCategories;
90
- this.setUpdateSchedule = setSchedule;
91
- this.setCustomCategory = setFeedCustomCategory;
92
- this.setCountry = changeCountry;
93
- this.clearSourceValue = clearAttributesSourceValue;
94
- this.cleanAttributes = cleanUnusedAttributes;
95
- this.clearAllAttributes = clearAttributes;
96
- this.addChangeValue = addAttributesChangeValue;
97
- }
98
-
99
- function FeedAttribute( attributeId, fieldName, advisedSource, value, fieldLevel, isActive,
100
- nrQueries, nrValueEdits, nrValueConditions ) {
101
-
102
- this.rowId = attributeId;
103
- this.fieldName = fieldName;
104
- this.advisedSource = advisedSource;
105
- this.value = value;
106
- this.fieldLevel = fieldLevel;
107
- this.isActive = isActive;
108
- this.nrQueries = nrQueries;
109
- this.nrValueEdits = nrValueEdits;
110
- this.nrValueConditions = nrValueConditions;
111
- }
112
-
113
- function CategoryMap( shopCategory, feedCategories ) {
114
-
115
- this.shopCategoryId = shopCategory;
116
- this.feedCategories = feedCategories;
117
- }
118
-
119
- function addAttributeToFeed( attributeId, fieldName, advisedSource, value, fieldLevel, isActive, queryLevel, valuesLevel, valueConditions ) {
120
-
121
- var attribute = new FeedAttribute( attributeId, fieldName, advisedSource, value, fieldLevel, isActive, queryLevel, valuesLevel, valueConditions );
122
-
123
- this.attributes.push( attribute );
124
- }
125
-
126
- function removeAttributeFromFeed( rowId ) {
127
-
128
- for ( var i = 0; i < this.attributes.length; i ++ ) {
129
-
130
- if ( this.attributes[ i ].rowId === rowId ) {
131
-
132
- this.attributes.splice( i, 1 );
133
- }
134
- }
135
- }
136
-
137
- function mapACategory( categorySelectorId, category ) {
138
-
139
- var selectedLevel = categorySelectorId.match( /(\d+)$/ )[ 0 ]; // next level
140
- var sc = categorySelectorId.replace( '_' + selectedLevel, '' );
141
- var shopCategoryId = sc.match( /(\d+)$/ )[ 0 ];
142
- var mo = JSON.parse( this.categoryMapping );
143
-
144
- // check if this.categoryMapping already has a mapped category with this id
145
- var categoryMapForGivenId = jQuery.grep(
146
- mo,
147
- function( e ) {
148
- return e.shopCategoryId === shopCategoryId;
149
- }
150
- );
151
-
152
- if ( categoryMapForGivenId.length > 0 ) {
153
-
154
- var oldString = categoryMapForGivenId[ 0 ].feedCategories;
155
-
156
- categoryMapForGivenId[ 0 ].feedCategories = tvc_addNewItemToCategoryString(
157
- selectedLevel,
158
- oldString,
159
- category,
160
- ' > '
161
- );
162
- } else { // this category map does not exist so add a new one to the array
163
-
164
- var catMap = new CategoryMap();
165
-
166
- catMap.shopCategoryId = shopCategoryId;
167
- catMap.feedCategories = category;
168
-
169
- mo.push( catMap );
170
- }
171
-
172
- this.categoryMapping = JSON.stringify( mo );
173
- }
174
-
175
- function changeCustomCategoryMap( shopCategoryId, feedCategories ) {
176
-
177
- var mo = JSON.parse( this.categoryMapping );
178
-
179
- // check if this.categoryMapping already has a maped category with this id
180
- var categoryMapForGivenId = jQuery.grep(
181
- mo,
182
- function( e ) {
183
- return e.shopCategoryId === shopCategoryId;
184
- }
185
- );
186
-
187
- if ( categoryMapForGivenId.length > 0 ) {
188
-
189
- categoryMapForGivenId[ 0 ].feedCategories = feedCategories;
190
- } else { // this category map does not exist so add a new one to the array
191
-
192
- var catMap = new CategoryMap();
193
-
194
- catMap.shopCategoryId = shopCategoryId;
195
- catMap.feedCategories = feedCategories;
196
-
197
- mo.push( catMap );
198
- }
199
-
200
- this.categoryMapping = JSON.stringify( mo );
201
- }
202
-
203
- function changeIncludeVariationsValue( selectedValue ) {
204
-
205
- this.includeVariations = selectedValue ? '1' : '0';
206
- }
207
-
208
- function changeAggregatorValue( selectedValue ) {
209
-
210
- this.isAggregator = selectedValue ? '1' : '0';
211
- }
212
-
213
- function activateCategoryMap( shopCategoryId, channelUsesOwnCategory ) {
214
-
215
- // get the currently stored mapping
216
- var mo = this.categoryMapping.length > 0 ? JSON.parse( this.categoryMapping ) : [];
217
-
218
- // test if this.categoryMapping already has a mapped category with this id
219
- var categoryMapForGivenId = jQuery.grep(
220
- mo,
221
- function( e ) {
222
- return e.shopCategoryId === shopCategoryId.toString();
223
- }
224
- );
225
-
226
- // only store this mapping if it has not been registered already to this id
227
- if ( categoryMapForGivenId.length < 1 ) {
228
-
229
- var catMap = new CategoryMap();
230
-
231
- catMap.shopCategoryId = shopCategoryId.toString();
232
- catMap.feedCategories = channelUsesOwnCategory ? 'wp_ownCategory' : 'wp_mainCategory';
233
-
234
- mo.push( catMap );
235
-
236
- this.categoryMapping = JSON.stringify( mo );
237
- }
238
- }
239
-
240
- function deactivateCategoryMap( shopCategoryId ) {
241
-
242
- var mo = this.categoryMapping.length > 0 ? JSON.parse( this.categoryMapping ) : [];
243
-
244
- if ( mo.length > 1 ) {
245
-
246
- var index = tvc_arrayObjectIndexOf(
247
- mo,
248
- shopCategoryId.toString(),
249
- 'shopCategoryId'
250
- );
251
-
252
- mo.splice( index, 1 ); // remove the category object
253
-
254
- this.categoryMapping = JSON.stringify( mo );
255
- } else {
256
-
257
- this.categoryMapping = [];
258
- }
259
- }
260
-
261
- function getAttributeId( name ) {
262
-
263
- var attributeId = false;
264
-
265
- for ( var i = 0; i < this.attributes.length; i ++ ) {
266
-
267
- if ( this.attributes[ i ][ 'fieldName' ] === name ) {
268
-
269
- attributeId = this.attributes[ i ][ 'rowId' ];
270
- break;
271
- }
272
- }
273
-
274
- if ( attributeId === false ) { // seems like a custom field
275
-
276
- attributeId = this.attributes.length;
277
- }
278
-
279
- return attributeId;
280
- }
281
-
282
- function setAttributesStaticValue(
283
- attributeId, level, combinationLevel, newValue ) {
284
- var currentValue = this.attributes[ attributeId ][ 'value' ];
285
-
286
- this.attributes[ attributeId ][ 'value' ] = tvc_storeSourceValue( level, currentValue, 'static', newValue );
287
-
288
- this.attributes[ attributeId ][ 'isActive' ] = ! ! this.attributes[ attributeId ][ 'value' ];
289
- }
290
-
291
- function setAttributesSourceValue( attributeId, sourceLevel, newSource ) {
292
- var currentValue = this.attributes[ attributeId ][ 'value' ];
293
- this.attributes[ attributeId ][ 'value' ] = tvc_storeSourceValue(
294
- sourceLevel,
295
- currentValue,
296
- 'source',
297
- newSource
298
- );
299
- }
300
-
301
- function setAlternativeAttributesSourceValue( attributeId, level, value ) {
302
-
303
- var attributeValueObject = {};
304
- var attributeArray = [];
305
-
306
- if ( this.attributes[ attributeId ][ 'value' ] ) {
307
- attributeValueObject = JSON.parse(
308
- this.attributes[ attributeId ][ 'value' ]
309
- );
310
-
311
- attributeValueObject.a = addOrRemoveValueInValueString(
312
- attributeValueObject.a,
313
- value,
314
- level,
315
- 'add'
316
- );
317
- } else {
318
-
319
- var o = {};
320
- o[ 1 ] = value;
321
-
322
- attributeArray.push( o );
323
- attributeValueObject.a = attributeArray;
324
- }
325
-
326
- this.attributes[ attributeId ][ 'value' ] = JSON.stringify( attributeValueObject );
327
- }
328
-
329
- function setAttributesCombinedOutputValue(
330
- attributeId, sourceLevel, newCombinedValue ) {
331
-
332
- var currentValue = this.attributes[ attributeId ][ 'value' ];
333
- console.log( currentValue );
334
-
335
- this.attributes[ attributeId ][ 'value' ] = tvc_storeCombinedValue(
336
- sourceLevel,
337
- currentValue,
338
- newCombinedValue
339
- );
340
- }
341
-
342
- function getAttributesCombinedOutputValue( attributeId, sourceLevel ) {
343
-
344
- var attributeObject = this.attributes[ attributeId ][ 'value' ] ? JSON.parse( this.attributes[ attributeId ][ 'value' ] ) : {};
345
-
346
- if ( attributeObject && attributeObject.m && attributeObject.m[ sourceLevel ] && attributeObject.m[ sourceLevel ].s && attributeObject.m[ sourceLevel ].s.f ) {
347
-
348
- return attributeObject.m[ sourceLevel ].s.f;
349
- } else {
350
-
351
- return '';
352
- }
353
- }
354
-
355
- function removeAttributesCombinedOutputValue(
356
- attributeId, sourceLevel, combinedLevel ) {
357
-
358
- var currentValue = this.attributes[ attributeId ][ 'value' ];
359
- this.attributes[ attributeId ][ 'value' ] = tvc_removeCombinedValue(
360
- sourceLevel,
361
- combinedLevel,
362
- currentValue
363
- );
364
- }
365
-
366
- function countAttributesCombinedFields( attributeId ) {
367
-
368
- if ( this.attributes[ attributeId ][ 'value' ] ) {
369
- var attributeValueObject = JSON.parse(
370
- this.attributes[ attributeId ][ 'value' ]
371
- );
372
-
373
- if ( attributeValueObject.hasOwnProperty( 'f' ) ) {
374
- return tvc_countObjectItems( attributeValueObject.f );
375
- } else {
376
- return 0;
377
- }
378
- } else {
379
- return 0;
380
- }
381
- }
382
-
383
- function setAttributesCategoryValue( attributeId, newCategory ) {
384
-
385
- var currentValue = this.attributes[ attributeId ][ 'value' ];
386
- this.attributes[ attributeId ][ 'value' ] = tvc_storeSourceValue(
387
- 0,
388
- currentValue,
389
- '',
390
- newCategory
391
- );
392
- }
393
-
394
- function rstNrQueries( attributeId ) {
395
- this.attributes[ attributeId ][ 'nrQueries' ] = 0;
396
- }
397
-
398
- function addNrQueries( attributeId ) {
399
- var currentNr = this.attributes[ attributeId ][ 'nrQueries' ];
400
- this.attributes[ attributeId ][ 'nrQueries' ] = currentNr + 1;
401
- }
402
-
403
- function substrNrQueries( attributeId ) {
404
-
405
- var currentNr = this.attributes[ attributeId ][ 'nrQueries' ];
406
- if ( currentNr > 0 ) {
407
- this.attributes[ attributeId ][ 'nrQueries' ] = currentNr - 1;
408
- }
409
- }
410
-
411
- function addAttributesChangeValue(
412
- attributeId, sourceLevel, valueEditorLevel, value ) {
413
- var currentValue = this.attributes[ attributeId ][ 'value' ];
414
- this.attributes[ attributeId ][ 'value' ] = tvc_storeValueChange(
415
- sourceLevel,
416
- valueEditorLevel,
417
- value,
418
- 'add',
419
- currentValue
420
- );
421
- }
422
-
423
- function addAttributesCondition(
424
- attributeId, newCondition, sourceLevel, conditionLevel ) {
425
- var currentValue = this.attributes[ attributeId ][ 'value' ];
426
- this.attributes[ attributeId ][ 'value' ] = tvc_storeConditionValue(
427
- sourceLevel,
428
- conditionLevel,
429
- currentValue,
430
- newCondition
431
- );
432
- }
433
-
434
- function addAttributesValueQuery(
435
- attributeId, sourceLevel, queryLevel, queryToAdd ) {
436
- var currentValue = this.attributes[ attributeId ][ 'value' ];
437
- this.attributes[ attributeId ][ 'value' ] = tvc_storeQueryValue(
438
- sourceLevel,
439
- queryLevel,
440
- currentValue,
441
- queryToAdd
442
- );
443
- }
444
-
445
- function setFeedFilterValue( value ) {
446
- this.feedFilter = value;
447
- }
448
-
449
- function removeFeedFilterValue( filterLevelToRemove ) {
450
- this.feedFilter = removeFeedFilterLevel(
451
- this.feedFilter,
452
- filterLevelToRemove
453
- );
454
- }
455
-
456
- function removeAttributesCondition( attributeId, sourceLevel, conditionLevel ) {
457
- var currentValue = this.attributes[ attributeId ][ 'value' ];
458
- this.attributes[ attributeId ][ 'value' ] = tvc_removeConditionValue(
459
- sourceLevel,
460
- conditionLevel,
461
- currentValue
462
- );
463
- }
464
-
465
- function removeAttributesValueQuery( attributeId, sourceLevel, queryLevel ) {
466
- var currentValue = this.attributes[ attributeId ][ 'value' ];
467
- this.attributes[ attributeId ][ 'value' ] = tvc_removeQueryValue(
468
- sourceLevel,
469
- queryLevel,
470
- currentValue
471
- );
472
- }
473
-
474
- function removeAttributesEditValue(
475
- attributeId, sourceLevel, valueEditorLevel ) {
476
- var currentValue = this.attributes[ attributeId ][ 'value' ];
477
- this.attributes[ attributeId ][ 'value' ] = tvc_removeEditValuesValue(
478
- sourceLevel,
479
- valueEditorLevel,
480
- currentValue
481
- );
482
- }
483
-
484
- function removeAlternativeSource( attributeId, level ) {
485
- var attributeValueObject = {};
486
- if ( this.attributes[ attributeId ][ 'value' ] ) {
487
- attributeValueObject = JSON.parse(
488
- this.attributes[ attributeId ][ 'value' ]
489
- );
490
-
491
- attributeValueObject.a = addOrRemoveValueInValueString(
492
- attributeValueObject.a,
493
- '',
494
- level,
495
- 'remove'
496
- );
497
-
498
- if ( ! attributeValueObject.a ) {
499
- delete attributeValueObject.a;
500
- }
501
-
502
- this.attributes[ attributeId ][ 'value' ] = JSON.stringify(
503
- attributeValueObject
504
- );
505
- }
506
- }
507
-
508
- /**
509
- * Gets the queries from a specific attribute
510
- *
511
- * @param {int} attributeId
512
- * @param {int} sourceLevel
513
- * @returns {array} containing the queries
514
- */
515
- function getAttributesQueries( attributeId, sourceLevel ) {
516
-
517
- var attributeString = this.attributes[ attributeId ][ 'value' ];
518
- var queries = {};
519
- if ( attributeString ) {
520
- var o = JSON.parse( attributeString );
521
- if ( o && o.hasOwnProperty( 'm' ) && o.m[ sourceLevel ] && o.m[ sourceLevel ].hasOwnProperty( 'c' ) && o.m[ sourceLevel ].c.length > 0 ) {
522
- queries = o.m[ sourceLevel ].c;
523
- }
524
- }
525
-
526
- return queries;
527
- }
528
-
529
- function getAttributesValueQueries( attributeId, sourceLevel ) {
530
-
531
- var attributeString = this.attributes[ attributeId ][ 'value' ];
532
- var queries = {};
533
-
534
- if ( attributeString ) {
535
- var attributeObject = JSON.parse( attributeString );
536
- if ( attributeObject && attributeObject.v && attributeObject.v[ sourceLevel ] && attributeObject.v[ sourceLevel ].hasOwnProperty( 'q' ) && attributeObject.v[ sourceLevel ].q.length > 0 ) {
537
- queries = attributeObject.v[ sourceLevel ].q;
538
- }
539
- }
540
- return queries;
541
- }
542
-
543
- function getAttributesValues( attributeId ) {
544
-
545
- var attributeString = this.attributes[ attributeId ][ 'value' ];
546
- var values = {};
547
- if ( attributeString ) {
548
- var attributeObject = JSON.parse( attributeString );
549
- if ( attributeObject && 'v' in attributeObject && attributeObject.v.length > 0 ) {
550
- values = attributeObject.v;
551
- }
552
- }
553
- return values;
554
- }
555
-
556
- function getFeedFilterValue( feedId ) {
557
-
558
- }
559
-
560
- function getAlternativeSources( attributeId ) {
561
-
562
- var attributeString = this.attributes[ attributeId ][ 'value' ];
563
- var values = {};
564
-
565
- if ( attributeString ) {
566
-
567
- var attributeObject = JSON.parse( attributeString );
568
-
569
- if ( attributeObject && 'a' in attributeObject && attributeObject.a.length > 0 ) {
570
-
571
- values = attributeObject.a;
572
- }
573
- }
574
-
575
- return values;
576
- }
577
-
578
- /**
579
- * Returns an object filled with all the required data for a specific feed row
580
- *
581
- * @param {string} feedId
582
- * @returns {object} containing the required data
583
- */
584
- function getSourceData( feedId ) {
585
-
586
- var data = {};
587
-
588
- // add the basic data to the object
589
- data.rowId = feedId;
590
- data.fieldName = this.attributes[ feedId ][ 'fieldName' ];
591
- data.advisedSource = this.attributes[ feedId ][ 'advisedSource' ];
592
-
593
- // get the attribute data
594
- var attributeString = this.attributes[ feedId ][ 'value' ];
595
-
596
- // and put the attribute data in the object
597
- if ( attributeString ) {
598
-
599
- var attributeDataObject = JSON.parse( attributeString );
600
-
601
- data.mapping = attributeDataObject && 'm' in attributeDataObject ? attributeDataObject.m : [];
602
- data.changeValues = attributeDataObject && 'v' in attributeDataObject ? attributeDataObject.v : [];
603
- data.customCondition = ! ! (
604
- attributeDataObject && 't' in attributeDataObject
605
- );
606
- } else {
607
-
608
- data.mapping = [];
609
- data.changeValues = [];
610
- data.customCondition = false;
611
- }
612
-
613
- return data;
614
- }
615
-
616
- function getAttributesSources( attributeId ) {
617
-
618
- var attributeString = this.attributes[ attributeId ][ 'value' ];
619
- var source = {};
620
-
621
- if ( attributeString ) {
622
-
623
- var attributeObject = JSON.parse( attributeString );
624
-
625
- if ( attributeObject && 's' in attributeObject ) {
626
-
627
- source = attributeObject.s;
628
- }
629
- }
630
-
631
- return source;
632
- }
633
-
634
- function addOrRemoveValueInValueString( values, value, level, add ) {
635
-
636
- var valueArray = values ? values : [];
637
-
638
- if ( add === 'add' ) {
639
-
640
- var o = {};
641
- var queriesMemory = '';
642
- o[ level ] = value;
643
-
644
- // if the value also has a query than store it first
645
- if ( valueArray[ level - 1 ] && 'q' in valueArray[ level - 1 ] ) {
646
-
647
- queriesMemory = valueArray[ level - 1 ][ 'q' ];
648
- }
649
-
650
- // remove values with the same key
651
- if ( level in o ) {
652
-
653
- valueArray.splice( level - 1, 1 );
654
- }
655
-
656
- // if there were queries stored, then put them back in to the new value
657
- if ( queriesMemory ) {
658
- o[ 'q' ] = queriesMemory;
659
- }
660
-
661
- valueArray.push( o );
662
- } else { // remove
663
-
664
- valueArray.splice( level - 1, 1 );
665
-
666
- // re-sort the queries
667
- valueArray = tvc_resortObject( valueArray );
668
- }
669
-
670
- if ( tvc_countObjectItems( valueArray ) > 0 ) {
671
-
672
- return valueArray;
673
- } else {
674
-
675
- return '';
676
- }
677
- }
678
-
679
- function clearAttributesSourceValue( attributeId, sourceLevel ) {
680
-
681
- if ( this.attributes[ attributeId ][ 'value' ] ) {
682
-
683
- this.attributes[ attributeId ][ 'value' ] = tvc_storeSourceValue(
684
- sourceLevel,
685
- this.attributes[ attributeId ][ 'value' ],
686
- 'clear',
687
- ''
688
- );
689
- } else {
690
-
691
- this.attributes[ attributeId ][ 'value' ] = '';
692
- }
693
- }
694
-
695
- function setFeedCustomCategory( rowId, category ) {
696
-
697
- console.log( this.attributes );
698
- console.log( category );
699
-
700
- // set the main category
701
- this.mainCategory = category;
702
-
703
- var id = rowId ? rowId : getCustomCategoryAttributeId( this.attributes, category );
704
-
705
- // when a output is initialised as category, then set the category in the correct row
706
- if ( id ) {
707
-
708
- console.log( id );
709
-
710
- var o = this.attributes[ id ][ 'value' ] ? JSON.parse( this.attributes[ id ][ 'value' ] ) : {};
711
-
712
- o.t = category;
713
-
714
- this.attributes[ id ][ 'value' ] = JSON.stringify( o );
715
- }
716
- }
717
-
718
- function changeCountry( selectedCountry ) {
719
-
720
- this.country = selectedCountry;
721
- }
722
-
723
- function getCustomCategoryAttributeId( attr ) {
724
-
725
- for ( var i = 0; i < attr.length; i ++ ) {
726
-
727
- console.log( attr[ i ] );
728
-
729
- var catObject = attr[ i ][ 'value' ] ? JSON.parse( attr[ i ][ 'value' ] ) : {};
730
-
731
- console.log( catObject );
732
-
733
- if ( catObject.hasOwnProperty( 't' ) ) {
734
-
735
- return i;
736
- }
737
- }
738
- }
739
-
740
- function setCategories( level, category, channel ) {
741
- if ( this.attributes[ 3 ] !== undefined ) {
742
- var categoryAttributeObject = this.attributes[ 3 ][ 'value' ] ? JSON.parse( this.attributes[ 3 ][ 'value' ] ) : {};
743
- var categoryDelimiter = tvc_category_separator( channel );
744
-
745
- var categoryString = this.mainCategory;
746
- var categoryLevel = this.attributes[ 3 ][ 'value' ] !== undefined ? categoryString.split( categoryDelimiter ).length : 0;
747
-
748
- var selectedLevel = level.match( /(\d+)$/ )[ 0 ];
749
-
750
- if ( selectedLevel === '0' ) {
751
- this.mainCategory = category;
752
- this.attributes[ 3 ][ 'value' ] = '{"t":"' + category + '"}';
753
- } else {
754
- if ( categoryLevel <= selectedLevel ) {
755
- this.mainCategory += categoryDelimiter + category;
756
- this.attributes[ 3 ][ 'value' ] = '{"t":"' + categoryAttributeObject.t + categoryDelimiter + category + '"}';
757
- } else {
758
- var pos = 0;
759
-
760
- for ( var i = 0; i < selectedLevel; i ++ ) {
761
- pos = categoryString.indexOf( categoryDelimiter, pos + 1 );
762
- }
763
-
764
- categoryString = categoryString.substring( 0, pos );
765
-
766
- if ( category !== '0' ) {
767
- this.mainCategory = categoryString + categoryDelimiter + category;
768
- this.attributes[ 3 ][ 'value' ] = '{"t":"' + categoryString + categoryDelimiter + category + '"}';
769
- } else {
770
- this.mainCategory = categoryString;
771
- this.attributes[ 3 ][ 'value' ] = '{"t":"' + categoryString + '"}';
772
- }
773
- }
774
- }
775
- }
776
- }
777
-
778
- function setSchedule( days, hours, minutes, frequency ) {
779
-
780
- this.updateSchedule = days + ':' + hours + ':' + minutes + ':' + frequency;
781
- }
782
-
783
- function activateFeedsAttribute( attributeId ) {
784
-
785
- this.attributes[ attributeId ][ 'isActive' ] = true;
786
- }
787
-
788
- function deactivateFeedsAttribute( attributeId ) {
789
-
790
- if ( this.attributes[ attributeId ][ 'fieldLevel' ] !== '1' ) {
791
-
792
- var attributeDataObject = this.attributes[ attributeId ][ 'value' ] ? JSON.parse( this.attributes[ attributeId ][ 'value' ] ) : {};
793
- this.attributes[ attributeId ][ 'isActive' ] = false;
794
-
795
- // clear the meta value but only if it not contains the category string
796
- if ( attributeDataObject && ! 't' in attributeDataObject ) {
797
- this.attributes[ attributeId ][ 'value' ] = '';
798
- }
799
- } else {
800
-
801
- this.attributes[ attributeId ][ 'isActive' ] = true; // any required attribute should always stay active
802
- }
803
- }
804
-
805
- function checkCustomName( name ) {
806
-
807
- var result = false;
808
-
809
- for ( var i = 0; i < this.attributes.length; i ++ ) {
810
-
811
- if ( this.attributes[ i ][ 'fieldName' ] === name ) {
812
- result = true;
813
- }
814
- }
815
-
816
- return result;
817
- }
818
-
819
- function getFeedType() {
820
- return this.feedType;
821
- }
822
-
823
- function removeAttribute( attributeId ) {
824
-
825
- this.attributes.splice( attributeId, 1 );
826
- }
827
-
828
- function cleanUnusedAttributes() {
829
-
830
- if ( this.attributes.length > 0 ) {
831
-
832
- for ( var i = 0; i < this.attributes.length; i ++ ) {
833
-
834
- if ( this.attributes[ i ][ 'isActive' ] !== true ) {
835
-
836
- this.attributes.splice( i, 1 );
837
- i --; // reset i for the removed attribute
838
- } else if ( this.attributes[ i ][ 'advisedSource' ] === undefined && getSourceString( this.attributes[ i ][ 'value' ] ) === '' ) {
839
-
840
- this.attributes.splice( i, 1 );
841
- i --; // reset i for the removed attribute
842
- }
843
- }
844
- }
845
- }
846
-
847
- function clearAttributes() {
848
- this.attributes = [];
849
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/application/js/tvc_object-feed.min.js DELETED
@@ -1 +0,0 @@
1
- function Feed(e,n,g,d,j,k,o,c,a,f,i,b,m,q,p,h,l){this.feedId=e;this.title=n;this.mainCategory=k;this.categoryMapping=o;this.includeVariations=g;this.isAggregator=d;this.feedTitle=b;this.feedDescription=m;this.url=c;this.dataSource=a;this.channel=j;this.country=j!=="3"?f:"NL";this.language=i;this.status=h;this.updateSchedule=q;this.feedFilter=p;this.attributes=[];this.feedType=l;this.addAttribute=addAttributeToFeed;this.getAttributeIdByName=getAttributeId;this.activateAttribute=activateFeedsAttribute;this.checkIfCustomNameExists=checkCustomName;this.countCombinedFields=countAttributesCombinedFields;this.deactivateAttribute=deactivateFeedsAttribute;this.deactivateCategory=deactivateCategoryMap;this.activateCategory=activateCategoryMap;this.setStaticAttributeValue=setAttributesStaticValue;this.setSourceValue=setAttributesSourceValue;this.setAlternativeSourceValue=setAlternativeAttributesSourceValue;this.setCombinedOutputValue=setAttributesCombinedOutputValue;this.setCategoryValue=setAttributesCategoryValue;this.setFeedFilter=setFeedFilterValue;this.mapCategory=mapACategory;this.changeCustomFeedCategoryMap=changeCustomCategoryMap;this.changeIncludeVariations=changeIncludeVariationsValue;this.changeAggregator=changeAggregatorValue;this.resetNrQueries=rstNrQueries;this.incrNrQueries=addNrQueries;this.decrNrQueries=substrNrQueries;this.addConditionValue=addAttributesCondition;this.addValueQueryValue=addAttributesValueQuery;this.removeAttribute=removeAttributeFromFeed;this.removeValueConditionValue=removeAttributesCondition;this.removeValueQueryValue=removeAttributesValueQuery;this.removeAlternativeSourceValue=removeAlternativeSource;this.removeCombinedOutputValue=removeAttributesCombinedOutputValue;this.removeEditValueValue=removeAttributesEditValue;this.removeFeedFilter=removeFeedFilterValue;this.getAttributesQueriesObject=getAttributesQueries;this.getCombinedOutputValue=getAttributesCombinedOutputValue;this.getValueQueryValue=getAttributesValueQueries;this.getAttributesSourceObject=getAttributesSources;this.getSourceObject=getSourceData;this.getAlternativeSourcesObject=getAlternativeSources;this.getAttributesValueObject=getAttributesValues;this.getFeedFilter=getFeedFilterValue;this.getFeedType=getFeedType;this.setMainCategory=setCategories;this.setUpdateSchedule=setSchedule;this.setCustomCategory=setFeedCustomCategory;this.setCountry=changeCountry;this.clearSourceValue=clearAttributesSourceValue;this.cleanAttributes=cleanUnusedAttributes;this.clearAllAttributes=clearAttributes;this.addChangeValue=addAttributesChangeValue}function FeedAttribute(e,g,h,f,b,i,a,c,d){this.rowId=e;this.fieldName=g;this.advisedSource=h;this.value=f;this.fieldLevel=b;this.isActive=i;this.nrQueries=a;this.nrValueEdits=c;this.nrValueConditions=d}function CategoryMap(b,a){this.shopCategoryId=b;this.feedCategories=a}function addAttributeToFeed(e,h,i,g,b,j,d,c,f){var a=new FeedAttribute(e,h,i,g,b,j,d,c,f);this.attributes.push(a)}function removeAttributeFromFeed(b){for(var a=0;a<this.attributes.length;a++){if(this.attributes[a].rowId===b){this.attributes.splice(a,1)}}}function mapACategory(i,a){var h=i.match(/(\d+)$/)[0];var f=i.replace("_"+h,"");var b=f.match(/(\d+)$/)[0];var c=JSON.parse(this.categoryMapping);var d=jQuery.grep(c,function(j){return j.shopCategoryId===b});if(d.length>0){var e=d[0].feedCategories;d[0].feedCategories=tvc_addNewItemToCategoryString(h,e,a," > ")}else{var g=new CategoryMap();g.shopCategoryId=b;g.feedCategories=a;c.push(g)}this.categoryMapping=JSON.stringify(c)}function changeCustomCategoryMap(c,b){var d=JSON.parse(this.categoryMapping);var a=jQuery.grep(d,function(f){return f.shopCategoryId===c});if(a.length>0){a[0].feedCategories=b}else{var e=new CategoryMap();e.shopCategoryId=c;e.feedCategories=b;d.push(e)}this.categoryMapping=JSON.stringify(d)}function changeIncludeVariationsValue(a){this.includeVariations=a?"1":"0"}function changeAggregatorValue(a){this.isAggregator=a?"1":"0"}function activateCategoryMap(c,b){var d=this.categoryMapping.length>0?JSON.parse(this.categoryMapping):[];var a=jQuery.grep(d,function(f){return f.shopCategoryId===c.toString()});if(a.length<1){var e=new CategoryMap();e.shopCategoryId=c.toString();e.feedCategories=b?"wp_ownCategory":"wp_mainCategory";d.push(e);this.categoryMapping=JSON.stringify(d)}}function deactivateCategoryMap(b){var c=this.categoryMapping.length>0?JSON.parse(this.categoryMapping):[];if(c.length>1){var a=tvc_arrayObjectIndexOf(c,b.toString(),"shopCategoryId");c.splice(a,1);this.categoryMapping=JSON.stringify(c)}else{this.categoryMapping=[]}}function getAttributeId(a){var c=false;for(var b=0;b<this.attributes.length;b++){if(this.attributes[b]["fieldName"]===a){c=this.attributes[b]["rowId"];break}}if(c===false){c=this.attributes.length}return c}function setAttributesStaticValue(b,e,d,c){var a=this.attributes[b]["value"];this.attributes[b]["value"]=tvc_storeSourceValue(e,a,"static",c);this.attributes[b]["isActive"]=!!this.attributes[b]["value"]}function setAttributesSourceValue(b,c,d){var a=this.attributes[b]["value"];this.attributes[b]["value"]=tvc_storeSourceValue(c,a,"source",d)}function setAlternativeAttributesSourceValue(b,f,c){var a={};var d=[];if(this.attributes[b]["value"]){a=JSON.parse(this.attributes[b]["value"]);a.a=addOrRemoveValueInValueString(a.a,c,f,"add")}else{var e={};e[1]=c;d.push(e);a.a=d}this.attributes[b]["value"]=JSON.stringify(a)}function setAttributesCombinedOutputValue(b,c,d){var a=this.attributes[b]["value"];console.log(a);this.attributes[b]["value"]=tvc_storeCombinedValue(c,a,d)}function getAttributesCombinedOutputValue(a,b){var c=this.attributes[a]["value"]?JSON.parse(this.attributes[a]["value"]):{};if(c&&c.m&&c.m[b]&&c.m[b].s&&c.m[b].s.f){return c.m[b].s.f}else{return""}}function removeAttributesCombinedOutputValue(c,d,b){var a=this.attributes[c]["value"];this.attributes[c]["value"]=tvc_removeCombinedValue(d,b,a)}function countAttributesCombinedFields(b){if(this.attributes[b]["value"]){var a=JSON.parse(this.attributes[b]["value"]);if(a.hasOwnProperty("f")){return tvc_countObjectItems(a.f)}else{return 0}}else{return 0}}function setAttributesCategoryValue(b,c){var a=this.attributes[b]["value"];this.attributes[b]["value"]=tvc_storeSourceValue(0,a,"",c)}function rstNrQueries(a){this.attributes[a]["nrQueries"]=0}function addNrQueries(a){var b=this.attributes[a]["nrQueries"];this.attributes[a]["nrQueries"]=b+1}function substrNrQueries(a){var b=this.attributes[a]["nrQueries"];if(b>0){this.attributes[a]["nrQueries"]=b-1}}function addAttributesChangeValue(b,d,e,c){var a=this.attributes[b]["value"];this.attributes[b]["value"]=tvc_storeValueChange(d,e,c,"add",a)}function addAttributesCondition(d,c,e,a){var b=this.attributes[d]["value"];this.attributes[d]["value"]=tvc_storeConditionValue(e,a,b,c)}function addAttributesValueQuery(d,e,c,a){var b=this.attributes[d]["value"];this.attributes[d]["value"]=tvc_storeQueryValue(e,c,b,a)}function setFeedFilterValue(a){this.feedFilter=a}function removeFeedFilterValue(a){this.feedFilter=removeFeedFilterLevel(this.feedFilter,a)}function removeAttributesCondition(c,d,a){var b=this.attributes[c]["value"];this.attributes[c]["value"]=tvc_removeConditionValue(d,a,b)}function removeAttributesValueQuery(c,d,b){var a=this.attributes[c]["value"];this.attributes[c]["value"]=tvc_removeQueryValue(d,b,a)}function removeAttributesEditValue(b,c,d){var a=this.attributes[b]["value"];this.attributes[b]["value"]=tvc_removeEditValuesValue(c,d,a)}function removeAlternativeSource(b,c){var a={};if(this.attributes[b]["value"]){a=JSON.parse(this.attributes[b]["value"]);a.a=addOrRemoveValueInValueString(a.a,"",c,"remove");if(!a.a){delete a.a}this.attributes[b]["value"]=JSON.stringify(a)}}function getAttributesQueries(b,c){var e=this.attributes[b]["value"];var a={};if(e){var d=JSON.parse(e);if(d&&d.hasOwnProperty("m")&&d.m[c]&&d.m[c].hasOwnProperty("c")&&d.m[c].c.length>0){a=d.m[c].c}}return a}function getAttributesValueQueries(b,c){var e=this.attributes[b]["value"];var a={};if(e){var d=JSON.parse(e);if(d&&d.v&&d.v[c]&&d.v[c].hasOwnProperty("q")&&d.v[c].q.length>0){a=d.v[c].q}}return a}function getAttributesValues(b){var d=this.attributes[b]["value"];var a={};if(d){var c=JSON.parse(d);if(c&&"v" in c&&c.v.length>0){a=c.v}}return a}function getFeedFilterValue(a){}function getAlternativeSources(b){var d=this.attributes[b]["value"];var a={};if(d){var c=JSON.parse(d);if(c&&"a" in c&&c.a.length>0){a=c.a}}return a}function getSourceData(a){var c={};c.rowId=a;c.fieldName=this.attributes[a]["fieldName"];c.advisedSource=this.attributes[a]["advisedSource"];var d=this.attributes[a]["value"];if(d){var b=JSON.parse(d);c.mapping=b&&"m" in b?b.m:[];c.changeValues=b&&"v" in b?b.v:[];c.customCondition=!!(b&&"t" in b)}else{c.mapping=[];c.changeValues=[];c.customCondition=false}return c}function getAttributesSources(a){var d=this.attributes[a]["value"];var b={};if(d){var c=JSON.parse(d);if(c&&"s" in c){b=c.s}}return b}function addOrRemoveValueInValueString(b,d,g,e){var c=b?b:[];if(e==="add"){var f={};var a="";f[g]=d;if(c[g-1]&&"q" in c[g-1]){a=c[g-1]["q"]}if(g in f){c.splice(g-1,1)}if(a){f.q=a}c.push(f)}else{c.splice(g-1,1);c=tvc_resortObject(c)}if(tvc_countObjectItems(c)>0){return c}else{return""}}function clearAttributesSourceValue(a,b){if(this.attributes[a]["value"]){this.attributes[a]["value"]=tvc_storeSourceValue(b,this.attributes[a]["value"],"clear","")}else{this.attributes[a]["value"]=""}}function setFeedCustomCategory(b,a){console.log(this.attributes);console.log(a);this.mainCategory=a;var d=b?b:getCustomCategoryAttributeId(this.attributes,a);if(d){console.log(d);var c=this.attributes[d]["value"]?JSON.parse(this.attributes[d]["value"]):{};c.t=a;this.attributes[d]["value"]=JSON.stringify(c)}}function changeCountry(a){this.country=a}function getCustomCategoryAttributeId(a){for(var b=0;b<a.length;b++){console.log(a[b]);var c=a[b]["value"]?JSON.parse(a[b]["value"]):{};console.log(c);if(c.hasOwnProperty("t")){return b}}}function setCategories(a,b,e){if(this.attributes[3]!==undefined){var f=this.attributes[3]["value"]?JSON.parse(this.attributes[3]["value"]):{};var k=tvc_category_separator(e);var h=this.mainCategory;var c=this.attributes[3]["value"]!==undefined?h.split(k).length:0;var j=a.match(/(\d+)$/)[0];if(j==="0"){this.mainCategory=b;this.attributes[3]["value"]='{"t":"'+b+'"}'}else{if(c<=j){this.mainCategory+=k+b;this.attributes[3]["value"]='{"t":"'+f.t+k+b+'"}'}else{var g=0;for(var d=0;d<j;d++){g=h.indexOf(k,g+1)}h=h.substring(0,g);if(b!=="0"){this.mainCategory=h+k+b;this.attributes[3]["value"]='{"t":"'+h+k+b+'"}'}else{this.mainCategory=h;this.attributes[3]["value"]='{"t":"'+h+'"}'}}}}}function setSchedule(d,a,b,c){this.updateSchedule=d+":"+a+":"+b+":"+c}function activateFeedsAttribute(a){this.attributes[a]["isActive"]=true}function deactivateFeedsAttribute(a){if(this.attributes[a]["fieldLevel"]!=="1"){var b=this.attributes[a]["value"]?JSON.parse(this.attributes[a]["value"]):{};this.attributes[a]["isActive"]=false;if(b&&!"t" in b){this.attributes[a]["value"]=""}}else{this.attributes[a]["isActive"]=true}}function checkCustomName(b){var a=false;for(var c=0;c<this.attributes.length;c++){if(this.attributes[c]["fieldName"]===b){a=true}}return a}function getFeedType(){return this.feedType}function removeAttribute(a){this.attributes.splice(a,1)}function cleanUnusedAttributes(){if(this.attributes.length>0){for(var a=0;a<this.attributes.length;a++){if(this.attributes[a]["isActive"]!==true){this.attributes.splice(a,1);a--}else{if(this.attributes[a]["advisedSource"]===undefined&&getSourceString(this.attributes[a]["value"])===""){this.attributes.splice(a,1);a--}}}}}function clearAttributes(){this.attributes=[]};
 
includes/class-enhanced-ecommerce-google-analytics.php CHANGED
@@ -111,60 +111,19 @@ class Enhanced_Ecommerce_Google_Analytics {
111
  */
112
  require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-enhanced-ecommerce-google-analytics-i18n.php';
113
  // Feed Manager Files
114
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-admin-page.php';
115
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/tvc-admin-menu-functions.php';
116
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/tvc-admin-functions.php';
117
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/setup/class-tvc-database-management.php';
118
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/setup/class-tvc-folders.php';
119
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/setup/class-tvc-prepare-taxonomy.php';
120
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-admin-page.php';
121
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-add-options-page.php';
122
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-main-admin-page.php';
123
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-list-table.php';
124
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-queries.php';
125
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/elements/class-tvc-form-element.php';
126
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-options-page.php';
127
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-tab.php';
128
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/abstract-tvc-main-input-wrapper.php';
129
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-product-feed-main-input-wrapper.php';
130
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/abstract-tvc-attribute-mapping-wrapper.php';
131
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-product-feed-attribute-mapping-wrapper.php';
132
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/elements/class-tvc-main-input-selector-element.php';
133
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-feed-form-control.php';
134
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-file.php';
135
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-data.php';
136
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/elements/class-tvc-attribute-selector-element.php';
137
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/elements/class-tvc-category-selector-element.php';
138
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/abstract-tvc-category-wrapper.php';
139
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-product-feed-category-wrapper.php';
140
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/tvc-url-functions.php';
141
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-i18n-scripts.php';
142
- // require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/class-tvc-product-feed-page.php';
143
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-ajax-calls.php';
144
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-ajax-data.php';
145
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-ajax-file.php';
146
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-backup.php';
147
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-channel.php';
148
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-channel-ftp.php';
149
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-feed-crud-handler.php';
150
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-taxonomies.php';
151
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-variations.php';
152
- //Application folder include
153
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/class-tvc-feed-queries.php';
154
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/class-tvc-email.php';
155
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/class-tvc-feed-value-editors.php';
156
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/tvc-cron-functions.php';
157
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/tvc-support-fields.php';
158
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/libraries/tvc-async-request.php';
159
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/libraries/tvc-background-process.php';
160
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/tvc-feed-processing-support.php';
161
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/tvc-feed-processor-functions.php';
162
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/class-tvc-feed-processor.php';
163
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/class-tvc-feed-support.php';
164
- require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/class-tvc-feed-controller.php';
165
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/class-feed-master.php';
166
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/class-tvc-schedules.php';
167
- //require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/google/class-feed.php';
168
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-tvc-register-scripts.php';
169
  /**
170
  * The class responsible for defining all actions that occur in the admin area.
@@ -193,11 +152,8 @@ class Enhanced_Ecommerce_Google_Analytics {
193
  * @access private
194
  */
195
  private function set_locale() {
196
-
197
  $plugin_i18n = new Enhanced_Ecommerce_Google_Analytics_i18n();
198
-
199
  $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
200
-
201
  }
202
 
203
  /**
@@ -318,4 +274,4 @@ class Enhanced_Ecommerce_Google_Analytics {
318
  die();
319
  }
320
  }
321
- }
111
  */
112
  require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-enhanced-ecommerce-google-analytics-i18n.php';
113
  // Feed Manager Files
 
 
 
 
 
 
 
 
 
 
114
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-queries.php';
115
+ require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-file.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/user-interface/tvc-url-functions.php';
117
+
 
118
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-ajax-calls.php';
119
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-ajax-data.php';
120
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-ajax-file.php';
121
+
 
 
122
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-feed-crud-handler.php';
123
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/data/class-tvc-taxonomies.php';
124
+
 
 
 
 
 
125
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/application/tvc-support-fields.php';
126
+
 
 
 
 
 
 
 
 
 
127
  require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-tvc-register-scripts.php';
128
  /**
129
  * The class responsible for defining all actions that occur in the admin area.
152
  * @access private
153
  */
154
  private function set_locale() {
 
155
  $plugin_i18n = new Enhanced_Ecommerce_Google_Analytics_i18n();
 
156
  $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
 
157
  }
158
 
159
  /**
274
  die();
275
  }
276
  }
277
+ }
includes/class-tvc-register-scripts.php CHANGED
@@ -21,73 +21,15 @@ if ( ! class_exists( 'TVC_Register_Scripts' ) ) :
21
  $action_level = 2; // for future use
22
  $this->_version_stamp = defined( 'WP_DEBUG' ) && WP_DEBUG ? time() : $premium_version_nr . '1.0';
23
  $this->_js_min = defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min';
24
- // add hooks
25
- //add_action( 'admin_enqueue_scripts', array( $this, 'tvc_register_required_scripts' ) );
26
  add_action( 'admin_enqueue_scripts', array( $this, 'tvc_register_required_nonce' ) );
27
  // only load the next hooks when on the Settings page
28
  if ( tvc_on_plugins_settings_page() ) {
29
  add_action( 'admin_enqueue_scripts', array( $this, 'tvc_register_required_options_page_scripts' ) );
30
  add_action( 'admin_enqueue_scripts', array( $this, 'tvc_register_required_options_page_nonce' ) );
31
  }
32
- if ( 1 === $action_level ) {
33
- add_action( 'admin_enqueue_scripts', array( $this, 'tvc_register_level_one_scripts' ) );
34
- } elseif ( 2 === $action_level ) {
35
- add_action( 'admin_enqueue_scripts', array( $this, 'tvc_register_level_two_scripts' ) );
36
- }
37
- }
38
- /**
39
- * Registers all required java scripts for the feed manager pages.
40
- */
41
- public function tvc_register_required_scripts() {
42
- $screen = get_current_screen();
43
-
44
- if($screen->id == 'toplevel_page_aga-envato-api' || $screen->id == 'aga-google-shopping_page_tvc-product-feed-manager' || $screen->id == 'aga-google-shopping_page_tvc-configuration-page'){
45
- //wp_register_style("tvc_gmc_style-1", ENHANCAD_PLUGIN_URL . '/admin/css/style.css');
46
- //wp_enqueue_style( "tvc_gmc_style-1");
47
- wp_register_style("tvc_gmc_style-2", ENHANCAD_PLUGIN_URL . '/css/style.css');
48
- wp_enqueue_style( "tvc_gmc_style-2");
49
- wp_register_style("tvc-product-feed-manager-1", ENHANCAD_PLUGIN_URL . '/css/actionable-google-analytics-admin.css');
50
- wp_enqueue_style( "tvc-product-feed-manager-1");
51
- wp_register_script( 'tvc_gmc_bootstrap-script-1', ENHANCAD_PLUGIN_URL . '/includes/setup/js/bootstrap' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
52
- wp_enqueue_script( 'tvc_gmc_bootstrap-script-1');
53
- wp_register_script( 'tvc_gmc_bootstrap-script-1', ENHANCAD_PLUGIN_URL . '/includes/setup/js/jquery-3.5.1.slim' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
54
- wp_enqueue_script( 'tvc_gmc_bootstrap-script-1');
55
- wp_register_script( 'tvc_gmc_bootstrap-script-1', ENHANCAD_PLUGIN_URL . '/includes/setup/js/popper' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
56
- wp_enqueue_script( 'tvc_gmc_bootstrap-script-1');
57
- wp_register_script( 'tvc_gmc-api-script', ENHANCAD_PLUGIN_URL . '/includes/setup/js/merchant-center.js', array( 'jquery' ), $this->_version_stamp, true );
58
- wp_enqueue_script( 'tvc_gmc-api-script');
59
- //wp_enqueue_script( 'tvc-product-feed-manager', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/sweetalert' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
60
- wp_register_script( 'tvc-product-feed-manager-fa', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/fontawesome.js', array( 'jquery' ), $this->_version_stamp, false );
61
- wp_enqueue_script( 'tvc-product-feed-manager-fa');
62
- wp_register_style('aga_bootstrap', '//maxcdn.bootstrapcdn.com/bootstrap/4.5.1/css/bootstrap.min.css');
63
- wp_enqueue_style('aga_bootstrap');
64
- }
65
- // enqueue notice handling script
66
- wp_enqueue_script( 'tvc_message-handling-script', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_msg_events' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
67
- // do not load the other scripts unless a tvc page is on
68
-
69
- wp_register_style( 'tvc-product-feed-manager', ENHANCAD_PLUGIN_URL . '/css/tvc_admin-page' . $this->_js_min . '.css', '', $this->_version_stamp, 'screen' );
70
- wp_enqueue_style( 'tvc-product-feed-manager' );
71
- // embed the javascript file that makes the Ajax requests
72
- wp_register_script( 'tvc_feed-settings-script', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_feed-form' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp,'screen' );
73
- wp_enqueue_script( 'tvc_feed-settings-script');
74
- wp_enqueue_script( 'tvc_business-logic-script', ENHANCAD_PLUGIN_URL . '/includes/application/js/tvc_logic.js', array( 'jquery' ), $this->_version_stamp, false );
75
- wp_enqueue_script( 'tvc_data-script', ENHANCAD_PLUGIN_URL . '/includes/data/js/tvc_data' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
76
- wp_enqueue_script( 'tvc_event-listener-script1', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_feed-form-events'. $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
77
- wp_enqueue_script( 'wp_head', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/fontawesome.js', array( 'jquery' ), $this->_version_stamp, false );
78
- wp_enqueue_script( 'tvc_form-support-script1', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_support' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
79
- wp_enqueue_script( 'tvc_verify-inputs-script', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_verify-inputs' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
80
- wp_enqueue_script( 'tvc_feed-handling-script', ENHANCAD_PLUGIN_URL . '/includes/application/js/tvc_feedhandling' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
81
- wp_enqueue_script( 'tvc_feed-html', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_feed-html' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
82
- wp_register_script( 'tvc_feed-list-script', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_feed-list.js', array( 'jquery' ), $this->_version_stamp,'screen' );
83
- wp_enqueue_script( 'tvc_feed-list-script');
84
- wp_enqueue_script( 'tvc_feed-meta-script', ENHANCAD_PLUGIN_URL . '/includes/application/js/tvc_object-attribute-meta' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
85
- wp_enqueue_script( 'tvc_feed-objects-script', ENHANCAD_PLUGIN_URL . '/includes/application/js/tvc_object-feed' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
86
- wp_enqueue_script( 'tvc_general-functions-script', ENHANCAD_PLUGIN_URL . '/includes/application/js/tvc_general-functions' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
87
- wp_enqueue_script( 'tvc_object-handling-script', ENHANCAD_PLUGIN_URL . '/includes/data/js/tvc_metadatahandling' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false );
88
- wp_enqueue_script( 'tvc_script_ajax', ENHANCAD_PLUGIN_URL . '/includes/data/js/tvc_ajaxdatahandling' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, false);
89
- wp_enqueue_script( 'tvc_feed-queue-string-script', ENHANCAD_PLUGIN_URL . '/includes/data/js/tvc_feed-queue-string.js', array( 'jquery' ), $this->_version_stamp, false );
90
  }
 
91
  /**
92
  * Generate the required nonce's.
93
  */
@@ -103,23 +45,7 @@ if ( ! class_exists( 'TVC_Register_Scripts' ) ) :
103
  'campaignCategoryListsNonce' => wp_create_nonce( 'tvcajax-campaign-category-lists-nonce' ),
104
  'campaignStatusNonce' => wp_create_nonce( 'tvcajax-update-campaign-status-nonce' ),
105
  'campaignDeleteNonce' => wp_create_nonce( 'tvcajax-delete-campaign-nonce' ),
106
- 'categoryListsNonce' => wp_create_nonce( 'tvcajax-category-lists-nonce' ),
107
- 'deleteFeedNonce' => wp_create_nonce( 'tvcajax-delete-feed-nonce' ),
108
- 'feedDataNonce' => wp_create_nonce( 'tvcajax-feed-data-nonce' ),
109
- 'feedStatusNonce' => wp_create_nonce( 'tvcajax-feed-status-nonce' ),
110
- 'inputFieldsNonce' => wp_create_nonce( 'tvcajax-input-fields-nonce' ),
111
- 'inputFeedFiltersNonce' => wp_create_nonce( 'tvcajax-feed-filters-nonce' ),
112
- 'logMessageNonce' => wp_create_nonce( 'tvcajax-log-message-nonce' ),
113
- 'nextCategoryNonce' => wp_create_nonce( 'tvcajax-next-category-nonce' ),
114
- 'outputFieldsNonce' => wp_create_nonce( 'tvcajax-output-fields-nonce' ),
115
- 'postFeedsListNonce' => wp_create_nonce( 'tvcajax-post-feeds-list-nonce' ),
116
- 'switchFeedStatusNonce' => wp_create_nonce( 'tvcajax-switch-feed-status-nonce' ),
117
- 'duplicateFeedNonce' => wp_create_nonce( 'tvcajax-duplicate-existing-feed-nonce' ),
118
- 'updateFeedDataNonce' => wp_create_nonce( 'tvcajax-update-feed-data-nonce' ),
119
- 'updateAutoFeedFixNonce' => wp_create_nonce( 'tvcajax-set-auto-feed-fix-nonce' ),
120
- 'updateFeedFileNonce' => wp_create_nonce( 'tvcajax-update-feed-file-nonce' ),
121
- 'nextFeedInQueueNonce' => wp_create_nonce( 'tvcajax-next-feed-in-queue-nonce' ),
122
- 'noticeDismissionNonce' => wp_create_nonce( 'tvcajax-duplicate-backup-nonce' ),
123
  )
124
  );
125
  }
@@ -128,14 +54,7 @@ if ( ! class_exists( 'TVC_Register_Scripts' ) ) :
128
  */
129
  public function tvc_register_required_options_page_scripts() {
130
  // enqueue notice handling script
131
- //wp_enqueue_style( 'tvc-product-feed-manager-setting', ENHANCAD_PLUGIN_URL . '/css/tvc_setting-page' . $this->_js_min . '.css', '', $this->_version_stamp, 'screen' );
132
- //wp_enqueue_script( 'tvc_message-handling-script', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_msg_events' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, true );
133
- //wp_enqueue_style('font_awesome','//use.fontawesome.com/releases/v5.0.13/css/all.css');
134
- //==wp_enqueue_script( 'tvc_backup-list-script', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_backup-list'. $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp,'screen' );
135
  wp_enqueue_script( 'tvc_data-handling-script', ENHANCAD_PLUGIN_URL . '/includes/data/js/tvc_ajaxdatahandling' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, true );
136
- //wp_enqueue_script( 'tvc_setting-script', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_setting-form' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, true );
137
- //wp_enqueue_script( 'tvc_event-listener-script', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_feed-form-events' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, true );
138
- //wp_enqueue_script( 'tvc_form-support-script', ENHANCAD_PLUGIN_URL . '/includes/user-interface/js/tvc_support' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, true );
139
  }
140
  /**
141
  * Generate the nonce's for the Settings page.
@@ -147,54 +66,12 @@ if ( ! class_exists( 'TVC_Register_Scripts' ) ) :
147
  'myAjaxNonces',
148
  array(
149
  // URL to wp-admin/admin-ajax.php to process the request
150
- 'ajaxurl' => admin_url( 'admin-ajax.php' ),
151
- // generate the required nonce's
152
- 'setAutoFeedFixNonce' => wp_create_nonce( 'tvcajax-auto-feed-fix-nonce' ),
153
- 'setBackgroundModeNonce' => wp_create_nonce( 'tvcajax-background-mode-nonce' ),
154
- 'setFeedLoggerStatusNonce' => wp_create_nonce( 'tvcajax-logger-status-nonce' ),
155
- 'setShowPINonce' => wp_create_nonce( 'tvcajax-show-pi-nonce' ),
156
- 'setThirdPartyKeywordsNonce' => wp_create_nonce( 'tvcajax-set-third-party-keywords-nonce' ),
157
- 'setNoticeMailaddressNonce' => wp_create_nonce( 'tvcajax-set-notice-mailaddress-nonce' ),
158
- 'setBatchProcessingLimitNonce' => wp_create_nonce( 'tvcajax-set-batch-processing-limit-nonce' ),
159
- 'backupNonce' => wp_create_nonce( 'tvcajax-backup-nonce' ),
160
- 'deleteBackupNonce' => wp_create_nonce( 'tvcajax-delete-backup-nonce' ),
161
- 'restoreBackupNonce' => wp_create_nonce( 'tvcajax-restore-backup-nonce' ),
162
- 'duplicateBackupNonce' => wp_create_nonce( 'tvcajax-duplicate-backup-nonce' ),
163
- 'postBackupListNonce' => wp_create_nonce( 'tvcajax-backups-list-nonce' ),
164
- 'postSetupOptionsNonce' => wp_create_nonce( 'tvcajax-setting-options-nonce' ),
165
- 'setClearFeedProcessNonce' => wp_create_nonce( 'tvcajax-clear-feed-nonce' ),
166
- 'setReInitiateNonce' => wp_create_nonce( 'tvcajax-reinitiate-nonce' ),
167
  )
168
  );
169
  }
170
- public function tvc_register_level_one_scripts() {
171
- if ( ! tvc_on_own_main_plugin_page() ) {
172
- return;
173
- }
174
- $data = new TVC_Data;
175
- $installed_channels = $data->get_channels();
176
- wp_enqueue_script( 'tvc_channel-functions-script', ENHANCAD_PLUGIN_URL . '/includes/application/js/tvc_channel-functions' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, true );
177
- foreach ( $installed_channels as $channel ) {
178
- wp_enqueue_script( 'tvc_' . $channel['short'] . '-source-script', TVC_UPLOADS_URL . '/tvc-channels/' . $channel['short'] . '/tvc_' . $channel['short'] . '-source.js', array( 'jquery' ), $this->_version_stamp, true );
179
- }
180
- }
181
- public function tvc_register_level_two_scripts() {
182
- wp_enqueue_script(
183
- 'tvc_channel-functions-script',
184
- ENHANCAD_PLUGIN_URL . '/includes/application/js/tvc_channel-functions.js',
185
- array( 'jquery' ),
186
- $this->_version_stamp,
187
- false
188
- );
189
- wp_enqueue_script(
190
- 'tvc_google-source-script',
191
- ENHANCAD_PLUGIN_URL . '/includes/application/google/tvc_google-source.js',
192
- array( 'jquery' ),
193
- $this->_version_stamp,
194
- false
195
- );
196
- }
197
  }
198
  // End of TVC_Register_Scripts class
199
  endif;
200
  $my_ajax_registration_class = new TVC_Register_Scripts();
 
21
  $action_level = 2; // for future use
22
  $this->_version_stamp = defined( 'WP_DEBUG' ) && WP_DEBUG ? time() : $premium_version_nr . '1.0';
23
  $this->_js_min = defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min';
24
+
 
25
  add_action( 'admin_enqueue_scripts', array( $this, 'tvc_register_required_nonce' ) );
26
  // only load the next hooks when on the Settings page
27
  if ( tvc_on_plugins_settings_page() ) {
28
  add_action( 'admin_enqueue_scripts', array( $this, 'tvc_register_required_options_page_scripts' ) );
29
  add_action( 'admin_enqueue_scripts', array( $this, 'tvc_register_required_options_page_nonce' ) );
30
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  }
32
+
33
  /**
34
  * Generate the required nonce's.
35
  */
45
  'campaignCategoryListsNonce' => wp_create_nonce( 'tvcajax-campaign-category-lists-nonce' ),
46
  'campaignStatusNonce' => wp_create_nonce( 'tvcajax-update-campaign-status-nonce' ),
47
  'campaignDeleteNonce' => wp_create_nonce( 'tvcajax-delete-campaign-nonce' ),
48
+ 'categoryListsNonce' => wp_create_nonce( 'tvcajax-category-lists-nonce' )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  )
50
  );
51
  }
54
  */
55
  public function tvc_register_required_options_page_scripts() {
56
  // enqueue notice handling script
 
 
 
 
57
  wp_enqueue_script( 'tvc_data-handling-script', ENHANCAD_PLUGIN_URL . '/includes/data/js/tvc_ajaxdatahandling' . $this->_js_min . '.js', array( 'jquery' ), $this->_version_stamp, true );
 
 
 
58
  }
59
  /**
60
  * Generate the nonce's for the Settings page.
66
  'myAjaxNonces',
67
  array(
68
  // URL to wp-admin/admin-ajax.php to process the request
69
+ 'ajaxurl' => admin_url( 'admin-ajax.php' )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  )
71
  );
72
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  }
74
  // End of TVC_Register_Scripts class
75
  endif;
76
  $my_ajax_registration_class = new TVC_Register_Scripts();
77
+ ?>
includes/data/class-tvc-ajax-file.php CHANGED
@@ -1,125 +1,138 @@
1
  <?php
2
 
3
  /**
4
- * TVC Ajax File Class.
5
- *
6
- * @package TVC Product Feed Manager/Data/Classes
7
- */
8
  if(!defined('ABSPATH')){
9
- exit;
10
  }
11
 
12
  if(!class_exists('TVC_Ajax_File')) :
13
- /**
14
- * Ajax File Class
15
- */
16
- class TVC_Ajax_File extends TVC_Ajax_Calls {
17
- private $apiDomain;
18
- protected $access_token;
19
- protected $refresh_token;
20
- public function __construct(){
21
- parent::__construct();
22
- $this->apiDomain = TVC_API_CALL_URL;
23
- // hooks
24
- add_action('wp_ajax_tvcajax-get-campaign-categories', array($this, 'tvcajax_get_campaign_categories'));
25
- add_action('wp_ajax_tvcajax-update-campaign-status', array($this, 'tvcajax_update_campaign_status'));
26
- add_action('wp_ajax_tvcajax-delete-campaign', array($this, 'tvcajax_delete_campaign'));
27
- add_action('wp_ajax_tvcajax-get-next-categories', array($this, 'tvcajax_read_next_categories'));
28
- add_action('wp_ajax_tvcajax-get-category-lists', array($this, 'tvcajax_read_category_lists'));
29
- add_action('wp_ajax_tvcajax-delete-feed-file', array($this, 'tvcajax_delete_feed_file'));
30
- add_action('wp_ajax_tvcajax-update-feed-file', array($this, 'tvcajax_update_feed_file'));
31
- add_action('wp_ajax_tvcajax-log-message', array($this, 'tvcajax_log_message'));
32
- add_action('wp_ajax_tvcajax-auto-feed-fix-mode-selection', array($this, 'tvcajax_auto_feed_fix_mode_selection'));
33
- add_action('wp_ajax_tvcajax-background-processing-mode-selection', array($this, 'tvcajax_background_processing_mode_selection'));
34
- add_action('wp_ajax_tvcajax-feed-logger-status-selection', array($this, 'tvcajax_feed_logger_status_selection'));
35
- add_action('wp_ajax_tvcajax-show-product-identifiers-selection', array($this, 'tvcajax_show_product_identifiers_selection'));
36
- add_action('wp_ajax_tvcajax-debug-mode-selection', array($this, 'tvcajax_debut_mode_selection'));
37
- add_action('wp_ajax_tvcajax-third-party-attribute-keywords', array($this, 'tvcajax_set_third_party_attribute_keywords'));
38
- add_action('wp_ajax_tvcajax-set-notice-mailaddress', array($this, 'tvcajax_set_notice_mailaddress'));
39
- add_action('wp_ajax_tvcajax-clear-feed-process-data', array($this, 'tvcajax_clear_feed_process_data'));
40
- add_action('wp_ajax_tvcajax-reinitiate-plugin', array($this, 'tvcajax_reinitiate_plugin'));
41
- add_action('wp_ajax_tvcajax-product-syncup', array($this, 'tvcajax_product_syncup'));
42
- add_action('wp_ajax_tvcajax-gmc-category-lists', array($this, 'tvcajax_get_gmc_categories'));
43
- add_action('wp_ajax_tvcajax-custom-metrics-dimension', array($this, 'tvcajax_custom_metrics_dimension'));
44
- add_action('wp_ajax_tvcajax-store-time-taken', array($this, 'tvcajax_store_time_taken'));
45
- add_action('wp_ajax_tvc_call_api_sync', array($this, 'tvc_call_api_sync'));
46
- }
47
- public function tvc_call_api_sync(){
48
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'apiSyncupNonce'), 'tvc_call_api_sync-nonce')){
49
- $TVC_Admin_Helper = new TVC_Admin_Helper();
50
- $tvc_msg = $TVC_Admin_Helper->set_update_api_to_db();
51
- sleep(2);
52
- echo json_encode(array('status' => 'success', 'message' => $tvc_msg));
53
- exit;
54
- }
55
- exit;
56
- }
57
- public function get_tvc_access_token(){
58
- if(!empty($this->access_token)){
59
- return $this->access_token;
60
- }else if(isset($_SESSION['access_token']) && $_SESSION['access_token']){
61
- $this->access_token = $_SESSION['access_token'];
62
- return $this->access_token;
63
- }else{
64
- $TVC_Admin_Helper = new TVC_Admin_Helper();
65
- $google_detail = $TVC_Admin_Helper->get_ee_options_data();
66
- $this->access_token = $google_detail['setting']->access_token;
67
- return $this->access_token;
68
- }
69
- }
70
-
71
- public function get_tvc_refresh_token(){
72
- if(!empty($this->refresh_token)){
73
- return $this->refresh_token;
74
- }else if(isset($_SESSION['refresh_token']) && $_SESSION['refresh_token']){
75
- $this->refresh_token = $_SESSION['refresh_token'];
76
- return $this->refresh_token;
77
- }else{
78
- $TVC_Admin_Helper = new TVC_Admin_Helper();
79
- $google_detail = $TVC_Admin_Helper->get_ee_options_data();
80
- $this->refresh_token = $google_detail['setting']->refresh_token;
81
- return $this->refresh_token;
82
- }
83
- }
84
- /**
85
- * Delete the campaign
86
- */
87
- public function tvcajax_delete_campaign(){
88
- // make sure this call is legal
89
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'campaignDeleteNonce'), 'tvcajax-delete-campaign-nonce')){
90
-
91
- $merchantId = filter_input(INPUT_POST, 'merchantId');
92
- $customerId = filter_input(INPUT_POST, 'customerId');
93
- $campaignId = filter_input(INPUT_POST, 'campaignId');
94
-
95
- $url = $this->apiDomain.'/campaigns/delete';
96
-
97
- $data = [
98
- 'merchant_id' => $merchantId,
99
- 'customer_id' => $customerId,
100
- 'campaign_id' => $campaignId
101
- ];
102
-
103
- $args = array(
104
- 'headers' => array(
105
- 'Authorization' => "Bearer MTIzNA==",
106
- 'Content-Type' => 'application/json'
107
- ),
108
- 'method' => 'DELETE',
109
- 'body' => wp_json_encode($data)
110
- );
111
-
112
- // Send remote request
113
- $request = wp_remote_request($url, $args);
114
-
115
- // Retrieve information
116
- $response_code = wp_remote_retrieve_response_code($request);
117
- $response_message = wp_remote_retrieve_response_message($request);
118
- $response_body = json_decode(wp_remote_retrieve_body($request));
119
-
120
- if((isset($response_body->error) && $response_body->error == '')){
121
- $message = $response_body->message;
122
- echo json_encode(['status' => 'success', 'message' => $message]);
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  // return new WP_REST_Response(
124
  // array(
125
  // 'status' => $response_code,
@@ -127,74 +140,73 @@ if(!class_exists('TVC_Ajax_File')) :
127
  // 'data' => $response_body->data
128
  // )
129
  // );
130
- }else{
131
- $message = is_array($response_body->errors) ? $response_body->errors[0] : "Face some unprocessable entity";
132
- echo json_encode(['status' => 'error', 'message' => $message]);
133
- // return new WP_Error($response_code, $response_message, $response_body);
134
- }
135
-
136
- // echo json_encode( $categories );
137
- }
138
-
139
- // IMPORTANT: don't forget to exit
140
- exit;
141
- }
142
-
143
- /**
144
- * Update the campaign status pause/active
145
- */
146
- public function tvcajax_update_campaign_status(){
147
- // make sure this call is legal
148
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'campaignStatusNonce'), 'tvcajax-update-campaign-status-nonce')){
149
 
150
- if(!class_exists('ShoppingApi')){
151
- //require_once(__DIR__ . '/ShoppingApi.php');
152
- include(ENHANCAD_PLUGIN_DIR . 'includes/setup/ShoppingApi.php');
153
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
154
 
155
- $merchantId = filter_input(INPUT_POST, 'merchantId');
156
- $customerId = filter_input(INPUT_POST, 'customerId');
157
- $campaignId = filter_input(INPUT_POST, 'campaignId');
158
- $budgetId = filter_input(INPUT_POST, 'budgetId');
159
- $campaignName = filter_input(INPUT_POST, 'campaignName');
160
- $budget = filter_input(INPUT_POST, 'budget');
161
- $status = filter_input(INPUT_POST, 'status');
162
- $url = $this->apiDomain.'/campaigns/update';
163
- $shoppingObj = new ShoppingApi();
164
- $campaignData = $shoppingObj->getCampaignDetails($campaignId);
165
-
166
- $data = [
167
- 'merchant_id' => $merchantId,
168
- 'customer_id' => $customerId,
169
- 'campaign_id' => $campaignId,
170
- 'account_budget_id' => $budgetId,
171
- 'campaign_name' => $campaignName,
172
- 'budget' => $budget,
173
- 'status' => $status,
174
- 'target_country' => $campaignData->data['data']->targetCountry,
175
- 'ad_group_id' => $campaignData->data['data']->adGroupId,
176
- 'ad_group_resource_name' => $campaignData->data['data']->adGroupResourceName
177
- ];
178
-
179
- $args = array(
180
- 'headers' => array(
181
- 'Authorization' => "Bearer MTIzNA==",
182
- 'Content-Type' => 'application/json'
183
- ),
184
- 'method' => 'PATCH',
185
- 'body' => wp_json_encode($data)
186
- );
187
-
188
- // Send remote request
189
- $request = wp_remote_request($url, $args);
190
-
191
- // Retrieve information
192
- $response_code = wp_remote_retrieve_response_code($request);
193
- $response_message = wp_remote_retrieve_response_message($request);
194
- $response_body = json_decode(wp_remote_retrieve_body($request));
195
- if((isset($response_body->error) && $response_body->error == '')){
196
- $message = $response_body->message;
197
- echo json_encode(['status' => 'success', 'message' => $message]);
198
  // return new WP_REST_Response(
199
  // array(
200
  // 'status' => $response_code,
@@ -202,53 +214,53 @@ if(!class_exists('TVC_Ajax_File')) :
202
  // 'data' => $response_body->data
203
  // )
204
  // );
205
- }else{
206
- $message = is_array($response_body->errors) ? $response_body->errors[0] : "Face some unprocessable entity";
207
- echo json_encode(['status' => 'error', 'message' => $message]);
208
- // return new WP_Error($response_code, $response_message, $response_body);
209
- }
210
-
211
- // echo json_encode( $categories );
212
- }
213
-
214
- // IMPORTANT: don't forget to exit
215
- exit;
216
- }
217
 
218
- /**
219
- * Returns the campaign categories from a selected country
220
- */
221
- public function tvcajax_get_campaign_categories(){
222
- // make sure this call is legal
223
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'campaignCategoryListsNonce'), 'tvcajax-campaign-category-lists-nonce')){
224
-
225
- $country_code = filter_input(INPUT_POST, 'countryCode');
226
- $customer_id = filter_input(INPUT_POST, 'customerId');
227
- $url = $this->apiDomain.'/products/categories';
228
-
229
- $data = [
230
- 'customer_id' => $customer_id,
231
- 'country_code' => $country_code
232
- ];
233
-
234
- $args = array(
235
- 'headers' => array(
236
- 'Authorization' => "Bearer MTIzNA==",
237
- 'Content-Type' => 'application/json'
238
- ),
239
- 'body' => wp_json_encode($data)
240
- );
241
-
242
- // Send remote request
243
- $request = wp_remote_post($url, $args);
244
-
245
- // Retrieve information
246
- $response_code = wp_remote_retrieve_response_code($request);
247
- $response_message = wp_remote_retrieve_response_message($request);
248
- $response_body = json_decode(wp_remote_retrieve_body($request));
249
-
250
- if((isset($response_body->error) && $response_body->error == '')){
251
- echo json_encode($response_body->data);
 
 
 
 
 
 
 
252
  // return new WP_REST_Response(
253
  // array(
254
  // 'status' => $response_code,
@@ -256,346 +268,346 @@ if(!class_exists('TVC_Ajax_File')) :
256
  // 'data' => $response_body->data
257
  // )
258
  // );
259
- }else{
260
- echo json_encode([]);
261
- // return new WP_Error($response_code, $response_message, $response_body);
262
- }
263
-
264
- // echo json_encode( $categories );
265
- }
266
-
267
- // IMPORTANT: don't forget to exit
268
- exit;
269
- }
270
-
271
- /**
272
- * Returns the sub-categories from a selected category
273
- */
274
- public function tvcajax_read_next_categories(){
275
- // make sure this call is legal
276
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'nextCategoryNonce'), 'tvcajax-next-category-nonce')){
277
- $file_class = new TVC_File();
278
-
279
- $channel_id = filter_input(INPUT_POST, 'channelId');
280
- $requested_level = filter_input(INPUT_POST, 'requestedLevel');
281
- $parent_category = filter_input(INPUT_POST, 'parentCategory');
282
- $file_language = filter_input(INPUT_POST, 'fileLanguage');
283
- $categories = $file_class->get_categories_for_list($channel_id, $requested_level, $parent_category, $file_language);
284
-
285
- if(!is_array($categories)){
286
- if('0' === substr($categories, - 1)){
287
- chop($categories, '0');
288
- }
289
- }
290
-
291
- echo json_encode($categories);
292
- }
293
-
294
- // IMPORTANT: don't forget to exit
295
- exit;
296
- }
297
-
298
- /**
299
- * Read the category list
300
- */
301
- public function tvcajax_read_category_lists(){
302
- // make sure this call is legal
303
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'categoryListsNonce'), 'tvcajax-category-lists-nonce')){
304
- $file_class = new TVC_File();
305
-
306
- $channel_id = filter_input(INPUT_POST, 'channelId');
307
- $main_categories_string = filter_input(INPUT_POST, 'mainCategories');
308
- $file_language = filter_input(INPUT_POST, 'fileLanguage');
309
- $categories_array = explode(' > ', $main_categories_string);
310
- $categories = array();
311
- $required_levels = count($categories_array) > 0 ? ( count($categories_array) + 1 ) : count($categories_array);
312
-
313
- for($i = 0; $i < $required_levels; $i ++){
314
- $parent_category = $i > 0 ? $categories_array[$i - 1] : '';
315
- $c = $file_class->get_categories_for_list($channel_id, $i, $parent_category, $file_language);
316
- if($c){
317
- array_push($categories, $c);
318
- }
319
- }
320
-
321
- echo json_encode($categories);
322
- }
323
-
324
- // IMPORTANT: don't forget to exit
325
- exit;
326
- }
327
-
328
- /**
329
- * Delete a specific feed file
330
- */
331
- public function tvcajax_delete_feed_file(){
332
- // make sure this call is legal
333
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'deleteFeedNonce'), 'tvcajax-delete-feed-nonce')){
334
- $file_name = filter_input(INPUT_POST, 'fileTitle');
335
-
336
- if(file_exists(WP_PLUGIN_DIR . '/tvc-product-feed-manager-support/feeds/' . $file_name)){
337
- $file = WP_PLUGIN_DIR . '/tvc-product-feed-manager-support/feeds/' . $file_name;
338
- }else{
339
- $file = TVC_FEEDS_DIR . '/' . $file_name;
340
- }
341
-
342
- // only return results when the user is an admin with manage options
343
- if(is_admin()){
344
- /* translators: %s: Title of the feed file */
345
- echo file_exists($file) ? unlink($file) : tvc_show_wp_error(sprintf(esc_html__('Could not find file %s.', 'tvc-product-feed-manager'), $file));
346
- }else{
347
- echo tvc_show_wp_error(esc_html__('Error deleting the feed. You do not have the correct authorities to delete the file.', 'tvc-product-feed-manager'));
348
- }
349
- }
350
-
351
- // IMPORTANT: don't forget to exit
352
- exit;
353
- }
354
-
355
- /**
356
- * This function fetches the posted data and triggers the update of the feed file on the server.
357
- */
358
- public function tvcajax_update_feed_file(){
359
- // make sure this call is legal
360
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'updateFeedFileNonce'), 'tvcajax-update-feed-file-nonce')){
361
-
362
- // fetch the data from $_POST
363
- $feed_id = filter_input(INPUT_POST, 'feedId');
364
- $background_mode_disabled = get_option('tvc_disabled_background_mode', 'false');
365
-
366
- TVC_Feed_Controller::add_id_to_feed_queue($feed_id);
367
-
368
- // if there is no feed processing in progress, of background processing is switched off, start updating the current feed
369
- if(!TVC_Feed_Controller::feed_is_processing() || 'true' === $background_mode_disabled){
370
- do_action('tvc_manual_feed_update_activated', $feed_id);
371
-
372
- $feed_master_class = new TVC_Feed_Master_Class($feed_id);
373
- $feed_master_class->update_feed_file(false);
374
- }else{
375
- $data_class = new TVC_Data();
376
- $data_class->update_feed_status($feed_id, 4); // feed status to waiting in queue
377
- echo 'pushed_to_queue';
378
- }
379
- }
380
-
381
- // IMPORTANT: don't forget to exit
382
- exit;
383
- }
384
-
385
- /**
386
- * Logs a message from a javascript call to the server
387
- */
388
- public function tvcajax_log_message(){
389
- // make sure this call is legal
390
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'logMessageNonce'), 'tvcajax-log-message-nonce')){
391
- // fetch the data from $_POST
392
- $message = filter_input(INPUT_POST, 'messageList');
393
- $file_name = filter_input(INPUT_POST, 'fileName');
394
- $text_message = strip_tags($message);
395
-
396
- // only return results when the user is an admin with manage options
397
- if(is_admin()){
398
- //tvc_write_log_file( $text_message, $file_name );
399
- }else{
400
- echo tvc_show_wp_error(esc_html__('Error writing the feed. You do not have the correct authorities to write the file.', 'tvc-product-feed-manager'));
401
- }
402
- }
403
-
404
- // IMPORTANT: don't forget to exit
405
- exit;
406
- }
407
-
408
- /**
409
- * Changes the Auto Feed Fix setting from the Settings page
410
- *
411
- * @since 1.7.0
412
- */
413
- public function tvcajax_auto_feed_fix_mode_selection(){
414
- // make sure this call is legal
415
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'updateAutoFeedFixNonce'), 'tvcajax-auto-feed-fix-nonce')){
416
- $selection = filter_input(INPUT_POST, 'fix_selection');
417
- update_option('tvc_auto_feed_fix', $selection);
418
-
419
- echo get_option('tvc_auto_feed_fix');
420
- }
421
-
422
- // IMPORTANT: don't forget to exit
423
- exit;
424
- }
425
-
426
- /**
427
- * Changes the Disable Background processing setting from the Settings page
428
- *
429
- * @since 2.0.7
430
- */
431
- public function tvcajax_background_processing_mode_selection(){
432
- // make sure this call is legal
433
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'backgroundModeNonce'), 'tvcajax-background-mode-nonce')){
434
- $selection = filter_input(INPUT_POST, 'mode_selection');
435
- update_option('tvc_disabled_background_mode', $selection);
436
-
437
- echo get_option('tvc_disabled_background_mode');
438
- }
439
-
440
- // IMPORTANT: don't forget to exit
441
- exit;
442
- }
443
-
444
- /**
445
- * Changes the Feed Process Logger setting from the Settings page.
446
- *
447
- * @since 2.8.0
448
- */
449
- public function tvcajax_feed_logger_status_selection(){
450
- // make sure this call is legal
451
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'feedLoggerStatusNonce'), 'tvcajax-logger-status-nonce')){
452
- $selection = filter_input(INPUT_POST, 'statusSelection');
453
- update_option('tvc_process_logger_status', $selection);
454
-
455
- echo get_option('tvc_process_logger_status');
456
- }
457
-
458
- // IMPORTANT: don't forget to exit
459
- exit;
460
- }
461
-
462
- /**
463
- * Changes the Show Product Identifiers setting from the Settings page.
464
- *
465
- * @since 2.10.0
466
- */
467
- public function tvcajax_show_product_identifiers_selection(){
468
- // make sure this call is legal
469
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'showPINonce'), 'tvcajax-show-pi-nonce')){
470
- $selection = filter_input(INPUT_POST, 'showPiSelection');
471
- update_option('tvc_show_product_identifiers', $selection);
472
-
473
- echo get_option('tvc_show_product_identifiers');
474
- }
475
-
476
- // IMPORTANT: don't forget to exit
477
- exit;
478
- }
479
-
480
- /**
481
- * Changes the Debug setting from the Settings page
482
- *
483
- * @since 1.9.0
484
- */
485
- public function tvcajax_debug_mode_selection(){
486
- // make sure this call is legal
487
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'debugNonce'), 'tvcajax-debug-nonce')){
488
- $selection = filter_input(INPUT_POST, 'debug_selection');
489
- update_option('tvc_debug_mode', $selection);
490
-
491
- echo get_option('tvc_debug_mode');
492
- }
493
-
494
- // IMPORTANT: don't forget to exit
495
- exit;
496
- }
497
-
498
- public function tvcajax_set_third_party_attribute_keywords(){
499
- // make sure this call is legal
500
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'thirdPartyKeywordsNonce'), 'tvcajax-set-third-party-keywords-nonce')){
501
- $keywords = filter_input(INPUT_POST, 'keywords');
502
- update_option('tvc_third_party_attribute_keywords', $keywords);
503
-
504
- echo get_option('tvc_third_party_attribute_keywords');
505
- }
506
-
507
- // IMPORTANT: don't forget to exit
508
- exit;
509
- }
510
-
511
- public function tvcajax_set_notice_mailaddress(){
512
- // make sure this call is legal
513
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'noticeMailaddressNonce'), 'tvcajax-set-notice-mailaddress-nonce')){
514
- $mailaddress = filter_input(INPUT_POST, 'mailaddress');
515
- update_option('tvc_notice_mailaddress', $mailaddress);
516
-
517
- echo get_option('tvc_notice_mailaddress');
518
- }
519
-
520
- // IMPORTANT: don't forget to exit
521
- exit;
522
- }
523
-
524
- /**
525
- * Re-initiates the plugin, updates the database and loads all cron jobs
526
- *
527
- * @since 1.9.0
528
- */
529
- public function tvcajax_reinitiate_plugin(){
530
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'reInitiateNonce'), 'tvcajax-reinitiate-nonce')){
531
-
532
- if(tvc_reinitiate_plugin()){
533
- echo 'Plugin re-initiated';
534
- }else{
535
- echo 'Re-initiation failed!';
536
- }
537
- }
538
 
539
- // IMPORTANT: don't forget to exit
540
- exit;
541
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
542
 
543
- /**
544
- * Clears all option data that is related to the feed processing
545
- *
546
- * @since 1.10.0
547
- */
548
- public function tvcajax_clear_feed_process_data(){
549
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'clearFeedNonce'), 'tvcajax-clear-feed-nonce')){
550
-
551
- if(tvc_clear_feed_process_data()){
552
- echo esc_html__('Feed processing data cleared', 'tvc-product-feed-manager');
553
- }else{
554
- /* translators: clearing the feed data failed */
555
- echo esc_html__('Clearing failed!', 'tvc-product-feed-manager');
556
- }
557
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
558
 
559
- // IMPORTANT: don't forget to exit
560
- exit;
561
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
562
 
563
- /**
564
- * Returns the campaign categories from a selected country
565
- */
566
- public function tvcajax_get_gmc_categories(){
567
- // make sure this call is legal
568
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'gmcCategoryListsNonce'), 'tvcajax-gmc-category-lists-nonce')){
569
-
570
- $country_code = filter_input(INPUT_POST, 'countryCode');
571
- $customer_id = filter_input(INPUT_POST, 'customerId');
572
- $parent = filter_input(INPUT_POST, 'parent');
573
- $url = $this->apiDomain.'/products/gmc-categories';
574
-
575
- $data = [
576
- 'customer_id' => $customer_id,
577
- 'country_code' => $country_code,
578
- 'parent' => $parent
579
- ];
580
-
581
- $args = array(
582
- 'headers' => array(
583
- 'Authorization' => "Bearer MTIzNA==",
584
- 'Content-Type' => 'application/json'
585
- ),
586
- 'body' => wp_json_encode($data)
587
- );
588
-
589
- // Send remote request
590
- $request = wp_remote_post($url, $args);
591
-
592
- // Retrieve information
593
- $response_code = wp_remote_retrieve_response_code($request);
594
- $response_message = wp_remote_retrieve_response_message($request);
595
- $response_body = json_decode(wp_remote_retrieve_body($request));
596
-
597
- if((isset($response_body->error) && $response_body->error == '')){
598
- echo json_encode($response_body->data);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
599
  // return new WP_REST_Response(
600
  // array(
601
  // 'status' => $response_code,
@@ -603,357 +615,444 @@ if(!class_exists('TVC_Ajax_File')) :
603
  // 'data' => $response_body->data
604
  // )
605
  // );
606
- }else{
607
- echo json_encode([]);
608
- // return new WP_Error($response_code, $response_message, $response_body);
609
- }
610
-
611
- // echo json_encode( $categories );
612
- }
613
 
614
- // IMPORTANT: don't forget to exit
615
- exit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
616
  }
617
-
618
- public function getPostMetaData($id){
619
- $queries = new TVC_Queries();
620
- $column2 = json_decode(json_encode($queries->getTablePostMeta($id)), true);
621
- $arr = array();
622
- foreach($column2 as $val){
623
- $arr[$val['meta_key']] = $val['meta_value'];
624
- }
625
- return $arr;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
626
  }
627
-
628
- /**
629
- * create product batch for product sync up
630
- */
631
- public function tvcajax_product_syncup(){
632
- // make sure this call is legal
633
- ini_set('max_execution_time', '0');
634
- ini_set('memory_limit','-1');
635
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'productSyncupNonce'), 'tvcajax-product-syncup-nonce')){
636
-
637
-
638
- if(!class_exists('CustomApi')){
639
- include(ENHANCAD_PLUGIN_DIR . 'includes/setup/CustomApi.php');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
640
  }
641
- $customObj = new CustomApi();
642
-
643
- $batchId = time();
644
- $merchantId = filter_input(INPUT_POST, 'merchantId');
645
- $customerId = filter_input(INPUT_POST, 'customerId');
646
- $accountId = filter_input(INPUT_POST, 'accountId');
647
- $subscriptionId = filter_input(INPUT_POST, 'subscriptionId');
648
- $platformCustomerId = filter_input(INPUT_POST, 'platformCustomerId');
649
- $data = filter_input(INPUT_POST, 'data');
650
- /* echo "=============="; */
651
- // echo "<pre>";
652
- parse_str($data, $formArray);
653
- //print_r($formArray); // Only for print array
654
- $mappedCatsDB = [];
655
- $mappedCats = [];
656
- $mappedAttrs = [];
657
- $skipProducts = [];
658
- foreach($formArray as $key => $value){
659
- if(preg_match("/^category-name-/i", $key)){
660
- if($value != ''){
661
- $keyArray = explode("name-", $key);
662
- $mappedCatsDB[$keyArray[1]]['name'] = $value;
 
 
 
 
 
 
 
663
  }
664
- }else if(preg_match("/^category-/i", $key)){
665
- if($value != '' && $value > 0){
666
- $keyArray = explode("-", $key);
667
- $mappedCats[$keyArray[1]] = $value;
668
- $mappedCatsDB[$keyArray[1]]['id'] = $value;
 
 
 
 
 
 
 
669
  }
670
- }else{
671
- if($value){
672
- $mappedAttrs[$key] = $value;
 
673
  }
674
- }
675
- }
676
- update_option("ee_prod_mapped_cats", serialize($mappedCatsDB));
677
- update_option("ee_prod_mapped_attrs", serialize($mappedAttrs));
678
-
679
- if(!empty($mappedCats)){
680
- $catMapRequest = [];
681
- $catMapRequest['subscription_id'] = $subscriptionId;
682
- $catMapRequest['customer_id'] = $customerId;
683
- $catMapRequest['merchant_id'] = $merchantId;
684
- $catMapRequest['category'] = $mappedCats;
685
- $catMapResponse = $customObj->setGmcCategoryMapping($catMapRequest);
686
- }
687
-
688
- if(!empty($mappedAttrs)){
689
- $attrMapRequest = [];
690
- $attrMapRequest['subscription_id'] = $subscriptionId;
691
- $attrMapRequest['customer_id'] = $customerId;
692
- $attrMapRequest['merchant_id'] = $merchantId;
693
- $attrMapRequest['attribute'] = $mappedAttrs;
694
- $attrMapResponse = $customObj->setGmcAttributeMapping($attrMapRequest);
695
- }
696
-
697
- $entries = [];
698
- if(!empty($mappedCats)){
699
- foreach($mappedCats as $key => $mappedCat){
700
- $all_products = get_posts(array(
701
- 'post_type' => 'product',
702
- 'numberposts' => -1,
703
- 'post_status' => 'publish',
704
- 'tax_query' => array(
705
- array(
706
- 'taxonomy' => 'product_cat',
707
- 'field' => 'term_id',
708
- 'terms' => $key, /* category name */
709
- 'operator' => 'IN',
710
- )
711
- ),'meta_query' => array(
712
- 'relation' => 'AND',
713
- array(
714
- 'key' => '_stock_status',
715
- 'value' => 'instock'
716
- )
717
- )
718
- ));
719
- $tvc_currency = ((get_option('woocommerce_currency') != '')? get_option('woocommerce_currency') : 'USD');
720
- $tvc_country = (isset($this->woo_country()[0]) ? $this->woo_country()[0] : '');
721
- foreach($all_products as $postkey => $postvalue){
722
- $postmeta = [];
723
- $postmeta = $this->getPostMetaData($postvalue->ID);
724
- $prd = wc_get_product($postvalue->ID);
725
- $postObj = (object) array_merge((array) $postvalue, (array) $postmeta);
726
- $product = [];
727
- foreach($formArray as $key => $value){
728
- $product['channel'] = 'online';
729
- $product['google_product_category'] = $mappedCat;
730
- $product['link'] = get_permalink($postvalue->ID);
731
- if($key == 'image_link'){
732
- $image_id = $prd->get_image_id();
733
- $product['image_link'] = wp_get_attachment_image_url($image_id, 'full');
734
- }else if($key == 'price'){
735
- $product[$key]['value'] = $postObj->_price;
736
- $product[$key]['currency'] = $tvc_currency;
737
- if ($postObj->_price == '' || $postObj->_price == null) {
738
- $skipProducts[$postObj->ID] = $postObj;
739
- }
740
- }else if($key == 'sale_price'){
741
- $product[$key]['value'] = $postObj->_sale_price;
742
- $product[$key]['currency'] = $tvc_currency;
743
- if ($postObj->_sale_price == '' || $postObj->_sale_price == null) {
744
- $skipProducts[$postObj->ID] = $postObj;
745
- }
746
- }else if($key == 'target_country'){
747
- $product[$key] = ($postObj->$value != '' ? $postObj->$value : $tvc_country);
748
- }else if($key == 'content_language'){
749
- $product[$key] = ($postObj->$value != '' ? $postObj->$value : 'en');
750
- }else if(isset($postObj->$value)){
751
- // echo $product[$key]."==".$postObj->$value."<br>";
752
- $product[$key] = $postObj->$value;
753
- }
754
- }
755
-
756
- $entrie = [
757
- 'merchant_id' => $merchantId,
758
- 'batch_id' => ++$batchId,
759
- 'method' => 'insert',
760
- 'product' => $product
761
- ];
762
- $entries[] = $entrie;
763
  }
764
-
765
- wp_reset_query();
766
- }
767
- }else{
768
- $qArgs = array(
769
- 'post_type' => 'product',
770
- 'post_status' => 'publish',
771
- 'meta_query' => array(
772
- 'relation' => 'AND',
773
- array(
774
- 'key' => '_stock_status',
775
- 'value' => 'instock'
776
- )
777
- )
778
- );
779
- $loop = new WP_Query($qArgs);
780
- $tvc_currency = ((get_option('woocommerce_currency') != '')? get_option('woocommerce_currency') : 'USD');
781
- $tvc_country = (isset($this->woo_country()[0]) ? $this->woo_country()[0] : '');
782
- foreach($loop->posts as $postkey => $postvalue){
783
- $postmeta = [];
784
- $postmeta = $this->getPostMetaData($postvalue->ID);
785
- $postObj = (object) array_merge((array) $postvalue, (array) $postmeta);
786
-
787
- $product = [];
788
- foreach($formArray as $key => $value){
789
- $product['content_language'] = 'en';
790
- //$product['target_country'] = 'US';
791
- $product['target_country'] = $tvc_country;
792
- $product['channel'] = 'online';
793
- if($key == 'price'){
794
- $product[$key]['value'] = $postObj->_price;
795
- // $product[$key]['currency'] = 'USD';
796
- $product[$key]['currency'] = $tvc_currency;
797
- if ($postObj->_price == '' || $postObj->_price == null) {
798
- $skipProducts[$postObj->ID] = $postObj;
799
- }
800
- }else if($key == 'sale_price'){
801
- $product[$key]['value'] = $postObj->_sale_price;
802
- //$product[$key]['currency'] = 'USD';
803
- $product[$key]['currency'] = $tvc_currency;
804
- if ($postObj->_sale_price == '' || $postObj->_sale_price == null) {
805
- $skipProducts[$postObj->ID] = $postObj;
806
- }
807
- }else if($key == 'target_country'){
808
- $product[$key] = ($postObj->$value != '' ? $postObj->$value : (isset($this->woo_country()[0]) ? $this->woo_country()[0] : ''));
809
- }else if(isset($postObj->$value)){
810
- $product[$key] = $postObj->$value;
811
- }
812
  }
813
-
814
- $entrie = [
815
- 'merchant_id' => $merchantId,
816
- 'batch_id' => ++$batchId,
817
- 'method' => 'insert',
818
- 'product' => $product
819
- ];
820
- $entries[] = $entrie;
821
  }
822
- wp_reset_query();
 
 
 
 
 
 
 
823
  }
824
-
825
- $data = [
826
- 'merchant_id' => $accountId,
827
- 'account_id' => $merchantId,
828
- //'platform_customer_id' => $platformCustomerId,
829
- 'subscription_id' => $subscriptionId,
830
- 'entries' => $entries,
831
- ];
832
-
833
- $url = $this->apiDomain.'/products/batch';
834
- //$url = 'http://127.0.0.1:8000/api/products/batch';
835
-
836
- $args = array(
837
- 'timeout' => 10000,
838
- 'headers' => array(
839
- 'Authorization' => "Bearer MTIzNA==",
840
- 'Content-Type' => 'application/json',
841
- 'AccessToken' => $this->generateAccessToken($this->get_tvc_access_token(), $this->get_tvc_refresh_token())
842
- ),
843
- 'body' => wp_json_encode($data)
844
- );
845
-
846
- // Send remote request
847
- //echo "<pre>";
848
- //print_r($args);
849
- $request = wp_remote_post($url, $args);
850
-
851
- //print_r($request);
852
-
853
- // Retrieve information
854
- $response_code = wp_remote_retrieve_response_code($request);
855
- $response_message = wp_remote_retrieve_response_message($request);
856
- $response_body = json_decode(wp_remote_retrieve_body($request));
857
- //print_r($response_body);
858
- //die;
859
- if((isset($response_body->error) && $response_body->error == '')){
860
- echo json_encode(['status' => 'success', 'skipProducts' => count($skipProducts)]);
861
- }else{
862
- foreach($response_body->errors as $err){
863
- $message = $err;
864
- break;
865
- }
866
- echo json_encode(['status' => 'error', 'message' => $message]);
 
 
 
 
867
  }
868
-
869
- // echo json_encode( $categories );
 
 
 
 
 
 
 
 
 
870
  }
871
 
872
- // IMPORTANT: don't forget to exit
873
- exit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
874
  }
 
 
 
 
 
 
 
 
 
875
 
876
- /**
877
- * create product batch for product sync up
878
- */
879
- public function tvcajax_custom_metrics_dimension(){
880
- // make sure this call is legal
881
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'customMetricsDimensionNonce'), 'tvcajax-custom-metrics-dimension-nonce')){
882
 
883
- if(!class_exists('CustomApi')){
884
- include(ENHANCAD_PLUGIN_DIR . 'includes/setup/CustomApi.php');
885
- }
886
- $customObj = new CustomApi();
887
 
888
- $accountId = filter_input(INPUT_POST, 'accountId');
889
  // $accountId = '184918792';
890
- $webPropertyId = filter_input(INPUT_POST, 'webPropertyId');
891
  // $webPropertyId = 'UA-184918792-5';
892
- $subscriptionId = filter_input(INPUT_POST, 'subscriptionId');
893
- $data = filter_input(INPUT_POST, 'data');
894
- parse_str($data, $formArray);
895
- //print_r($formArray); // Only for print array
896
-
897
- $customDimension = [];
898
- $customMetrics = [];
899
- $dimensions = [];
900
- $metrics = [];
901
-
902
- for($i = 1; $i <= 12; $i++){
903
- $dimension['id'] = "";
904
- $dimension['index'] = $formArray['did-' . $i];
905
- $dimension['active'] = true;
906
- $dimension['kind'] = "";
907
- $dimension['name'] = $formArray['dname-' . $i];
908
- $dimension['scope'] = $formArray['dscope-' . $i];
909
- $dimension['created'] = "";
910
- $dimension['updated'] = "";
911
- $dimension['self_link'] = "";
912
- $dimension['parent_link']['href'] = "";
913
- $dimension['parent_link']['parent_link_type'] = "";
914
- $dimensions[] = $dimension;
915
- }
916
 
917
- for($i = 1; $i <= 7; $i++){
918
- $metric['id'] = "";
919
- $metric['index'] = $formArray['mid-' . $i];
920
- $metric['active'] = true;
921
- $metric['kind'] = "";
922
- $metric['name'] = $formArray['mname-' . $i];
923
- $metric['scope'] = $formArray['mscope-' . $i];
924
- $metric['created'] = "";
925
- $metric['updated'] = "";
926
- $metric['self_link'] = "";
927
- $metric['max_value'] = "";
928
- $metric['min_value'] = "";
929
- $metric['type'] = "INTEGER";
930
- $metric['parent_link']['href'] = "";
931
- $metric['parent_link']['parent_link_type'] = "";
932
- $metrics[] = $metric;
933
- }
934
 
935
- if(!empty($dimensions)){
936
- $dimenRequest = [];
937
- $dimenRequest['account_id'] = $accountId;
938
- $dimenRequest['web_property_id'] = $webPropertyId;
939
- $dimenRequest['subscription_id'] = $subscriptionId;
940
- $dimenRequest['data'] = $dimensions;
941
- $dimenResponse = $customObj->createCustomDimensions($dimenRequest);
942
- }
943
- if(!empty($metrics)){
944
- $metrRequest = [];
945
- $metrRequest['account_id'] = $accountId;
946
- $metrRequest['web_property_id'] = $webPropertyId;
947
- $metrRequest['subscription_id'] = $subscriptionId;
948
- $metrRequest['data'] = $metrics;
949
- $metrResponse = $customObj->createCustomMetrics($metrRequest);
950
- }
951
 
952
 
953
- // Retrieve information
954
- /* $response_code = wp_remote_retrieve_response_code($request);
955
- $response_message = wp_remote_retrieve_response_message($request);
956
- $response_body = json_decode(wp_remote_retrieve_body($request)); */
957
 
958
  // print_r($dimenResponse);
959
  // echo "=======";
@@ -961,8 +1060,8 @@ if(!class_exists('TVC_Ajax_File')) :
961
  // exit;
962
 
963
 
964
- if((isset($dimenResponse->error) && $dimenResponse->error == '' && isset($metrResponse->error) && $metrResponse->error == '')){
965
- echo json_encode(['status' => 'success']);
966
  // return new WP_REST_Response(
967
  // array(
968
  // 'status' => $response_code,
@@ -970,57 +1069,57 @@ if(!class_exists('TVC_Ajax_File')) :
970
  // 'data' => $response_body->data
971
  // )
972
  // );
973
- }else{
974
- $metrError = '';
975
- $dimenError = '';
976
- $message = NULL;
977
- if($dimenResponse->errors){
978
- /* print_r($dimenResponse->errors); */
979
- $dimenError = $dimenResponse->errors[0];
980
- $message = str_replace('this entity', 'dimensions ', $dimenError);
981
- }
982
- if($metrResponse->errors){
983
- /* print_r($metrResponse->errors); */
984
- $metrError = str_replace('this entity', 'metrics ', $metrResponse->errors[0]);
985
- $message = is_null($message) ? $metrError : $message . ' ' . $metrError;
986
- }
987
- echo json_encode(['status' => 'error', 'message' => $message]);
988
- }
989
- }
990
-
991
- // IMPORTANT: don't forget to exit
992
- exit;
993
- }
994
-
995
- public function tvcajax_store_time_taken(){
996
- // make sure this call is legal
997
- if($this->safe_ajax_call(filter_input(INPUT_POST, 'campaignCategoryListsNonce'), 'tvcajax-store-time-taken-nonce')){
998
- $ee_options_data = unserialize(get_option('ee_options'));
999
- if(isset($ee_options_data['subscription_id'])) {
1000
- $ee_subscription_id = $ee_options_data['subscription_id'];
1001
- } else {
1002
- $ee_subscription_id = null;
1003
- }
1004
- $url = $this->apiDomain.'/customer-subscriptions/update-setup-time';
1005
- $data = [
1006
- 'subscription_id' => $ee_subscription_id,
1007
- 'setup_start_time' => date('Y-m-d H:i:s'),
1008
- ];
1009
- $args = array(
1010
- 'headers' => array(
1011
- 'Authorization' => "Bearer MTIzNA==",
1012
- 'Content-Type' => 'application/json'
1013
- ),
1014
- 'body' => wp_json_encode($data)
1015
- );
1016
- // Send remote request
1017
- $request = wp_remote_post($url, $args);
1018
- // Retrieve information
1019
- $response_code = wp_remote_retrieve_response_code($request);
1020
- $response_message = wp_remote_retrieve_response_message($request);
1021
- $response_body = json_decode(wp_remote_retrieve_body($request));
1022
- if((isset($response_body->error) && $response_body->error == '')){
1023
- echo json_encode($response_body->data);
1024
  // return new WP_REST_Response(
1025
  // array(
1026
  // 'status' => $response_code,
@@ -1028,71 +1127,71 @@ if(!class_exists('TVC_Ajax_File')) :
1028
  // 'data' => $response_body->data
1029
  // )
1030
  // );
1031
- }else{
1032
- echo json_encode([]);
1033
- // return new WP_Error($response_code, $response_message, $response_body);
1034
- }
1035
 
1036
- // echo json_encode( $categories );
1037
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1038
 
1039
- // IMPORTANT: don't forget to exit
1040
- exit;
1041
- }
1042
- public function generateAccessToken($access_token, $refresh_token) {
1043
- $request = "https://www.googleapis.com/oauth2/v1/tokeninfo?"
1044
- . "access_token=" . $access_token;
1045
-
1046
- $ch = curl_init();
1047
- curl_setopt($ch, CURLOPT_URL, $request);
1048
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
1049
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
1050
- $response = curl_exec($ch);
1051
- $result = json_decode($response);
1052
-
1053
- if (isset($result->error) && $result->error) {
1054
- $credentials_file = ENHANCAD_PLUGIN_DIR . 'includes/setup/json/client-secrets.json';
1055
- $str = file_get_contents($credentials_file);
1056
- $credentials = $str ? json_decode($str, true) : [];
1057
- $url = 'https://www.googleapis.com/oauth2/v4/token';
1058
- $header = array("content-type: application/json");
1059
- $clientId = $credentials['web']['client_id'];
1060
- $clientSecret = $credentials['web']['client_secret'];
1061
- $refreshToken = $refresh_token;
1062
- $data = [
1063
- "grant_type" => 'refresh_token',
1064
- "client_id" => $clientId,
1065
- 'client_secret' => $clientSecret,
1066
- 'refresh_token' => $refreshToken,
1067
- ];
1068
-
1069
- $postData = json_encode($data);
1070
- $ch = curl_init();
1071
- curl_setopt_array($ch, array(
1072
- CURLOPT_URL => $url, //esc_url($this->curl_url),
1073
- CURLOPT_RETURNTRANSFER => true,
1074
- CURLOPT_TIMEOUT => 0,
1075
- CURLOPT_HTTPHEADER => $header,
1076
- CURLOPT_POSTFIELDS => $postData
1077
- ));
1078
- $response = curl_exec($ch);
1079
- $response = json_decode($response);
1080
- return $response->access_token;
1081
- } else {
1082
- return $access_token;
1083
- }
1084
- }
1085
- public function woo_country(){
1086
- // The country/state
1087
- $store_raw_country = get_option('woocommerce_default_country');
1088
- // Split the country/state
1089
- $split_country = explode(":", $store_raw_country);
1090
- return $split_country;
1091
- }
1092
-
1093
- }
1094
 
1095
- // End of TVC_Ajax_File_Class
1096
 
1097
  endif;
1098
 
1
  <?php
2
 
3
  /**
4
+ * TVC Ajax File Class.
5
+ *
6
+ * @package TVC Product Feed Manager/Data/Classes
7
+ */
8
  if(!defined('ABSPATH')){
9
+ exit;
10
  }
11
 
12
  if(!class_exists('TVC_Ajax_File')) :
13
+ /**
14
+ * Ajax File Class
15
+ */
16
+ class TVC_Ajax_File extends TVC_Ajax_Calls {
17
+ private $apiDomain;
18
+ protected $access_token;
19
+ protected $refresh_token;
20
+ public function __construct(){
21
+ parent::__construct();
22
+ $this->apiDomain = TVC_API_CALL_URL;
23
+ // hooks
24
+ add_action('wp_ajax_tvcajax-get-campaign-categories', array($this, 'tvcajax_get_campaign_categories'));
25
+ add_action('wp_ajax_tvcajax-update-campaign-status', array($this, 'tvcajax_update_campaign_status'));
26
+ add_action('wp_ajax_tvcajax-delete-campaign', array($this, 'tvcajax_delete_campaign'));
27
+ add_action('wp_ajax_tvcajax-get-next-categories', array($this, 'tvcajax_read_next_categories'));
28
+ add_action('wp_ajax_tvcajax-get-category-lists', array($this, 'tvcajax_read_category_lists'));
29
+ add_action('wp_ajax_tvcajax-delete-feed-file', array($this, 'tvcajax_delete_feed_file'));
30
+ add_action('wp_ajax_tvcajax-update-feed-file', array($this, 'tvcajax_update_feed_file'));
31
+ add_action('wp_ajax_tvcajax-log-message', array($this, 'tvcajax_log_message'));
32
+ add_action('wp_ajax_tvcajax-auto-feed-fix-mode-selection', array($this, 'tvcajax_auto_feed_fix_mode_selection'));
33
+ add_action('wp_ajax_tvcajax-background-processing-mode-selection', array($this, 'tvcajax_background_processing_mode_selection'));
34
+ add_action('wp_ajax_tvcajax-feed-logger-status-selection', array($this, 'tvcajax_feed_logger_status_selection'));
35
+ add_action('wp_ajax_tvcajax-show-product-identifiers-selection', array($this, 'tvcajax_show_product_identifiers_selection'));
36
+ add_action('wp_ajax_tvcajax-debug-mode-selection', array($this, 'tvcajax_debut_mode_selection'));
37
+ add_action('wp_ajax_tvcajax-third-party-attribute-keywords', array($this, 'tvcajax_set_third_party_attribute_keywords'));
38
+ add_action('wp_ajax_tvcajax-set-notice-mailaddress', array($this, 'tvcajax_set_notice_mailaddress'));
39
+ add_action('wp_ajax_tvcajax-clear-feed-process-data', array($this, 'tvcajax_clear_feed_process_data'));
40
+ add_action('wp_ajax_tvcajax-reinitiate-plugin', array($this, 'tvcajax_reinitiate_plugin'));
41
+ add_action('wp_ajax_tvcajax-product-syncup', array($this, 'tvcajax_product_syncup'));
42
+ add_action('wp_ajax_tvcajax-gmc-category-lists', array($this, 'tvcajax_get_gmc_categories'));
43
+ add_action('wp_ajax_tvcajax-custom-metrics-dimension', array($this, 'tvcajax_custom_metrics_dimension'));
44
+ add_action('wp_ajax_tvcajax-store-time-taken', array($this, 'tvcajax_store_time_taken'));
45
+ add_action('wp_ajax_tvc_call_api_sync', array($this, 'tvc_call_api_sync'));
46
+ add_action('wp_ajax_tvc_call_domain_claim', array($this, 'tvc_call_domain_claim'));
47
+ }
48
+ public function tvc_call_api_sync(){
49
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'apiSyncupNonce'), 'tvc_call_api_sync-nonce')){
50
+ $TVC_Admin_Helper = new TVC_Admin_Helper();
51
+ $tvc_msg = $TVC_Admin_Helper->set_update_api_to_db();
52
+ echo json_encode(array('status' => 'success', 'message' => $tvc_msg));
53
+ exit;
54
+ }
55
+ exit;
56
+ }
57
+ public function tvc_call_domain_claim(){
58
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'apiDomainClaimNonce'), 'tvc_call_domain_claim-nonce')){
59
+ $TVC_Admin_Helper = new TVC_Admin_Helper();
60
+ $tvc_rs = $TVC_Admin_Helper->call_domain_claim();
61
+ if($tvc_rs['error'] == 1){
62
+ echo json_encode(array('status' => 'error', 'message' => $tvc_rs['msg']));
63
+ }else{
64
+ echo json_encode(array('status' => 'success', 'message' => $tvc_rs['msg']));
65
+ }
66
+ exit;
67
+ }
68
+ exit;
69
+ }
70
+ public function get_tvc_access_token(){
71
+ if(!empty($this->access_token)){
72
+ return $this->access_token;
73
+ }else if(isset($_SESSION['access_token']) && $_SESSION['access_token']){
74
+ $this->access_token = $_SESSION['access_token'];
75
+ return $this->access_token;
76
+ }else{
77
+ $TVC_Admin_Helper = new TVC_Admin_Helper();
78
+ $google_detail = $TVC_Admin_Helper->get_ee_options_data();
79
+ $this->access_token = $google_detail['setting']->access_token;
80
+ return $this->access_token;
81
+ }
82
+ }
83
+
84
+ public function get_tvc_refresh_token(){
85
+ if(!empty($this->refresh_token)){
86
+ return $this->refresh_token;
87
+ }else if(isset($_SESSION['refresh_token']) && $_SESSION['refresh_token']){
88
+ $this->refresh_token = $_SESSION['refresh_token'];
89
+ return $this->refresh_token;
90
+ }else{
91
+ $TVC_Admin_Helper = new TVC_Admin_Helper();
92
+ $google_detail = $TVC_Admin_Helper->get_ee_options_data();
93
+ $this->refresh_token = $google_detail['setting']->refresh_token;
94
+ return $this->refresh_token;
95
+ }
96
+ }
97
+ /**
98
+ * Delete the campaign
99
+ */
100
+ public function tvcajax_delete_campaign(){
101
+ // make sure this call is legal
102
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'campaignDeleteNonce'), 'tvcajax-delete-campaign-nonce')){
103
+
104
+ $merchantId = filter_input(INPUT_POST, 'merchantId');
105
+ $customerId = filter_input(INPUT_POST, 'customerId');
106
+ $campaignId = filter_input(INPUT_POST, 'campaignId');
107
+
108
+ $url = $this->apiDomain.'/campaigns/delete';
109
+
110
+ $data = [
111
+ 'merchant_id' => $merchantId,
112
+ 'customer_id' => $customerId,
113
+ 'campaign_id' => $campaignId
114
+ ];
115
+
116
+ $args = array(
117
+ 'headers' => array(
118
+ 'Authorization' => "Bearer MTIzNA==",
119
+ 'Content-Type' => 'application/json'
120
+ ),
121
+ 'method' => 'DELETE',
122
+ 'body' => wp_json_encode($data)
123
+ );
124
+
125
+ // Send remote request
126
+ $request = wp_remote_request($url, $args);
127
+
128
+ // Retrieve information
129
+ $response_code = wp_remote_retrieve_response_code($request);
130
+ $response_message = wp_remote_retrieve_response_message($request);
131
+ $response_body = json_decode(wp_remote_retrieve_body($request));
132
+
133
+ if((isset($response_body->error) && $response_body->error == '')){
134
+ $message = $response_body->message;
135
+ echo json_encode(['status' => 'success', 'message' => $message]);
136
  // return new WP_REST_Response(
137
  // array(
138
  // 'status' => $response_code,
140
  // 'data' => $response_body->data
141
  // )
142
  // );
143
+ }else{
144
+ $message = is_array($response_body->errors) ? $response_body->errors[0] : "Face some unprocessable entity";
145
+ echo json_encode(['status' => 'error', 'message' => $message]);
146
+ // return new WP_Error($response_code, $response_message, $response_body);
147
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
 
149
+ // echo json_encode( $categories );
150
+ }
151
+ // IMPORTANT: don't forget to exit
152
+ exit;
153
+ }
154
+
155
+ /**
156
+ * Update the campaign status pause/active
157
+ */
158
+ public function tvcajax_update_campaign_status(){
159
+ // make sure this call is legal
160
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'campaignStatusNonce'), 'tvcajax-update-campaign-status-nonce')){
161
+
162
+ if(!class_exists('ShoppingApi')){
163
+ //require_once(__DIR__ . '/ShoppingApi.php');
164
+ include(ENHANCAD_PLUGIN_DIR . 'includes/setup/ShoppingApi.php');
165
+ }
166
 
167
+ $merchantId = filter_input(INPUT_POST, 'merchantId');
168
+ $customerId = filter_input(INPUT_POST, 'customerId');
169
+ $campaignId = filter_input(INPUT_POST, 'campaignId');
170
+ $budgetId = filter_input(INPUT_POST, 'budgetId');
171
+ $campaignName = filter_input(INPUT_POST, 'campaignName');
172
+ $budget = filter_input(INPUT_POST, 'budget');
173
+ $status = filter_input(INPUT_POST, 'status');
174
+ $url = $this->apiDomain.'/campaigns/update';
175
+ $shoppingObj = new ShoppingApi();
176
+ $campaignData = $shoppingObj->getCampaignDetails($campaignId);
177
+
178
+ $data = [
179
+ 'merchant_id' => $merchantId,
180
+ 'customer_id' => $customerId,
181
+ 'campaign_id' => $campaignId,
182
+ 'account_budget_id' => $budgetId,
183
+ 'campaign_name' => $campaignName,
184
+ 'budget' => $budget,
185
+ 'status' => $status,
186
+ 'target_country' => $campaignData->data['data']->targetCountry,
187
+ 'ad_group_id' => $campaignData->data['data']->adGroupId,
188
+ 'ad_group_resource_name' => $campaignData->data['data']->adGroupResourceName
189
+ ];
190
+
191
+ $args = array(
192
+ 'headers' => array(
193
+ 'Authorization' => "Bearer MTIzNA==",
194
+ 'Content-Type' => 'application/json'
195
+ ),
196
+ 'method' => 'PATCH',
197
+ 'body' => wp_json_encode($data)
198
+ );
199
+
200
+ // Send remote request
201
+ $request = wp_remote_request($url, $args);
202
+
203
+ // Retrieve information
204
+ $response_code = wp_remote_retrieve_response_code($request);
205
+ $response_message = wp_remote_retrieve_response_message($request);
206
+ $response_body = json_decode(wp_remote_retrieve_body($request));
207
+ if((isset($response_body->error) && $response_body->error == '')){
208
+ $message = $response_body->message;
209
+ echo json_encode(['status' => 'success', 'message' => $message]);
210
  // return new WP_REST_Response(
211
  // array(
212
  // 'status' => $response_code,
214
  // 'data' => $response_body->data
215
  // )
216
  // );
217
+ }else{
218
+ $message = is_array($response_body->errors) ? $response_body->errors[0] : "Face some unprocessable entity";
219
+ echo json_encode(['status' => 'error', 'message' => $message]);
220
+ // return new WP_Error($response_code, $response_message, $response_body);
221
+ }
 
 
 
 
 
 
 
222
 
223
+ // echo json_encode( $categories );
224
+ }
225
+
226
+ // IMPORTANT: don't forget to exit
227
+ exit;
228
+ }
229
+
230
+ /**
231
+ * Returns the campaign categories from a selected country
232
+ */
233
+ public function tvcajax_get_campaign_categories(){
234
+ // make sure this call is legal
235
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'campaignCategoryListsNonce'), 'tvcajax-campaign-category-lists-nonce')){
236
+
237
+ $country_code = filter_input(INPUT_POST, 'countryCode');
238
+ $customer_id = filter_input(INPUT_POST, 'customerId');
239
+ $url = $this->apiDomain.'/products/categories';
240
+
241
+ $data = [
242
+ 'customer_id' => $customer_id,
243
+ 'country_code' => $country_code
244
+ ];
245
+
246
+ $args = array(
247
+ 'headers' => array(
248
+ 'Authorization' => "Bearer MTIzNA==",
249
+ 'Content-Type' => 'application/json'
250
+ ),
251
+ 'body' => wp_json_encode($data)
252
+ );
253
+
254
+ // Send remote request
255
+ $request = wp_remote_post($url, $args);
256
+
257
+ // Retrieve information
258
+ $response_code = wp_remote_retrieve_response_code($request);
259
+ $response_message = wp_remote_retrieve_response_message($request);
260
+ $response_body = json_decode(wp_remote_retrieve_body($request));
261
+
262
+ if((isset($response_body->error) && $response_body->error == '')){
263
+ echo json_encode($response_body->data);
264
  // return new WP_REST_Response(
265
  // array(
266
  // 'status' => $response_code,
268
  // 'data' => $response_body->data
269
  // )
270
  // );
271
+ }else{
272
+ echo json_encode([]);
273
+ // return new WP_Error($response_code, $response_message, $response_body);
274
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
 
276
+ // echo json_encode( $categories );
277
+ }
278
+
279
+ // IMPORTANT: don't forget to exit
280
+ exit;
281
+ }
282
+
283
+ /**
284
+ * Returns the sub-categories from a selected category
285
+ */
286
+ public function tvcajax_read_next_categories(){
287
+ // make sure this call is legal
288
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'nextCategoryNonce'), 'tvcajax-next-category-nonce')){
289
+ $file_class = new TVC_File();
290
+
291
+ $channel_id = filter_input(INPUT_POST, 'channelId');
292
+ $requested_level = filter_input(INPUT_POST, 'requestedLevel');
293
+ $parent_category = filter_input(INPUT_POST, 'parentCategory');
294
+ $file_language = filter_input(INPUT_POST, 'fileLanguage');
295
+ $categories = $file_class->get_categories_for_list($channel_id, $requested_level, $parent_category, $file_language);
296
+
297
+ if(!is_array($categories)){
298
+ if('0' === substr($categories, - 1)){
299
+ chop($categories, '0');
300
+ }
301
+ }
302
 
303
+ echo json_encode($categories);
304
+ }
305
+
306
+ // IMPORTANT: don't forget to exit
307
+ exit;
308
+ }
309
+
310
+ /**
311
+ * Read the category list
312
+ */
313
+ public function tvcajax_read_category_lists(){
314
+ // make sure this call is legal
315
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'categoryListsNonce'), 'tvcajax-category-lists-nonce')){
316
+ $file_class = new TVC_File();
317
+
318
+ $channel_id = filter_input(INPUT_POST, 'channelId');
319
+ $main_categories_string = filter_input(INPUT_POST, 'mainCategories');
320
+ $file_language = filter_input(INPUT_POST, 'fileLanguage');
321
+ $categories_array = explode(' > ', $main_categories_string);
322
+ $categories = array();
323
+ $required_levels = count($categories_array) > 0 ? ( count($categories_array) + 1 ) : count($categories_array);
324
+
325
+ for($i = 0; $i < $required_levels; $i ++){
326
+ $parent_category = $i > 0 ? $categories_array[$i - 1] : '';
327
+ $c = $file_class->get_categories_for_list($channel_id, $i, $parent_category, $file_language);
328
+ if($c){
329
+ array_push($categories, $c);
330
+ }
331
+ }
332
 
333
+ echo json_encode($categories);
334
+ }
335
+
336
+ // IMPORTANT: don't forget to exit
337
+ exit;
338
+ }
339
+
340
+ /**
341
+ * Delete a specific feed file
342
+ */
343
+ public function tvcajax_delete_feed_file(){
344
+ // make sure this call is legal
345
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'deleteFeedNonce'), 'tvcajax-delete-feed-nonce')){
346
+ $file_name = filter_input(INPUT_POST, 'fileTitle');
347
+
348
+ if(file_exists(WP_PLUGIN_DIR . '/tvc-product-feed-manager-support/feeds/' . $file_name)){
349
+ $file = WP_PLUGIN_DIR . '/tvc-product-feed-manager-support/feeds/' . $file_name;
350
+ }else{
351
+ $file = TVC_FEEDS_DIR . '/' . $file_name;
352
+ }
353
 
354
+ // only return results when the user is an admin with manage options
355
+ if(is_admin()){
356
+ /* translators: %s: Title of the feed file */
357
+ echo file_exists($file) ? unlink($file) : tvc_show_wp_error(sprintf(esc_html__('Could not find file %s.', 'tvc-product-feed-manager'), $file));
358
+ }else{
359
+ echo tvc_show_wp_error(esc_html__('Error deleting the feed. You do not have the correct authorities to delete the file.', 'tvc-product-feed-manager'));
360
+ }
361
+ }
362
+
363
+ // IMPORTANT: don't forget to exit
364
+ exit;
365
+ }
366
+
367
+ /**
368
+ * This function fetches the posted data and triggers the update of the feed file on the server.
369
+ */
370
+ public function tvcajax_update_feed_file(){
371
+ // make sure this call is legal
372
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'updateFeedFileNonce'), 'tvcajax-update-feed-file-nonce')){
373
+
374
+ // fetch the data from $_POST
375
+ $feed_id = filter_input(INPUT_POST, 'feedId');
376
+ $background_mode_disabled = get_option('tvc_disabled_background_mode', 'false');
377
+
378
+ TVC_Feed_Controller::add_id_to_feed_queue($feed_id);
379
+
380
+ // if there is no feed processing in progress, of background processing is switched off, start updating the current feed
381
+ if(!TVC_Feed_Controller::feed_is_processing() || 'true' === $background_mode_disabled){
382
+ do_action('tvc_manual_feed_update_activated', $feed_id);
383
+
384
+ $feed_master_class = new TVC_Feed_Master_Class($feed_id);
385
+ $feed_master_class->update_feed_file(false);
386
+ }else{
387
+ $data_class = new TVC_Data();
388
+ $data_class->update_feed_status($feed_id, 4); // feed status to waiting in queue
389
+ echo 'pushed_to_queue';
390
+ }
391
+ }
392
+
393
+ // IMPORTANT: don't forget to exit
394
+ exit;
395
+ }
396
+
397
+ /**
398
+ * Logs a message from a javascript call to the server
399
+ */
400
+ public function tvcajax_log_message(){
401
+ // make sure this call is legal
402
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'logMessageNonce'), 'tvcajax-log-message-nonce')){
403
+ // fetch the data from $_POST
404
+ $message = filter_input(INPUT_POST, 'messageList');
405
+ $file_name = filter_input(INPUT_POST, 'fileName');
406
+ $text_message = strip_tags($message);
407
+
408
+ // only return results when the user is an admin with manage options
409
+ if(is_admin()){
410
+ //tvc_write_log_file( $text_message, $file_name );
411
+ }else{
412
+ echo tvc_show_wp_error(esc_html__('Error writing the feed. You do not have the correct authorities to write the file.', 'tvc-product-feed-manager'));
413
+ }
414
+ }
415
+
416
+ // IMPORTANT: don't forget to exit
417
+ exit;
418
+ }
419
+
420
+ /**
421
+ * Changes the Auto Feed Fix setting from the Settings page
422
+ *
423
+ * @since 1.7.0
424
+ */
425
+ public function tvcajax_auto_feed_fix_mode_selection(){
426
+ // make sure this call is legal
427
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'updateAutoFeedFixNonce'), 'tvcajax-auto-feed-fix-nonce')){
428
+ $selection = filter_input(INPUT_POST, 'fix_selection');
429
+ update_option('tvc_auto_feed_fix', $selection);
430
+
431
+ echo get_option('tvc_auto_feed_fix');
432
+ }
433
+
434
+ // IMPORTANT: don't forget to exit
435
+ exit;
436
+ }
437
+
438
+ /**
439
+ * Changes the Disable Background processing setting from the Settings page
440
+ *
441
+ * @since 2.0.7
442
+ */
443
+ public function tvcajax_background_processing_mode_selection(){
444
+ // make sure this call is legal
445
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'backgroundModeNonce'), 'tvcajax-background-mode-nonce')){
446
+ $selection = filter_input(INPUT_POST, 'mode_selection');
447
+ update_option('tvc_disabled_background_mode', $selection);
448
+
449
+ echo get_option('tvc_disabled_background_mode');
450
+ }
451
+
452
+ // IMPORTANT: don't forget to exit
453
+ exit;
454
+ }
455
+
456
+ /**
457
+ * Changes the Feed Process Logger setting from the Settings page.
458
+ *
459
+ * @since 2.8.0
460
+ */
461
+ public function tvcajax_feed_logger_status_selection(){
462
+ // make sure this call is legal
463
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'feedLoggerStatusNonce'), 'tvcajax-logger-status-nonce')){
464
+ $selection = filter_input(INPUT_POST, 'statusSelection');
465
+ update_option('tvc_process_logger_status', $selection);
466
+
467
+ echo get_option('tvc_process_logger_status');
468
+ }
469
+
470
+ // IMPORTANT: don't forget to exit
471
+ exit;
472
+ }
473
+
474
+ /**
475
+ * Changes the Show Product Identifiers setting from the Settings page.
476
+ *
477
+ * @since 2.10.0
478
+ */
479
+ public function tvcajax_show_product_identifiers_selection(){
480
+ // make sure this call is legal
481
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'showPINonce'), 'tvcajax-show-pi-nonce')){
482
+ $selection = filter_input(INPUT_POST, 'showPiSelection');
483
+ update_option('tvc_show_product_identifiers', $selection);
484
+
485
+ echo get_option('tvc_show_product_identifiers');
486
+ }
487
+
488
+ // IMPORTANT: don't forget to exit
489
+ exit;
490
+ }
491
+
492
+ /**
493
+ * Changes the Debug setting from the Settings page
494
+ *
495
+ * @since 1.9.0
496
+ */
497
+ public function tvcajax_debug_mode_selection(){
498
+ // make sure this call is legal
499
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'debugNonce'), 'tvcajax-debug-nonce')){
500
+ $selection = filter_input(INPUT_POST, 'debug_selection');
501
+ update_option('tvc_debug_mode', $selection);
502
+
503
+ echo get_option('tvc_debug_mode');
504
+ }
505
+
506
+ // IMPORTANT: don't forget to exit
507
+ exit;
508
+ }
509
+
510
+ public function tvcajax_set_third_party_attribute_keywords(){
511
+ // make sure this call is legal
512
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'thirdPartyKeywordsNonce'), 'tvcajax-set-third-party-keywords-nonce')){
513
+ $keywords = filter_input(INPUT_POST, 'keywords');
514
+ update_option('tvc_third_party_attribute_keywords', $keywords);
515
+
516
+ echo get_option('tvc_third_party_attribute_keywords');
517
+ }
518
+
519
+ // IMPORTANT: don't forget to exit
520
+ exit;
521
+ }
522
+
523
+ public function tvcajax_set_notice_mailaddress(){
524
+ // make sure this call is legal
525
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'noticeMailaddressNonce'), 'tvcajax-set-notice-mailaddress-nonce')){
526
+ $mailaddress = filter_input(INPUT_POST, 'mailaddress');
527
+ update_option('tvc_notice_mailaddress', $mailaddress);
528
+
529
+ echo get_option('tvc_notice_mailaddress');
530
+ }
531
+
532
+ // IMPORTANT: don't forget to exit
533
+ exit;
534
+ }
535
+
536
+ /**
537
+ * Re-initiates the plugin, updates the database and loads all cron jobs
538
+ *
539
+ * @since 1.9.0
540
+ */
541
+ public function tvcajax_reinitiate_plugin(){
542
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'reInitiateNonce'), 'tvcajax-reinitiate-nonce')){
543
+
544
+ if(tvc_reinitiate_plugin()){
545
+ echo 'Plugin re-initiated';
546
+ }else{
547
+ echo 'Re-initiation failed!';
548
+ }
549
+ }
550
+
551
+ // IMPORTANT: don't forget to exit
552
+ exit;
553
+ }
554
+
555
+ /**
556
+ * Clears all option data that is related to the feed processing
557
+ *
558
+ * @since 1.10.0
559
+ */
560
+ public function tvcajax_clear_feed_process_data(){
561
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'clearFeedNonce'), 'tvcajax-clear-feed-nonce')){
562
+
563
+ if(tvc_clear_feed_process_data()){
564
+ echo esc_html__('Feed processing data cleared', 'tvc-product-feed-manager');
565
+ }else{
566
+ /* translators: clearing the feed data failed */
567
+ echo esc_html__('Clearing failed!', 'tvc-product-feed-manager');
568
+ }
569
+ }
570
+
571
+ // IMPORTANT: don't forget to exit
572
+ exit;
573
+ }
574
+
575
+ /**
576
+ * Returns the campaign categories from a selected country
577
+ */
578
+ public function tvcajax_get_gmc_categories(){
579
+ // make sure this call is legal
580
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'gmcCategoryListsNonce'), 'tvcajax-gmc-category-lists-nonce')){
581
+
582
+ $country_code = filter_input(INPUT_POST, 'countryCode');
583
+ $customer_id = filter_input(INPUT_POST, 'customerId');
584
+ $parent = filter_input(INPUT_POST, 'parent');
585
+ $url = $this->apiDomain.'/products/gmc-categories';
586
+
587
+ $data = [
588
+ 'customer_id' => $customer_id,
589
+ 'country_code' => $country_code,
590
+ 'parent' => $parent
591
+ ];
592
+
593
+ $args = array(
594
+ 'headers' => array(
595
+ 'Authorization' => "Bearer MTIzNA==",
596
+ 'Content-Type' => 'application/json'
597
+ ),
598
+ 'body' => wp_json_encode($data)
599
+ );
600
+
601
+ // Send remote request
602
+ $request = wp_remote_post($url, $args);
603
+
604
+ // Retrieve information
605
+ $response_code = wp_remote_retrieve_response_code($request);
606
+ $response_message = wp_remote_retrieve_response_message($request);
607
+ $response_body = json_decode(wp_remote_retrieve_body($request));
608
+
609
+ if((isset($response_body->error) && $response_body->error == '')){
610
+ echo json_encode($response_body->data);
611
  // return new WP_REST_Response(
612
  // array(
613
  // 'status' => $response_code,
615
  // 'data' => $response_body->data
616
  // )
617
  // );
618
+ }else{
619
+ echo json_encode([]);
620
+ // return new WP_Error($response_code, $response_message, $response_body);
621
+ }
 
 
 
622
 
623
+ // echo json_encode( $categories );
624
+ }
625
+
626
+ // IMPORTANT: don't forget to exit
627
+ exit;
628
+ }
629
+
630
+ public function getPostMetaData($id){
631
+ $queries = new TVC_Queries();
632
+ $column2 = json_decode(json_encode($queries->getTablePostMeta($id)), true);
633
+ $arr = array();
634
+ foreach($column2 as $val){
635
+ $arr[$val['meta_key']] = $val['meta_value'];
636
+ }
637
+ return $arr;
638
+ }
639
+
640
+ /**
641
+ * create product batch for product sync up
642
+ */
643
+ public function tvcajax_product_syncup(){
644
+ // make sure this call is legal
645
+ ini_set('max_execution_time', '0');
646
+ ini_set('memory_limit','-1');
647
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'productSyncupNonce'), 'tvcajax-product-syncup-nonce')){
648
+
649
+ if(!class_exists('CustomApi')){
650
+ include(ENHANCAD_PLUGIN_DIR . 'includes/setup/CustomApi.php');
651
+ }
652
+ $customObj = new CustomApi();
653
+ //echo "<br>1=>".round(microtime(true) * 1000);
654
+ $batchId = time();
655
+ $merchantId = filter_input(INPUT_POST, 'merchantId');
656
+ $customerId = filter_input(INPUT_POST, 'customerId');
657
+ $accountId = filter_input(INPUT_POST, 'accountId');
658
+ $subscriptionId = filter_input(INPUT_POST, 'subscriptionId');
659
+ $platformCustomerId = filter_input(INPUT_POST, 'platformCustomerId');
660
+ $data = filter_input(INPUT_POST, 'data');
661
+ parse_str($data, $formArray);
662
+ $mappedCatsDB = [];
663
+ $mappedCats = [];
664
+ $mappedAttrs = [];
665
+ $skipProducts = [];
666
+ foreach($formArray as $key => $value){
667
+ if(preg_match("/^category-name-/i", $key)){
668
+ if($value != ''){
669
+ $keyArray = explode("name-", $key);
670
+ $mappedCatsDB[$keyArray[1]]['name'] = $value;
671
+ }
672
+ unset($formArray[$key]);
673
+ }else if(preg_match("/^category-/i", $key)){
674
+ if($value != '' && $value > 0){
675
+ $keyArray = explode("-", $key);
676
+ $mappedCats[$keyArray[1]] = $value;
677
+ $mappedCatsDB[$keyArray[1]]['id'] = $value;
678
+ }
679
+ unset($formArray[$key]);
680
+ }else{
681
+ if($value){
682
+ $mappedAttrs[$key] = $value;
683
+ }
684
  }
685
+ }
686
+ update_option("ee_prod_mapped_cats", serialize($mappedCatsDB));
687
+ update_option("ee_prod_mapped_attrs", serialize($mappedAttrs));
688
+
689
+ if(!empty($mappedCats)){
690
+ $catMapRequest = [];
691
+ $catMapRequest['subscription_id'] = $subscriptionId;
692
+ $catMapRequest['customer_id'] = $customerId;
693
+ $catMapRequest['merchant_id'] = $merchantId;
694
+ $catMapRequest['category'] = $mappedCats;
695
+ //$catMapResponse = $customObj->setGmcCategoryMapping($catMapRequest);
696
+ }
697
+ if(!empty($mappedAttrs)){
698
+ $attrMapRequest = [];
699
+ $attrMapRequest['subscription_id'] = $subscriptionId;
700
+ $attrMapRequest['customer_id'] = $customerId;
701
+ $attrMapRequest['merchant_id'] = $merchantId;
702
+ $attrMapRequest['attribute'] = $mappedAttrs;
703
+ //$attrMapResponse = $customObj->setGmcAttributeMapping($attrMapRequest);
704
+ }
705
+ $TVC_Admin_Helper = new TVC_Admin_Helper();
706
+ $cat_list = $TVC_Admin_Helper->get_tvc_product_cat_list_with_name();
707
+ $tvc_currency = ((get_option('woocommerce_currency') != '')? get_option('woocommerce_currency') : 'USD');
708
+ $temp_product=array();
709
+ $fixed_att_select_list = array("gender", "age_group", "shipping", "tax", "content_language", "target_country", "condition");
710
+ foreach ($fixed_att_select_list as $fixed_key) {
711
+ if(isset($formArray[$fixed_key]) && $formArray[$fixed_key] != "" ){
712
+ if($fixed_key == "shipping" && $formArray[$fixed_key] != 0){
713
+ $temp_product[$fixed_key]['price']['value'] = $formArray[$fixed_key];
714
+ $temp_product[$fixed_key]['price']['currency'] = $tvc_currency;
715
+ $temp_product[$fixed_key]['country'] = $formArray['target_country'];
716
+ //$temp_product[$fixed_key] =$formArray['target_country'].'::'.$formArray[$fixed_key].' '.$tvc_currency;
717
+ }else if($fixed_key == "tax" && $formArray[$fixed_key] != 0){
718
+ //$temp_product[$fixed_key] =$formArray['target_country'].'::'.$formArray[$fixed_key];
719
+ $temp_product['taxes']['rate'] = $formArray[$fixed_key];
720
+ $temp_product['taxes']['country'] = $formArray['target_country'];
721
+ }else if( $formArray[$fixed_key] != 0 || $formArray[$fixed_key] != ""){
722
+ $temp_product[$fixed_key] = $formArray[$fixed_key];
723
+ }
724
  }
725
+ unset($formArray[$fixed_key]);
726
+ }
727
+
728
+ $entries = [];
729
+ //print_r($mappedCats);
730
+ if(!empty($mappedCats)){
731
+ foreach($mappedCats as $mc_key => $mappedCat){
732
+ $all_products = get_posts(array(
733
+ 'post_type' => 'product',
734
+ 'numberposts' => -1,
735
+ 'post_status' => 'publish',
736
+ 'tax_query' => array(
737
+ array(
738
+ 'taxonomy' => 'product_cat',
739
+ 'field' => 'term_id',
740
+ 'terms' => $mc_key, /* category name */
741
+ 'operator' => 'IN'
742
+ )
743
+ )
744
+ ));
745
+
746
+ foreach($all_products as $postkey => $postvalue){
747
+
748
+ $postmeta = [];
749
+ $postmeta = $this->getPostMetaData($postvalue->ID);
750
+ $prd = wc_get_product($postvalue->ID);
751
+ $postObj = (object) array_merge((array) $postvalue, (array) $postmeta);
752
+
753
+ $product = array(
754
+ 'offer_id'=>$postvalue->ID,
755
+ 'channel'=>'online',
756
+ 'link'=>get_permalink($postvalue->ID),
757
+ 'google_product_category'=>$mappedCat
758
+ );
759
+ if(isset($cat_list[$mc_key]) && $cat_list[$mc_key]!=""){
760
+ //$product['product_type'] = "Home > ".str_replace(array("-","_"), array(" "," ") , $cat_list[$mc_key]);
761
+ }
762
+ $product = array_merge($temp_product,$product);
763
+
764
+ if($prd->get_type() == "variable"){
765
+ $variation_attributes = $prd->get_variation_attributes();
766
+ $can_add_item_group_id = false;
767
+ $is_color_size = false;
768
+ if(!empty($variation_attributes)){
769
+ foreach($variation_attributes as $va_key => $va_value ){
770
+ $va_key = str_replace("_", " ", $va_key);
771
+ if (strpos($va_key, 'color') !== false) {
772
+ $can_add_item_group_id = true;
773
+ $is_color_size = true;
774
+ break;
775
+ }else if (strpos($va_key, 'size') !== false) {
776
+ $can_add_item_group_id = true;
777
+ $is_color_size = true;
778
+ break;
779
+ }
780
  }
781
+ }
782
+ if(isset($formArray['gender']) && $formArray['gender']!= ""){
783
+ $can_add_item_group_id = true;
784
+ }else if(isset($formArray['age_group']) && $formArray['age_group']!= ""){
785
+ $can_add_item_group_id = true;
786
+ }
787
+ //echo "<br>".$mc_key."=>".$postvalue->ID."can_add_item_group_id=>".$can_add_item_group_id;
788
+ if($can_add_item_group_id == true){
789
+ $p_variations = $prd->get_available_variations();
790
+ if(!empty($p_variations)){
791
+ foreach ($p_variations as $v_key => $v_value) {
792
+ $postmeta_var = (object)$this->getPostMetaData($v_value['variation_id']);
793
+ $product['title'] = (isset($postObj->$formArray['title']))?$postObj->$formArray['title']:get_the_title($postvalue->ID);
794
+ $tvc_temp_desc_key = $formArray['description'];
795
+ $product['description'] = (isset($v_value['variation_description']) && $v_value['variation_description'] != "")?$v_value['variation_description']:$postObj->$tvc_temp_desc_key;
796
+ $product['offer_id'] = $v_value['variation_id'];
797
+ $product['id'] = $v_value['variation_id'];
798
+ $product['item_group_id'] = $postvalue->ID;
799
+ $image_id = $v_value['image_id'];
800
+ $product['image_link'] = wp_get_attachment_image_url($image_id, 'full');
801
+ if($is_color_size == true){
802
+ if(isset($v_value['attributes']) && !empty($v_value['attributes']) ){
803
+ foreach($v_value['attributes'] as $va_key => $va_value ){
804
+ $va_key = str_replace("_", " ", $va_key);
805
+ if (strpos($va_key, 'color') !== false) {
806
+ $product['color'] = $va_value;
807
+ }else if (strpos($va_key, 'size') !== false) {
808
+ $product['sizes'] = $va_value;
809
+ }
810
  }
811
+ }
812
+ }
813
+ foreach($formArray as $key => $value){
814
+ if($key == 'price'){
815
+ if(isset($postmeta_var->$value) && $postmeta_var->$value > 0){
816
+ $product[$key]['value'] = $postmeta_var->$value;
817
+ }else if(isset($postmeta_var->_regular_price) && $postmeta_var->_regular_price && $postmeta_var->_regular_price >0 ){
818
+ $product[$key]['value'] = $postmeta_var->_regular_price;
819
+ }else if(isset($postmeta_var->_price) && $postmeta_var->_price && $postmeta_var->_price >0 ){
820
+ $product[$key]['value'] = $postmeta_var->_price;
821
+ }else if(isset($postmeta_var->_sale_price) && $postmeta_var->_sale_price && $postmeta_var->_sale_price >0 ){
822
+ $product[$key]['value'] = $postmeta_var->_sale_price;
823
  }
824
+ if(isset($product[$key]['value']) && $product[$key]['value'] >0){
825
+ $product[$key]['currency'] = $tvc_currency;
826
+ }else{
827
+ $skipProducts[$postmeta_var->ID] = $postmeta_var;
828
  }
829
+ }else if($key == 'sale_price'){
830
+ if(isset($postmeta_var->$value) && $postmeta_var->$value > 0){
831
+ $product[$key]['value'] = $postmeta_var->$value;
832
+ }else if(isset($postmeta_var->_sale_price) && $postmeta_var->_sale_price && $postmeta_var->_sale_price >0 ){
833
+ $product[$key]['value'] = $postmeta_var->_sale_price;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
834
  }
835
+ if(isset($product[$key]['value']) && $product[$key]['value'] >0){
836
+ $product[$key]['currency'] = $tvc_currency;
837
+ }
838
+ }else if($key == 'availability'){
839
+ $tvc_find = array("instock","outofstock","onbackorder");
840
+ $tvc_replace = array("in stock","out of stock","preorder");
841
+ if(isset($postmeta_var->$value) && $postmeta_var->$value != ""){
842
+ $stock_status = $postmeta_var->$value;
843
+ $stock_status = str_replace($tvc_find,$tvc_replace,$stock_status);
844
+ $product[$key] = $stock_status;
845
+ }else{
846
+ $stock_status = $postmeta_var->_stock_status;
847
+ $stock_status = str_replace($tvc_find,$tvc_replace,$stock_status);
848
+ $product[$key] = $stock_status;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
849
  }
850
+ }else if(isset($postmeta_var->$value) && $postmeta_var->$value != ""){$product[$key] = $postmeta_var->$value;
851
+ }
 
 
 
 
 
 
852
  }
853
+ $entrie = [
854
+ 'merchant_id' => $merchantId,
855
+ 'batch_id' => ++$batchId,
856
+ 'method' => 'insert',
857
+ 'product' => $product
858
+ ];
859
+ $entries[] = $entrie;
860
+ }
861
  }
862
+ }else{
863
+ goto simpleproduct;
864
+ }
865
+ }else{
866
+ simpleproduct:
867
+ $image_id = $prd->get_image_id();
868
+ $product['image_link'] = wp_get_attachment_image_url($image_id, 'full');
869
+ foreach($formArray as $key => $value){
870
+ if($key == 'price'){
871
+ if(isset($postObj->$value) && $postObj->$value > 0){
872
+ $product[$key]['value'] = $postObj->$value;
873
+ }else if(isset($postObj->_regular_price) && $postObj->_regular_price && $postObj->_regular_price >0 ){
874
+ $product[$key]['value'] = $postObj->_regular_price;
875
+ }else if(isset($postObj->_price) && $postObj->_price && $postObj->_price >0 ){
876
+ $product[$key]['value'] = $postObj->_price;
877
+ }else if(isset($postObj->_sale_price) && $postObj->_sale_price && $postObj->_sale_price >0 ){
878
+ $product[$key]['value'] = $postObj->_sale_price;
879
+ }
880
+ if(isset($product[$key]['value']) && $product[$key]['value'] >0){
881
+ $product[$key]['currency'] = $tvc_currency;
882
+ }else{
883
+ $skipProducts[$postObj->ID] = $postObj;
884
+ }
885
+ }else if($key == 'sale_price'){
886
+ if(isset($postObj->$value) && $postObj->$value > 0){
887
+ $product[$key]['value'] = $postObj->$value;
888
+ }else if(isset($postObj->_sale_price) && $postObj->_sale_price && $postObj->_sale_price >0 ){
889
+ $product[$key]['value'] = $postObj->_sale_price;
890
+ }
891
+ if(isset($product[$key]['value']) && $product[$key]['value'] >0){
892
+ $product[$key]['currency'] = $tvc_currency;
893
+ }
894
+ }else if($key == 'availability'){
895
+ $tvc_find = array("instock","outofstock","onbackorder");
896
+ $tvc_replace = array("in stock","out of stock","preorder");
897
+ if(isset($postObj->$value) && $postObj->$value != ""){
898
+ $stock_status = $postObj->$value;
899
+ $stock_status = str_replace($tvc_find,$tvc_replace,$stock_status);
900
+ $product[$key] = $stock_status;
901
+ }else{
902
+ $stock_status = $postObj->_stock_status;
903
+ $stock_status = str_replace($tvc_find,$tvc_replace,$stock_status);
904
+ $product[$key] = $stock_status;
905
+ }
906
+ }else if(isset($postObj->$value) && $postObj->$value != ""){
907
+ //echo $key."==".$postObj->$value."<br>";
908
+ $product[$key] = $postObj->$value;
909
  }
910
+ }
911
+
912
+ $entrie = [
913
+ 'merchant_id' => $merchantId,
914
+ 'batch_id' => ++$batchId,
915
+ 'method' => 'insert',
916
+ 'product' => $product
917
+ ];
918
+ //print_r($entrie);
919
+ //exit;
920
+ $entries[] = $entrie;
921
  }
922
 
923
+
924
+ }
925
+ wp_reset_query();
926
+ }
927
+ //print_r($entries);
928
+ $data = [
929
+ 'merchant_id' => $accountId,
930
+ 'account_id' => $merchantId,
931
+ 'subscription_id' => $subscriptionId,
932
+ 'entries' => $entries
933
+ ];
934
+ $url = $this->apiDomain.'/products/batch';
935
+ $args = array(
936
+ 'timeout' => 10000,
937
+ 'headers' => array(
938
+ 'Authorization' => "Bearer MTIzNA==",
939
+ 'Content-Type' => 'application/json',
940
+ 'AccessToken' => $this->generateAccessToken($this->get_tvc_access_token(), $this->get_tvc_refresh_token())
941
+ ),
942
+ 'body' => wp_json_encode($data)
943
+ );
944
+
945
+ $request = wp_remote_post($url, $args);
946
+ //print_r($request);
947
+
948
+ // Retrieve information
949
+ $response_code = wp_remote_retrieve_response_code($request);
950
+ $response_message = wp_remote_retrieve_response_message($request);
951
+ $response_body = json_decode(wp_remote_retrieve_body($request));
952
+ //print_r($response_body);
953
+ //die;
954
+ if((isset($response_body->error) && $response_body->error == '')){
955
+ $customObj->setGmcCategoryMapping($catMapRequest);
956
+ $customObj->setGmcAttributeMapping($attrMapRequest);
957
+ echo json_encode(['status' => 'success', 'skipProducts' => count($skipProducts)]);
958
+ }else{
959
+ foreach($response_body->errors as $err){
960
+ $message = $err;
961
+ break;
962
+ }
963
+ echo json_encode(['status' => 'error', 'message' => $message]);
964
  }
965
+ }else{
966
+ echo json_encode(['status' => 'error', 'message' => "Category mapping is null."]);
967
+ }
968
+
969
+ // echo json_encode( $categories );
970
+ }
971
+ // IMPORTANT: don't forget to exit
972
+ exit;
973
+ }
974
 
975
+ /**
976
+ * create product batch for product sync up
977
+ */
978
+ public function tvcajax_custom_metrics_dimension(){
979
+ // make sure this call is legal
980
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'customMetricsDimensionNonce'), 'tvcajax-custom-metrics-dimension-nonce')){
981
 
982
+ if(!class_exists('CustomApi')){
983
+ include(ENHANCAD_PLUGIN_DIR . 'includes/setup/CustomApi.php');
984
+ }
985
+ $customObj = new CustomApi();
986
 
987
+ $accountId = filter_input(INPUT_POST, 'accountId');
988
  // $accountId = '184918792';
989
+ $webPropertyId = filter_input(INPUT_POST, 'webPropertyId');
990
  // $webPropertyId = 'UA-184918792-5';
991
+ $subscriptionId = filter_input(INPUT_POST, 'subscriptionId');
992
+ $data = filter_input(INPUT_POST, 'data');
993
+ parse_str($data, $formArray);
994
+ //print_r($formArray); // Only for print array
995
+
996
+ $customDimension = [];
997
+ $customMetrics = [];
998
+ $dimensions = [];
999
+ $metrics = [];
1000
+
1001
+ for($i = 1; $i <= 12; $i++){
1002
+ $dimension['id'] = "";
1003
+ $dimension['index'] = $formArray['did-' . $i];
1004
+ $dimension['active'] = true;
1005
+ $dimension['kind'] = "";
1006
+ $dimension['name'] = $formArray['dname-' . $i];
1007
+ $dimension['scope'] = $formArray['dscope-' . $i];
1008
+ $dimension['created'] = "";
1009
+ $dimension['updated'] = "";
1010
+ $dimension['self_link'] = "";
1011
+ $dimension['parent_link']['href'] = "";
1012
+ $dimension['parent_link']['parent_link_type'] = "";
1013
+ $dimensions[] = $dimension;
1014
+ }
1015
 
1016
+ for($i = 1; $i <= 7; $i++){
1017
+ $metric['id'] = "";
1018
+ $metric['index'] = $formArray['mid-' . $i];
1019
+ $metric['active'] = true;
1020
+ $metric['kind'] = "";
1021
+ $metric['name'] = $formArray['mname-' . $i];
1022
+ $metric['scope'] = $formArray['mscope-' . $i];
1023
+ $metric['created'] = "";
1024
+ $metric['updated'] = "";
1025
+ $metric['self_link'] = "";
1026
+ $metric['max_value'] = "";
1027
+ $metric['min_value'] = "";
1028
+ $metric['type'] = "INTEGER";
1029
+ $metric['parent_link']['href'] = "";
1030
+ $metric['parent_link']['parent_link_type'] = "";
1031
+ $metrics[] = $metric;
1032
+ }
1033
 
1034
+ if(!empty($dimensions)){
1035
+ $dimenRequest = [];
1036
+ $dimenRequest['account_id'] = $accountId;
1037
+ $dimenRequest['web_property_id'] = $webPropertyId;
1038
+ $dimenRequest['subscription_id'] = $subscriptionId;
1039
+ $dimenRequest['data'] = $dimensions;
1040
+ $dimenResponse = $customObj->createCustomDimensions($dimenRequest);
1041
+ }
1042
+ if(!empty($metrics)){
1043
+ $metrRequest = [];
1044
+ $metrRequest['account_id'] = $accountId;
1045
+ $metrRequest['web_property_id'] = $webPropertyId;
1046
+ $metrRequest['subscription_id'] = $subscriptionId;
1047
+ $metrRequest['data'] = $metrics;
1048
+ $metrResponse = $customObj->createCustomMetrics($metrRequest);
1049
+ }
1050
 
1051
 
1052
+ // Retrieve information
1053
+ /* $response_code = wp_remote_retrieve_response_code($request);
1054
+ $response_message = wp_remote_retrieve_response_message($request);
1055
+ $response_body = json_decode(wp_remote_retrieve_body($request)); */
1056
 
1057
  // print_r($dimenResponse);
1058
  // echo "=======";
1060
  // exit;
1061
 
1062
 
1063
+ if((isset($dimenResponse->error) && $dimenResponse->error == '' && isset($metrResponse->error) && $metrResponse->error == '')){
1064
+ echo json_encode(['status' => 'success']);
1065
  // return new WP_REST_Response(
1066
  // array(
1067
  // 'status' => $response_code,
1069
  // 'data' => $response_body->data
1070
  // )
1071
  // );
1072
+ }else{
1073
+ $metrError = '';
1074
+ $dimenError = '';
1075
+ $message = NULL;
1076
+ if($dimenResponse->errors){
1077
+ /* print_r($dimenResponse->errors); */
1078
+ $dimenError = $dimenResponse->errors[0];
1079
+ $message = str_replace('this entity', 'dimensions ', $dimenError);
1080
+ }
1081
+ if($metrResponse->errors){
1082
+ /* print_r($metrResponse->errors); */
1083
+ $metrError = str_replace('this entity', 'metrics ', $metrResponse->errors[0]);
1084
+ $message = is_null($message) ? $metrError : $message . ' ' . $metrError;
1085
+ }
1086
+ echo json_encode(['status' => 'error', 'message' => $message]);
1087
+ }
1088
+ }
1089
+
1090
+ // IMPORTANT: don't forget to exit
1091
+ exit;
1092
+ }
1093
+
1094
+ public function tvcajax_store_time_taken(){
1095
+ // make sure this call is legal
1096
+ if($this->safe_ajax_call(filter_input(INPUT_POST, 'campaignCategoryListsNonce'), 'tvcajax-store-time-taken-nonce')){
1097
+ $ee_options_data = unserialize(get_option('ee_options'));
1098
+ if(isset($ee_options_data['subscription_id'])) {
1099
+ $ee_subscription_id = $ee_options_data['subscription_id'];
1100
+ } else {
1101
+ $ee_subscription_id = null;
1102
+ }
1103
+ $url = $this->apiDomain.'/customer-subscriptions/update-setup-time';
1104
+ $data = [
1105
+ 'subscription_id' => $ee_subscription_id,
1106
+ 'setup_start_time' => date('Y-m-d H:i:s'),
1107
+ ];
1108
+ $args = array(
1109
+ 'headers' => array(
1110
+ 'Authorization' => "Bearer MTIzNA==",
1111
+ 'Content-Type' => 'application/json'
1112
+ ),
1113
+ 'body' => wp_json_encode($data)
1114
+ );
1115
+ // Send remote request
1116
+ $request = wp_remote_post($url, $args);
1117
+ // Retrieve information
1118
+ $response_code = wp_remote_retrieve_response_code($request);
1119
+ $response_message = wp_remote_retrieve_response_message($request);
1120
+ $response_body = json_decode(wp_remote_retrieve_body($request));
1121
+ if((isset($response_body->error) && $response_body->error == '')){
1122
+ echo json_encode($response_body->data);
1123
  // return new WP_REST_Response(
1124
  // array(
1125
  // 'status' => $response_code,
1127
  // 'data' => $response_body->data
1128
  // )
1129
  // );
1130
+ }else{
1131
+ echo json_encode([]);
1132
+ // return new WP_Error($response_code, $response_message, $response_body);
1133
+ }
1134
 
1135
+ // echo json_encode( $categories );
1136
+ }
1137
+
1138
+ // IMPORTANT: don't forget to exit
1139
+ exit;
1140
+ }
1141
+ public function generateAccessToken($access_token, $refresh_token) {
1142
+ $request = "https://www.googleapis.com/oauth2/v1/tokeninfo?"
1143
+ . "access_token=" . $access_token;
1144
+
1145
+ $ch = curl_init();
1146
+ curl_setopt($ch, CURLOPT_URL, $request);
1147
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
1148
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
1149
+ $response = curl_exec($ch);
1150
+ $result = json_decode($response);
1151
+
1152
+ if (isset($result->error) && $result->error) {
1153
+ $credentials_file = ENHANCAD_PLUGIN_DIR . 'includes/setup/json/client-secrets.json';
1154
+ $str = file_get_contents($credentials_file);
1155
+ $credentials = $str ? json_decode($str, true) : [];
1156
+ $url = 'https://www.googleapis.com/oauth2/v4/token';
1157
+ $header = array("content-type: application/json");
1158
+ $clientId = $credentials['web']['client_id'];
1159
+ $clientSecret = $credentials['web']['client_secret'];
1160
+ $refreshToken = $refresh_token;
1161
+ $data = [
1162
+ "grant_type" => 'refresh_token',
1163
+ "client_id" => $clientId,
1164
+ 'client_secret' => $clientSecret,
1165
+ 'refresh_token' => $refreshToken,
1166
+ ];
1167
+
1168
+ $postData = json_encode($data);
1169
+ $ch = curl_init();
1170
+ curl_setopt_array($ch, array(
1171
+ CURLOPT_URL => $url, //esc_url($this->curl_url),
1172
+ CURLOPT_RETURNTRANSFER => true,
1173
+ CURLOPT_TIMEOUT => 0,
1174
+ CURLOPT_HTTPHEADER => $header,
1175
+ CURLOPT_POSTFIELDS => $postData
1176
+ ));
1177
+ $response = curl_exec($ch);
1178
+ $response = json_decode($response);
1179
+ return $response->access_token;
1180
+ } else {
1181
+ return $access_token;
1182
+ }
1183
+ }
1184
+ public function woo_country(){
1185
+ // The country/state
1186
+ $store_raw_country = get_option('woocommerce_default_country');
1187
+ // Split the country/state
1188
+ $split_country = explode(":", $store_raw_country);
1189
+ return $split_country;
1190
+ }
1191
 
1192
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1193
 
1194
+ // End of TVC_Ajax_File_Class
1195
 
1196
  endif;
1197
 
includes/data/class-tvc-queries.php CHANGED
@@ -962,7 +962,9 @@ if ( ! class_exists( 'TVC_Queries' ) ) :
962
  }
963
 
964
  public function getTablePostMeta($post_id) {
965
- return $this->_wpdb->get_results("SELECT meta_key,meta_value FROM wp_postmeta where post_id=" . $post_id);
 
 
966
  }
967
  }
968
  // End of TVC_Queries class
962
  }
963
 
964
  public function getTablePostMeta($post_id) {
965
+ global $wpdb;
966
+ $tve_table_prefix = $wpdb->prefix;
967
+ return $this->_wpdb->get_results("SELECT meta_key,meta_value FROM ".$tve_table_prefix."postmeta where post_id=" . $post_id);
968
  }
969
  }
970
  // End of TVC_Queries class
includes/data/class-tvc-taxonomies.php CHANGED
@@ -118,7 +118,7 @@ if ( ! class_exists( 'TVC_Taxonomies' ) ) :
118
 
119
  public static function get_shop_categories_list() {
120
  $args = array(
121
- 'hide_empty' => 0,
122
  'taxonomy' => 'product_cat',
123
  'hierarchical' => 1,
124
  'orderby' => 'name',
118
 
119
  public static function get_shop_categories_list() {
120
  $args = array(
121
+ 'hide_empty' => 1,
122
  'taxonomy' => 'product_cat',
123
  'hierarchical' => 1,
124
  'orderby' => 'name',
includes/data/js/tvc_data.js DELETED
@@ -1,105 +0,0 @@
1
- "use strict";
2
- /**
3
- * Returns an array with all possible condition options
4
- *
5
- * @return {array} An array with possible condition options
6
- */
7
- function tvc_queryOptionsEng() {
8
-
9
- return [
10
- 'includes', 'does not include', 'is equal to', 'is not equal to', 'is empty', 'is not empty', 'starts with',
11
- 'does not start with', 'ends with', 'does not end with', 'is greater than', 'is greater or equal to', 'is smaller than',
12
- 'is smaller or equal to', 'is between'
13
- ];
14
- }
15
-
16
- function tvc_changeValuesOptions() {
17
-
18
- return [ 'change nothing', 'overwrite', 'replace', 'remove', 'add prefix', 'add suffix', 'recalculate', 'convert to child-element' ];
19
- }
20
-
21
- function tvc_changeValuesRecalculateOptions() {
22
-
23
- return [ 'add', 'subtract', 'multiply', 'divide' ];
24
- }
25
-
26
- function tvc_woocommerceSourceOptions() {
27
-
28
- return [
29
- {value: '_backorders', label: 'Allow Backorders', prop: 'meta'},
30
- //{ value: '_button_text', label: 'Button Text', prop: 'meta' },
31
- //{value:'', label:'Cross-Sells', prop:'meta'},
32
- {value: '_height', label: 'Dimensions Height', prop: 'meta'},
33
- {value: '_length', label: 'Dimensions Length', prop: 'meta'},
34
- {value: '_width', label: 'Dimensions Width', prop: 'meta'},
35
- {value: '_downloadable', label: 'Downloadable', prop: 'meta'},
36
- //{value:'', label:'Enable Reviews', prop:'meta'},
37
- {value: 'attachment_url', label: 'Featured Image', prop: 'main'}, // in the end this item will be handled procedural
38
- //{value:'', label:'Grouping', prop:'meta'},
39
- {value: 'item_group_id', label: 'Item Group Id', prop: 'main'},
40
- {value: '_wp_attachement_metadata', label: 'Image Library', prop: 'main'},
41
- {value: '_manage_stock', label: 'Manage Stock?', prop: 'meta'},
42
- {value: '_max_variation_price', label: 'Max Variation Price', prop: 'meta'},
43
- {value: '_max_variation_regular_price', label: 'Max Variation Regular Price', prop: 'meta'},
44
- {value: '_max_variation_sale_price', label: 'Max Variation Sale Price', prop: 'meta'},
45
- {value: 'menu_order', label: 'Menu Order', prop: 'meta'},
46
- {value: '_min_variation_price', label: 'Min Variation Price', prop: 'meta'},
47
- {value: '_min_variation_regular_price', label: 'Min Variation Regular Price', prop: 'meta'},
48
- {value: '_min_variation_sale_price', label: 'Min Variation Sale Price', prop: 'meta'},
49
- {value: 'post_author', label: 'Post Author', prop: 'post'},
50
- {value: 'post_date', label: 'Post Date', prop: 'post'},
51
- {value: 'post_date_gmt', label: 'Post Date GMT', prop: 'post'},
52
- {value: 'ID', label: 'Post ID', prop: 'post'},
53
- {value: 'post_modified', label: 'Post Modified', prop: 'post'},
54
- {value: 'post_modified_gmt', label: 'Post Modified GMT', prop: 'post'},
55
- {value: 'product_cat_string', label: 'Product Category String', prop: 'main'},
56
- {value: 'post_content', label: 'Product Description', prop: 'post'},
57
- {value: 'post_excerpt', label: 'Product Short Description', prop: 'post'},
58
- {value: 'product_tags', label: 'Product Tags', prop: 'meta'},
59
- {value: 'post_title', label: 'Product Title', prop: 'post'},
60
- {value: 'tvc_product_brand', label: 'Product brand', prop: 'meta'},
61
- {value: 'tvc_product_gtin', label: 'Product GTIN', prop: 'meta'},
62
- {value: 'tvc_product_mpn', label: 'Product MPN', prop: 'meta'},
63
- {value: 'product_variation_title_without_attributes', label: 'Product Title Without Variable Attributes', prop: 'meta'},
64
- {value: 'product_type', label: 'Product Type', prop: 'meta'},
65
- {value: 'permalink', label: 'Permalink', prop: 'post'},
66
- //{value:'', label:'Purchase Note', prop:'meta'},
67
- {value: '_regular_price', label: 'Regular Price', prop: 'meta'},
68
- {value: '_sale_price', label: 'Sale Price', prop: 'meta'},
69
- {value: '_sale_price_dates_from', label: 'Sale Price Dates From', prop: 'meta'},
70
- {value: '_sale_price_dates_to', label: 'Sale Price Dates To', prop: 'meta'},
71
- {value: 'product_cat', label: 'Selected Product Categories', prop: 'main'},
72
- {value: 'fixed_shipping_price', label: 'Fixed Shipping Price', prop: 'main'},
73
- {value: 'shipping_class', label: 'Shipping Class', prop: 'main'},
74
- {value: '_sku', label: 'SKU', prop: 'meta'},
75
- {value: '_sold_individually', label: 'Sold Individually', prop: 'meta'},
76
- {value: '_stock', label: 'Stock Qty', prop: 'meta'},
77
- {value: '_stock_status', label: 'Stock Status', prop: 'meta'},
78
- {value: '_tax_status', label: 'Tax Status', prop: 'meta'},
79
- {value: '_tax_class', label: 'Tax Class', prop: 'meta'},
80
- //{value:'', label:'Up-Sells', prop:'meta'},
81
- {value: '_virtual', label: 'Virtual', prop: 'meta'},
82
- {value: '_weight', label: 'Weight', prop: 'meta'},
83
- {value: 'wc_currency', label: 'WooCommerce Currency', prop: 'main'},
84
- {value: 'last_update', label: 'Last Feed Update', prop: 'main'},
85
- {value: 'empty', label: 'Remove from feed', prop: 'meta'},
86
- ];
87
- }
88
-
89
- function tvc_sourceOptionsConverter( optionValue ) {
90
-
91
- var list = tvc_woocommerceSourceOptions();
92
-
93
- for ( var key in list ) {
94
-
95
- if ( list[ key ][ 'value' ] === optionValue ) {
96
- return list[ key ][ 'label' ];
97
- break;
98
- }
99
- }
100
- }
101
-
102
- function tvc_validateUrl( url ) {
103
- var pattern = /^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/;
104
- return ! ! pattern.test( url );
105
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/data/js/tvc_data.min.js DELETED
@@ -1 +0,0 @@
1
- function tvc_queryOptionsEng(){return["includes","does not include","is equal to","is not equal to","is empty","is not empty","starts with","does not start with","ends with","does not end with","is greater than","is greater or equal to","is smaller than","is smaller or equal to","is between"]}function tvc_changeValuesOptions(){return["change nothing","overwrite","replace","remove","add prefix","add suffix","recalculate","convert to child-element"]}function tvc_changeValuesRecalculateOptions(){return["add","subtract","multiply","divide"]}function tvc_woocommerceSourceOptions(){return[{value:"_backorders",label:"Allow Backorders",prop:"meta"},{value:"_height",label:"Dimensions Height",prop:"meta"},{value:"_length",label:"Dimensions Length",prop:"meta"},{value:"_width",label:"Dimensions Width",prop:"meta"},{value:"_downloadable",label:"Downloadable",prop:"meta"},{value:"attachment_url",label:"Featured Image",prop:"main"},{value:"item_group_id",label:"Item Group Id",prop:"main"},{value:"_wp_attachement_metadata",label:"Image Library",prop:"main"},{value:"_manage_stock",label:"Manage Stock?",prop:"meta"},{value:"_max_variation_price",label:"Max Variation Price",prop:"meta"},{value:"_max_variation_regular_price",label:"Max Variation Regular Price",prop:"meta"},{value:"_max_variation_sale_price",label:"Max Variation Sale Price",prop:"meta"},{value:"menu_order",label:"Menu Order",prop:"meta"},{value:"_min_variation_price",label:"Min Variation Price",prop:"meta"},{value:"_min_variation_regular_price",label:"Min Variation Regular Price",prop:"meta"},{value:"_min_variation_sale_price",label:"Min Variation Sale Price",prop:"meta"},{value:"post_author",label:"Post Author",prop:"post"},{value:"post_date",label:"Post Date",prop:"post"},{value:"post_date_gmt",label:"Post Date GMT",prop:"post"},{value:"ID",label:"Post ID",prop:"post"},{value:"post_modified",label:"Post Modified",prop:"post"},{value:"post_modified_gmt",label:"Post Modified GMT",prop:"post"},{value:"product_cat_string",label:"Product Category String",prop:"main"},{value:"post_content",label:"Product Description",prop:"post"},{value:"post_excerpt",label:"Product Short Description",prop:"post"},{value:"product_tags",label:"Product Tags",prop:"meta"},{value:"post_title",label:"Product Title",prop:"post"},{value:"tvc_product_brand",label:"Product brand",prop:"meta"},{value:"tvc_product_gtin",label:"Product GTIN",prop:"meta"},{value:"tvc_product_mpn",label:"Product MPN",prop:"meta"},{value:"product_variation_title_without_attributes",label:"Product Title Without Variable Attributes",prop:"meta"},{value:"product_type",label:"Product Type",prop:"meta"},{value:"permalink",label:"Permalink",prop:"post"},{value:"_regular_price",label:"Regular Price",prop:"meta"},{value:"_sale_price",label:"Sale Price",prop:"meta"},{value:"_sale_price_dates_from",label:"Sale Price Dates From",prop:"meta"},{value:"_sale_price_dates_to",label:"Sale Price Dates To",prop:"meta"},{value:"product_cat",label:"Selected Product Categories",prop:"main"},{value:"fixed_shipping_price",label:"Fixed Shipping Price",prop:"main"},{value:"shipping_class",label:"Shipping Class",prop:"main"},{value:"_sku",label:"SKU",prop:"meta"},{value:"_sold_individually",label:"Sold Individually",prop:"meta"},{value:"_stock",label:"Stock Qty",prop:"meta"},{value:"_stock_status",label:"Stock Status",prop:"meta"},{value:"_tax_status",label:"Tax Status",prop:"meta"},{value:"_tax_class",label:"Tax Class",prop:"meta"},{value:"_virtual",label:"Virtual",prop:"meta"},{value:"_weight",label:"Weight",prop:"meta"},{value:"wc_currency",label:"WooCommerce Currency",prop:"main"},{value:"last_update",label:"Last Feed Update",prop:"main"},{value:"empty",label:"Remove from feed",prop:"meta"}]}function tvc_sourceOptionsConverter(c){var b=tvc_woocommerceSourceOptions();for(var a in b){if(b[a]["value"]===c){return b[a]["label"];break}}}function tvc_validateUrl(a){var b=/^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/;return !!b.test(a)};
 
includes/data/js/tvc_feed-queue-string.js DELETED
@@ -1,30 +0,0 @@
1
- "use strict";
2
- function tvcAddToQueueString( idToAdd ) {
3
- var listElement = jQuery( '#tvc-feed-list-feeds-in-queue' );
4
-
5
- if ( tvcQueueStringIsEmpty() ) {
6
- listElement.text( idToAdd );
7
- } else {
8
- listElement.text( listElement.text() + ',' + idToAdd );
9
- }
10
- }
11
-
12
- function tvcRemoveFromQueueString( idToRemove ) {
13
- var listElement = jQuery( '#tvc-feed-list-feeds-in-queue' );
14
- var currentString = listElement.text();
15
-
16
- if ( currentString.indexOf( ',' ) > -1 ) {
17
- currentString = currentString.endsWith( idToRemove ) ? currentString.replace( idToRemove, '' ) : currentString.replace( idToRemove + ',', '' );
18
- listElement.text( currentString );
19
- } else {
20
- tvcClearQueueString();
21
- }
22
- }
23
-
24
- function tvcQueueStringIsEmpty() {
25
- return jQuery( '#tvc-feed-list-feeds-in-queue' ).text().length < 1;
26
- }
27
-
28
- function tvcClearQueueString() {
29
- jQuery( '#tvc-feed-list-feeds-in-queue' ).text( '' );
30
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/data/js/tvc_feed-queue-string.min.js DELETED
@@ -1 +0,0 @@
1
- function tvcAddToQueueString(b){var a=jQuery("#tvc-feed-list-feeds-in-queue");if(tvcQueueStringIsEmpty()){a.text(b)}else{a.text(a.text()+","+b)}}function tvcRemoveFromQueueString(a){var c=jQuery("#tvc-feed-list-feeds-in-queue");var b=c.text();if(b.indexOf(",")>-1){b=b.endsWith(a)?b.replace(a,""):b.replace(a+",","");c.text(b)}else{tvcClearQueueString()}}function tvcQueueStringIsEmpty(){return jQuery("#tvc-feed-list-feeds-in-queue").text().length<1}function tvcClearQueueString(){jQuery("#tvc-feed-list-feeds-in-queue").text("")};
 
includes/data/js/tvc_metadatahandling.js DELETED
@@ -1,596 +0,0 @@
1
-
2
- "use strict";
3
- function tvc_storeSourceValue( level, currentMetaValue, type, valueToStore ) {
4
-
5
- console.log( 'level:', level );
6
- console.log( 'currentMetaValue:', currentMetaValue );
7
- console.log( 'type:', type );
8
- console.log( 'valueToStore:', valueToStore );
9
-
10
- var o = currentMetaValue ? JSON.parse( currentMetaValue ) : {};
11
-
12
- if ( o && 't' in o ) {
13
- return currentMetaValue;
14
- } // do not change the meta value if it contains the main category
15
-
16
- if ( valueToStore && type !== 'clear' ) {
17
-
18
- var t = {}, s = {};
19
-
20
- s[ type ] = valueToStore;
21
-
22
- t.s = s;
23
-
24
- if ( o.hasOwnProperty( 'm' ) ) {
25
-
26
- if ( ! o.m[ level ] ) {
27
-
28
- o.m[ level ] = t;
29
- } else {
30
-
31
- o.m[ level ].s = s;
32
- }
33
- } else {
34
- var m = [];
35
-
36
- m.push( t );
37
- o.m = m;
38
- }
39
- } else if ( type === 'clear' ) {
40
-
41
- if ( o.hasOwnProperty( 'm' ) ) {
42
-
43
- if ( o.m.length > 1 ) {
44
-
45
- if ( ! o.m[ level ].c ) {
46
-
47
- o.m.splice( level, 1 );
48
- } else {
49
-
50
- delete o.m[ level ].s;
51
- }
52
- } else {
53
-
54
- delete o.m;
55
- }
56
- } else {
57
-
58
- o = {};
59
- }
60
- }
61
-
62
- var newValue = typeof (
63
- o
64
- ) && ! jQuery.isEmptyObject( o ) ? JSON.stringify( o ) : '';
65
-
66
- console.log( 'result:', newValue );
67
- return newValue;
68
- }
69
-
70
- function tvc_storeConditionValue( sourceLevel, conditionLevel, currentMetaValue, newCondition ) {
71
-
72
- console.log( 'sourceLevel:', sourceLevel );
73
- console.log( 'conditionLevel:', conditionLevel );
74
- console.log( 'currentMetaValue:', currentMetaValue );
75
- console.log( 'newCondition:', newCondition );
76
-
77
- var o = currentMetaValue ? JSON.parse( currentMetaValue ) : {};
78
- var conditionPos = conditionLevel - 1;
79
- var t = {};
80
- var q = {};
81
-
82
- if ( newCondition ) {
83
-
84
- if ( ! o.hasOwnProperty( 'm' ) ) {
85
-
86
- var m = [];
87
-
88
- m.push( t );
89
- o.m = m;
90
- }
91
-
92
- if ( o.m[ sourceLevel ] && o.m[ sourceLevel ].hasOwnProperty( 'c' ) ) {
93
-
94
- q[ conditionLevel ] = newCondition;
95
-
96
- if ( o.m[ sourceLevel ].c.hasOwnProperty( conditionPos ) ) {
97
-
98
- o.m[ sourceLevel ].c[ conditionPos ] = q;
99
- } else {
100
-
101
- o.m[ sourceLevel ].c.push( q );
102
- }
103
- } else {
104
-
105
- var c = [];
106
-
107
- q[ conditionLevel ] = newCondition;
108
-
109
- c.push( q );
110
-
111
- t.c = c;
112
-
113
- o.m[ sourceLevel ].c = c;
114
- }
115
- }
116
-
117
- var newValue = typeof (
118
- o
119
- ) && ! jQuery.isEmptyObject( o ) ? JSON.stringify( o ) : '';
120
-
121
- console.log( 'result:', newValue );
122
- return newValue;
123
- }
124
-
125
- function tvc_storeCombinedValue( sourceLevel, currentMetaValue, valueToStore ) {
126
-
127
- console.log( 'sourceLevel:', sourceLevel );
128
- console.log( 'currentMetaValue:', currentMetaValue );
129
- console.log( 'valueToStore:', valueToStore );
130
-
131
- var o = currentMetaValue ? JSON.parse( currentMetaValue ) : {};
132
-
133
- if ( valueToStore ) {
134
-
135
- var m = [], t = {}, s = {};
136
-
137
- if ( ! o.hasOwnProperty( 'm' ) ) {
138
-
139
- m.push( t );
140
- o.m = m;
141
- }
142
-
143
- if ( ! o.m[ sourceLevel ].hasOwnProperty( 's' ) ) {
144
-
145
- s[ 'source' ] = 'combined';
146
- o.m[ sourceLevel ].s = s;
147
- }
148
-
149
- o.m[ sourceLevel ].s.f = valueToStore;
150
- }
151
-
152
- var newValue = typeof (
153
- o
154
- ) && ! jQuery.isEmptyObject( o ) ? JSON.stringify( o ) : '';
155
-
156
- console.log( 'result:', newValue );
157
-
158
- return newValue;
159
- }
160
-
161
- function tvc_storeValueChange( sourceLevel, valueEditorLevel, valueToStore, action, currentMetaValue ) {
162
-
163
- console.log( 'sourceLevel:', sourceLevel );
164
- console.log( 'valueEditorLevel:', valueEditorLevel );
165
- console.log( 'valueToStore:', valueToStore );
166
- console.log( 'action:', action );
167
- console.log( 'currentMetaValue:', currentMetaValue );
168
-
169
- var o = currentMetaValue ? JSON.parse( currentMetaValue ) : {};
170
- var t = {};
171
-
172
- if ( valueToStore && action === 'add' ) {
173
-
174
- t[ sourceLevel + 1 ] = valueToStore;
175
-
176
- if ( o.hasOwnProperty( 'v' ) ) {
177
-
178
- if ( o.v[ sourceLevel ] && o.v[ sourceLevel ].hasOwnProperty( 'q' ) ) {
179
-
180
- o.v[ sourceLevel ][ valueEditorLevel + 1 ] = valueToStore;
181
- } else {
182
-
183
- o.v[ sourceLevel ] = t;
184
- }
185
- } else {
186
-
187
- var v = [];
188
-
189
- v.push( t );
190
- o.v = v;
191
- }
192
- } else if ( action === 'clear' ) {
193
-
194
- if ( 'v' in o ) {
195
-
196
- if ( o.v.length > 1 ) {
197
-
198
- if ( ! o.v[ sourceLevel ].q ) {
199
-
200
- o.v.splice( sourceLevel, 1 );
201
- } else {
202
-
203
- delete o.v[ sourceLevel ].s;
204
- }
205
- } else {
206
-
207
- delete o.v;
208
- }
209
- } else {
210
-
211
- o = {};
212
- }
213
- }
214
-
215
- var newValue = typeof (
216
- o
217
- ) && ! jQuery.isEmptyObject( o ) ? JSON.stringify( o ) : '';
218
-
219
- console.log( 'result:', newValue );
220
-
221
- return newValue;
222
- }
223
-
224
- function tvc_removeCombinedValue( sourceLevel, combinedLevel, currentMetaValue ) {
225
-
226
- console.log( 'sourceLevel:', sourceLevel );
227
- console.log( 'combinedLevel:', combinedLevel );
228
- console.log( 'currentMetaValue:', currentMetaValue );
229
-
230
- var o = currentMetaValue ? JSON.parse( currentMetaValue ) : {};
231
-
232
- if ( o.hasOwnProperty( 'm' ) && o.m[ sourceLevel ].hasOwnProperty( 's' ) && o.m[ sourceLevel ].s.hasOwnProperty( 'f' ) ) {
233
-
234
- if ( o.m[ sourceLevel ].s.f ) {
235
-
236
- var combinedValues = o.m[ sourceLevel ].s.f.split( '|' );
237
-
238
- combinedValues.splice( combinedLevel - 1, 1 );
239
-
240
- o.m[ sourceLevel ].s.f = tvc_makeCombinedValuesStringFromArray( combinedValues );
241
- }
242
- }
243
-
244
- var newValue = typeof (
245
- o
246
- ) && ! jQuery.isEmptyObject( o ) ? JSON.stringify( o ) : '';
247
-
248
- console.log( 'result:', newValue );
249
-
250
- return newValue;
251
- }
252
-
253
- function tvc_removeConditionValue( sourceLevel, conditionLevel, currentMetaValue ) {
254
-
255
- console.log( 'sourceLevel:', sourceLevel );
256
- console.log( 'conditionLevel:', conditionLevel );
257
- console.log( 'currentMetaValue:', currentMetaValue );
258
-
259
- var o = currentMetaValue ? JSON.parse( currentMetaValue ) : {};
260
- var coi = null;
261
-
262
- if ( o && o.hasOwnProperty( 'm' ) && o.m[ sourceLevel ] && o.m[ sourceLevel ].hasOwnProperty( 'c' ) ) {
263
-
264
- if ( o.m[ sourceLevel ].c[ conditionLevel ] ) {
265
-
266
- if ( o.m[ sourceLevel ].c.length > 1 ) {
267
-
268
- // remove the correct condition
269
- o.m[ sourceLevel ].c.splice( conditionLevel, 1 );
270
-
271
- // and resort the remaining conditions
272
- o.m[ sourceLevel ].c = tvc_resortObject( o.m[ sourceLevel ].c );
273
- } else {
274
-
275
- // check what is left in the mapping part
276
- coi = tvc_countObjectItems( o.m );
277
-
278
- if ( coi > 2 ) {
279
-
280
- o.m.splice( [ sourceLevel ], 1 );
281
- } else {
282
-
283
- if ( coi < 1 ) {
284
-
285
- if ( o.hasOwnProperty( 'v' ) ) {
286
-
287
- // when the object also has a v element only remove the m element
288
- delete o.m[ sourceLevel ];
289
- } else {
290
-
291
- // but when the object only has an m element then empty the object
292
- o = {};
293
- }
294
- } else {
295
-
296
- if ( o.m[ sourceLevel ].hasOwnProperty( 's' ) ) {
297
-
298
- // remove the condition
299
- delete o.m[ sourceLevel ].c;
300
-
301
- // and remove the source that was selected as the condition would be met
302
- o.m.splice( [ sourceLevel + 1 ], 1 );
303
- } else {
304
-
305
- if ( o.hasOwnProperty( 'v' ) ) {
306
-
307
- // when the object also has a v element only remove the m element
308
- delete o.m[ sourceLevel ];
309
- } else {
310
-
311
- // but when the object only has an m element then empty the object
312
- o = {};
313
- }
314
- }
315
- }
316
- }
317
- }
318
- }
319
- } else if ( o && o.hasOwnProperty( 'm' ) && o.m[ sourceLevel ] && o.m[ sourceLevel ].hasOwnProperty( 's' ) ) {
320
-
321
- coi = tvc_countObjectItems( o.m );
322
-
323
- if ( coi > 1 ) {
324
-
325
- o.m.splice( [ sourceLevel ], 1 );
326
- } else {
327
-
328
- if ( o.hasOwnProperty( 'v' ) ) {
329
-
330
- // when the object also has a v element only remove the m element
331
- delete o.m[ sourceLevel ];
332
- } else {
333
-
334
- // but when the object only has an m element then empty the object
335
- o = {};
336
- }
337
- }
338
- }
339
-
340
- var newValue = typeof (
341
- o
342
- ) && ! jQuery.isEmptyObject( o ) ? JSON.stringify( o ) : '';
343
-
344
- console.log( 'result:', newValue );
345
-
346
- return newValue;
347
- }
348
-
349
- function tvc_removeQueryValue( sourceLevel, conditionLevel, currentMetaValue ) {
350
-
351
- console.log( 'sourceLevel:', sourceLevel );
352
- console.log( 'conditionLevel:', conditionLevel );
353
- console.log( 'currentMetaValue:', currentMetaValue );
354
-
355
- var o = currentMetaValue ? JSON.parse( currentMetaValue ) : {};
356
-
357
- if ( o && o.hasOwnProperty( 'v' ) && o.v[ sourceLevel ] && o.v[ sourceLevel ].hasOwnProperty( 'q' ) ) {
358
-
359
- if ( o.v[ sourceLevel ].q[ conditionLevel - 1 ] ) {
360
-
361
- if ( o.v[ sourceLevel ].q.length > 1 ) {
362
-
363
- // remove the correct condition
364
- o.v[ sourceLevel ].q.splice( ( conditionLevel - 1 ), 1 );
365
-
366
- // and resort the remaining conditions
367
- o.v[ sourceLevel ].q = tvc_resortObject( o.v[ sourceLevel ].q );
368
- } else {
369
-
370
- // check what is left in the mapping part
371
- var coi = tvc_countObjectItems( o.v );
372
-
373
- if ( coi > 2 ) {
374
-
375
- o.v.splice( [ sourceLevel ], 1 );
376
- } else {
377
-
378
- if ( coi < 1 ) {
379
-
380
- if ( o.hasOwnProperty( 'm' ) ) {
381
-
382
- // when the object also has an m element only remove the v element
383
- delete o.v[ sourceLevel ];
384
- } else {
385
-
386
- // but when the object only has a v element then empty the object
387
- o = {};
388
- }
389
- } else {
390
-
391
- if ( o.v[ sourceLevel ].hasOwnProperty( '1' ) ) {
392
-
393
- // remove the condition
394
- delete o.v[ sourceLevel ].q;
395
- } else {
396
-
397
- if ( o.hasOwnProperty( 'm' ) ) {
398
-
399
- // when the object also has an m element only remove the v element
400
- delete o.v[ sourceLevel ];
401
- } else {
402
-
403
- // but when the object only has an m element then empty the object
404
- o = {};
405
- }
406
- }
407
- }
408
- }
409
- }
410
- }
411
- }
412
-
413
- var newValue = typeof (
414
- o
415
- ) && ! jQuery.isEmptyObject( o ) ? JSON.stringify( o ) : '';
416
-
417
- console.log( 'result:', newValue );
418
-
419
- return newValue;
420
- }
421
-
422
- function tvc_removeEditValuesValue( sourceLevel, valueEditorLevel, currentMetaValue ) {
423
-
424
- console.log( 'sourceLevel:', sourceLevel );
425
- console.log( 'valueEditorLevel:', valueEditorLevel );
426
- console.log( 'currentMetaValue:', currentMetaValue );
427
-
428
- var o = currentMetaValue ? JSON.parse( currentMetaValue ) : {};
429
-
430
- if ( 'v' in o ) {
431
-
432
- if ( o.v.length > 1 ) {
433
-
434
- o.v.splice( sourceLevel, 1 );
435
- } else {
436
-
437
- delete o.v;
438
- }
439
- } else {
440
-
441
- o = {};
442
- }
443
-
444
- var newValue = typeof (
445
- o
446
- ) && ! jQuery.isEmptyObject( o ) ? JSON.stringify( o ) : '';
447
-
448
- console.log( 'result:', newValue );
449
-
450
- return newValue;
451
-
452
- }
453
-
454
- function tvc_storeQueryValue( sourceLevel, queryLevel, currentMetaValue, newQuery ) {
455
-
456
- console.log( 'sourceLevel:', sourceLevel );
457
- console.log( 'queryLevel:', queryLevel );
458
- console.log( 'currentMetaValue:', currentMetaValue );
459
- console.log( 'newQuery:', newQuery );
460
-
461
- var o = currentMetaValue ? JSON.parse( currentMetaValue ) : {};
462
- var conditionPos = queryLevel - 1;
463
- var t = {};
464
- var vq = {};
465
-
466
- if ( newQuery ) {
467
-
468
- if ( ! o.hasOwnProperty( 'v' ) ) {
469
-
470
- var v = [];
471
-
472
- v.push( t );
473
- o.v = v;
474
- }
475
-
476
- if ( o.v[ sourceLevel ] && o.v[ sourceLevel ].hasOwnProperty( 'q' ) ) {
477
-
478
- vq[ queryLevel ] = newQuery;
479
-
480
- if ( o.v[ sourceLevel ].q.hasOwnProperty( conditionPos ) ) {
481
-
482
- o.v[ sourceLevel ].q[ conditionPos ] = vq;
483
- } else {
484
-
485
- o.v[ sourceLevel ].q.push( vq );
486
- }
487
- } else {
488
-
489
- var q = [];
490
-
491
- vq[ queryLevel ] = newQuery;
492
-
493
- q.push( vq );
494
-
495
- t.q = q;
496
-
497
- o.v[ sourceLevel ].q = q;
498
- }
499
- }
500
-
501
- var newValue = typeof (
502
- o
503
- ) && ! jQuery.isEmptyObject( o ) ? JSON.stringify( o ) : '';
504
-
505
- console.log( 'result:', newValue );
506
- return newValue;
507
- }
508
-
509
- function tvc_makeCombinedValuesStringFromArray( combinedValuesArray ) {
510
-
511
- var combinedValuesString = '';
512
-
513
- for ( var i = 0; i < combinedValuesArray.length; i ++ ) {
514
-
515
- combinedValuesString += combinedValuesArray[ i ];
516
- combinedValuesString += i < (
517
- combinedValuesArray.length - 1
518
- ) ? '|' : '';
519
- }
520
-
521
- return combinedValuesString;
522
- }
523
-
524
- function changeFeedFilterValue( workValue, newValues, changedFilterLevel ) {
525
-
526
- console.log( 'workValue:', workValue );
527
- console.log( 'newValues:', newValues );
528
- console.log( 'changedFilterLevel:', changedFilterLevel );
529
-
530
- var filterObject = [];
531
-
532
- if ( workValue ) {
533
- filterObject = JSON.parse( workValue[ 0 ][ 'meta_value' ] );
534
- } else {
535
- filterObject = [];
536
-
537
- workValue = []; // build a new empty workValue
538
- var m = {'meta_value': ''};
539
- workValue.push( m );
540
- }
541
-
542
- var nrFilters = filterObject.length;
543
-
544
- var newValueString = newValues[ 0 ] + '#' + newValues[ 1 ] + '#' + newValues[ 2 ];
545
- newValueString += newValues[ 2 ] !== '4' && newValues[ 2 ] !== '5' ? '#' + newValues[ 3 ] : '';
546
-
547
- if ( changedFilterLevel <= nrFilters ) {
548
- filterObject[ changedFilterLevel - 1 ][ changedFilterLevel ] = newValueString;
549
- } else {
550
-
551
- var n = {};
552
-
553
- n[ changedFilterLevel ] = newValueString;
554
- //filterObject.push( n );
555
- filterObject[ changedFilterLevel - 1 ] = n;
556
- }
557
-
558
- workValue[ 0 ][ 'meta_value' ] = JSON.stringify( filterObject );
559
-
560
- console.log( 'result:', JSON.stringify( workValue ) );
561
-
562
- return workValue;
563
- }
564
-
565
- function removeFeedFilterLevel( workValue, levelToRemove ) {
566
-
567
- console.log( 'workValue:', workValue );
568
- console.log( 'levelToRemove:', levelToRemove );
569
-
570
- var filterObject = workValue ? JSON.parse( workValue[ 0 ][ 'meta_value' ] ) : {};
571
- var returnFilterObject = [];
572
- var i = 0;
573
-
574
- for ( var key in filterObject ) {
575
-
576
- if ( parseInt( key ) !== levelToRemove - 1 ) {
577
-
578
- var v = {};
579
- v[ i + 1 ] = filterObject[ key ][ parseInt( key ) + 1 ];
580
-
581
- returnFilterObject[ i ] = v;
582
-
583
- i ++;
584
- }
585
- }
586
-
587
- if ( returnFilterObject.length > 0 ) {
588
- workValue[ 0 ][ 'meta_value' ] = JSON.stringify( returnFilterObject );
589
- console.log( 'result:', JSON.stringify( workValue ) );
590
- } else {
591
- workValue = '';
592
- console.log( 'result:', workValue );
593
- }
594
-
595
- return workValue;
596
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/data/js/tvc_metadatahandling.min.js DELETED
@@ -1 +0,0 @@
1
- function tvc_storeSourceValue(a,b,g,c){console.log("level:",a);console.log("currentMetaValue:",b);console.log("type:",g);console.log("valueToStore:",c);var e=b?JSON.parse(b):{};if(e&&"t" in e){return b}if(c&&g!=="clear"){var h={},i={};i[g]=c;h.s=i;if(e.hasOwnProperty("m")){if(!e.m[a]){e.m[a]=h}else{e.m[a].s=i}}else{var f=[];f.push(h);e.m=f}}else{if(g==="clear"){if(e.hasOwnProperty("m")){if(e.m.length>1){if(!e.m[a].c){e.m.splice(a,1)}else{delete e.m[a].s}}else{delete e.m}}else{e={}}}}var d=typeof(e)&&!jQuery.isEmptyObject(e)?JSON.stringify(e):"";console.log("result:",d);return d}function tvc_storeConditionValue(a,l,d,g){console.log("sourceLevel:",a);console.log("conditionLevel:",l);console.log("currentMetaValue:",d);console.log("newCondition:",g);var f=d?JSON.parse(d):{};var j=l-1;var k={};var b={};if(g){if(!f.hasOwnProperty("m")){var h=[];h.push(k);f.m=h}if(f.m[a]&&f.m[a].hasOwnProperty("c")){b[l]=g;if(f.m[a].c.hasOwnProperty(j)){f.m[a].c[j]=b}else{f.m[a].c.push(b)}}else{var i=[];b[l]=g;i.push(b);k.c=i;f.m[a].c=i}}var e=typeof(f)&&!jQuery.isEmptyObject(f)?JSON.stringify(f):"";console.log("result:",e);return e}function tvc_storeCombinedValue(f,c,b){console.log("sourceLevel:",f);console.log("currentMetaValue:",c);console.log("valueToStore:",b);var h=c?JSON.parse(c):{};if(b){var a=[],d={},e={};if(!h.hasOwnProperty("m")){a.push(d);h.m=a}if(!h.m[f].hasOwnProperty("s")){e.source="combined";h.m[f].s=e}h.m[f].s.f=b}var g=typeof(h)&&!jQuery.isEmptyObject(h)?JSON.stringify(h):"";console.log("result:",g);return g}function tvc_storeValueChange(a,g,b,f,c){console.log("sourceLevel:",a);console.log("valueEditorLevel:",g);console.log("valueToStore:",b);console.log("action:",f);console.log("currentMetaValue:",c);var e=c?JSON.parse(c):{};var i={};if(b&&f==="add"){i[a+1]=b;if(e.hasOwnProperty("v")){if(e.v[a]&&e.v[a].hasOwnProperty("q")){e.v[a][g+1]=b}else{e.v[a]=i}}else{var h=[];h.push(i);e.v=h}}else{if(f==="clear"){if("v" in e){if(e.v.length>1){if(!e.v[a].q){e.v.splice(a,1)}else{delete e.v[a].s}}else{delete e.v}}else{e={}}}}var d=typeof(e)&&!jQuery.isEmptyObject(e)?JSON.stringify(e):"";console.log("result:",d);return d}function tvc_removeCombinedValue(d,c,a){console.log("sourceLevel:",d);console.log("combinedLevel:",c);console.log("currentMetaValue:",a);var f=a?JSON.parse(a):{};if(f.hasOwnProperty("m")&&f.m[d].hasOwnProperty("s")&&f.m[d].s.hasOwnProperty("f")){if(f.m[d].s.f){var b=f.m[d].s.f.split("|");b.splice(c-1,1);f.m[d].s.f=tvc_makeCombinedValuesStringFromArray(b)}}var e=typeof(f)&&!jQuery.isEmptyObject(f)?JSON.stringify(f):"";console.log("result:",e);return e}function tvc_removeConditionValue(d,b,a){console.log("sourceLevel:",d);console.log("conditionLevel:",b);console.log("currentMetaValue:",a);var f=a?JSON.parse(a):{};var c=null;if(f&&f.hasOwnProperty("m")&&f.m[d]&&f.m[d].hasOwnProperty("c")){if(f.m[d].c[b]){if(f.m[d].c.length>1){f.m[d].c.splice(b,1);f.m[d].c=tvc_resortObject(f.m[d].c)}else{c=tvc_countObjectItems(f.m);if(c>2){f.m.splice([d],1)}else{if(c<1){if(f.hasOwnProperty("v")){delete f.m[d]}else{f={}}}else{if(f.m[d].hasOwnProperty("s")){delete f.m[d].c;f.m.splice([d+1],1)}else{if(f.hasOwnProperty("v")){delete f.m[d]}else{f={}}}}}}}}else{if(f&&f.hasOwnProperty("m")&&f.m[d]&&f.m[d].hasOwnProperty("s")){c=tvc_countObjectItems(f.m);if(c>1){f.m.splice([d],1)}else{if(f.hasOwnProperty("v")){delete f.m[d]}else{f={}}}}}var e=typeof(f)&&!jQuery.isEmptyObject(f)?JSON.stringify(f):"";console.log("result:",e);return e}function tvc_removeQueryValue(d,b,a){console.log("sourceLevel:",d);console.log("conditionLevel:",b);console.log("currentMetaValue:",a);var f=a?JSON.parse(a):{};if(f&&f.hasOwnProperty("v")&&f.v[d]&&f.v[d].hasOwnProperty("q")){if(f.v[d].q[b-1]){if(f.v[d].q.length>1){f.v[d].q.splice((b-1),1);f.v[d].q=tvc_resortObject(f.v[d].q)}else{var c=tvc_countObjectItems(f.v);if(c>2){f.v.splice([d],1)}else{if(c<1){if(f.hasOwnProperty("m")){delete f.v[d]}else{f={}}}else{if(f.v[d].hasOwnProperty("1")){delete f.v[d].q}else{if(f.hasOwnProperty("m")){delete f.v[d]}else{f={}}}}}}}}var e=typeof(f)&&!jQuery.isEmptyObject(f)?JSON.stringify(f):"";console.log("result:",e);return e}function tvc_removeEditValuesValue(b,e,a){console.log("sourceLevel:",b);console.log("valueEditorLevel:",e);console.log("currentMetaValue:",a);var d=a?JSON.parse(a):{};if("v" in d){if(d.v.length>1){d.v.splice(b,1)}else{delete d.v}}else{d={}}var c=typeof(d)&&!jQuery.isEmptyObject(d)?JSON.stringify(d):"";console.log("result:",c);return c}function tvc_storeQueryValue(c,g,d,k){console.log("sourceLevel:",c);console.log("queryLevel:",g);console.log("currentMetaValue:",d);console.log("newQuery:",k);var f=d?JSON.parse(d):{};var h=g-1;var j={};var a={};if(k){if(!f.hasOwnProperty("v")){var i=[];i.push(j);f.v=i}if(f.v[c]&&f.v[c].hasOwnProperty("q")){a[g]=k;if(f.v[c].q.hasOwnProperty(h)){f.v[c].q[h]=a}else{f.v[c].q.push(a)}}else{var b=[];a[g]=k;b.push(a);j.q=b;f.v[c].q=b}}var e=typeof(f)&&!jQuery.isEmptyObject(f)?JSON.stringify(f):"";console.log("result:",e);return e}function tvc_makeCombinedValuesStringFromArray(b){var a="";for(var c=0;c<b.length;c++){a+=b[c];a+=c<(b.length-1)?"|":""}return a}function changeFeedFilterValue(g,c,f){console.log("workValue:",g);console.log("newValues:",c);console.log("changedFilterLevel:",f);var e=[];if(g){e=JSON.parse(g[0]["meta_value"])}else{e=[];g=[];var a={meta_value:""};g.push(a)}var d=e.length;var b=c[0]+"#"+c[1]+"#"+c[2];b+=c[2]!=="4"&&c[2]!=="5"?"#"+c[3]:"";if(f<=d){e[f-1][f]=b}else{var h={};h[f]=b;e[f-1]=h}g[0]["meta_value"]=JSON.stringify(e);console.log("result:",JSON.stringify(g));return g}function removeFeedFilterLevel(f,g){console.log("workValue:",f);console.log("levelToRemove:",g);var e=f?JSON.parse(f[0]["meta_value"]):{};var d=[];var c=0;for(var b in e){if(parseInt(b)!==g-1){var a={};a[c+1]=e[b][parseInt(b)+1];d[c]=a;c++}}if(d.length>0){f[0]["meta_value"]=JSON.stringify(d);console.log("result:",JSON.stringify(f))}else{f="";console.log("result:",f)}return f};
 
includes/libraries/tvc-async-request.php DELETED
@@ -1,187 +0,0 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) {
3
- exit;
4
- }
5
-
6
- /**
7
- * Abstract TVC_Async_Request class derived from https://github.com/A5hleyRich/wp-background-processing.
8
- *
9
- * @package TVC-Background-Processing
10
- * @abstract
11
- */
12
- abstract class TVC_Async_Request {
13
-
14
- /**
15
- * Prefix
16
- *
17
- * (default value: 'tvc')
18
- *
19
- * @var string
20
- * @access protected
21
- */
22
- protected $prefix = 'tvc';
23
-
24
- /**
25
- * Action
26
- *
27
- * (default value: 'async_request')
28
- *
29
- * @var string
30
- */
31
- protected $action = 'async_request';
32
-
33
- /**
34
- * Identifier
35
- *
36
- * @var mixed
37
- */
38
- protected $identifier;
39
-
40
- /**
41
- * Data
42
- *
43
- * (default value: array())
44
- *
45
- * @var array
46
- */
47
- protected $data = array();
48
-
49
- /**
50
- * File Path
51
- *
52
- * (default value: empty string)
53
- *
54
- * @var string
55
- */
56
- protected $file_path = '';
57
-
58
- /**
59
- * Contains the general data of the feed
60
- *
61
- * (default value: empty string)
62
- *
63
- * @var string
64
- */
65
- protected $feed_data = '';
66
-
67
- /**
68
- * Contains general pre feed production data
69
- *
70
- * @var array
71
- */
72
- protected $pre_data;
73
-
74
- /**
75
- * Contains the channels category title and description title
76
- *
77
- * @var array
78
- */
79
- protected $channel_details;
80
-
81
- /**
82
- * Contains the relations between the WooCommerce and channel fields
83
- *
84
- * @var array
85
- */
86
- protected $relations_table;
87
-
88
- /**
89
- * Initiate new async request
90
- */
91
- public function __construct() {
92
- $this->identifier = $this->prefix . '_' . $this->action;
93
-
94
- add_action( 'wp_ajax_' . $this->identifier, array( $this, 'maybe_handle' ) );
95
- add_action( 'wp_ajax_nopriv_' . $this->identifier, array( $this, 'maybe_handle' ) );
96
- }
97
-
98
- /**
99
- * Set data used during the request
100
- *
101
- * @param array $data Data.
102
- *
103
- * @return $this
104
- */
105
- public function data( $data ) {
106
- $this->data = $data;
107
-
108
- return $this;
109
- }
110
-
111
- /**
112
- * Dispatch the async request to trigger the feed process with a remote post.
113
- *
114
- * @param string $feed_id
115
- */
116
- public function dispatch( $feed_id ) {
117
- if ( get_option( 'tvc_disabled_background_mode', 'false' ) === 'false' ) { // start a background process
118
- $url = add_query_arg( $this->get_query_args(), $this->get_query_url() );
119
- $args = $this->get_post_args();
120
- do_action( 'tvc_register_remote_post_args', $feed_id, $url, $args );
121
-
122
- // activate the background process
123
- //wp_remote_post( esc_url_raw( $url ), $args );
124
- } else { // start a foreground process
125
- $this->maybe_handle();
126
- }
127
- }
128
-
129
- /**
130
- * Get query args
131
- *
132
- * @return array
133
- */
134
- protected function get_query_args() {
135
- return array(
136
- 'action' => $this->identifier,
137
- 'nonce' => wp_create_nonce( $this->identifier ),
138
- );
139
- }
140
-
141
- /**
142
- * Get query URL
143
- *
144
- * @return string
145
- */
146
- protected function get_query_url() {
147
- return admin_url( 'admin-ajax.php' );
148
- }
149
-
150
- /**
151
- * Get post args
152
- *
153
- * @return array
154
- */
155
- protected function get_post_args() {
156
- return array(
157
- 'timeout' => 0.01,
158
- 'blocking' => false, // false because the wp_remote_call will always return a WP_Error for a cURL error 28
159
- 'body' => $this->data,
160
- 'cookies' => stripslashes_deep( $_COOKIE ),
161
- );
162
- }
163
-
164
- /**
165
- * Maybe handle
166
- *
167
- * Check for correct nonce and pass to handler.
168
- */
169
- public function maybe_handle() {
170
- // Don't lock up other requests while processing
171
- session_write_close();
172
-
173
- check_ajax_referer( $this->identifier, 'nonce' );
174
-
175
- $this->handle();
176
-
177
- wp_die();
178
- }
179
-
180
- /**
181
- * Handle
182
- *
183
- * Override this method to perform any actions required
184
- * during the async request.
185
- */
186
- abstract protected function handle();
187
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/setup/add-campaign.php CHANGED
@@ -437,7 +437,7 @@ class AddCampaign {
437
  }
438
 
439
  public function spinner() {
440
- $spinner_gif = ENHANCAD_PLUGIN_URL . '/images/ajax-loader.gif';
441
  echo '<div class="feed-spinner" id="feed-spinner" style="display:none;">
442
  <img id="img-spinner" src="' . $spinner_gif . '" alt="Loading" />
443
  </div>';
437
  }
438
 
439
  public function spinner() {
440
+ $spinner_gif = ENHANCAD_PLUGIN_URL . '/admin/images/ajax-loader.gif';
441
  echo '<div class="feed-spinner" id="feed-spinner" style="display:none;">
442
  <img id="img-spinner" src="' . $spinner_gif . '" alt="Loading" />
443
  </div>';
includes/setup/google-shopping-feed-gaa-config.php CHANGED
@@ -152,17 +152,18 @@ class GAAConfiguration {
152
  </div>
153
  </div>
154
  </div>
155
- <div class="modal fade popup-modal create-campaign" id="syncProduct" data-backdrop="false">
156
  <div class="modal-dialog modal-dialog-centered">
157
- <div class="modal-content">
158
- <div class="modal-body mt-3">
159
- <h5>Map your product attributes <span style="float:right"><button type="button" class="close" data-dismiss="modal"> &times; </button> </span></h5>
160
- <p>Google Merchant Center uses attributes to format your product information for Shopping Ads. Map your product attributes to the Merchant Center product attributes below. You can also edit each product’s individual attributes after you sync your products. Not all fields below are marked required, however based on your shop\'s categories and your country you might map a few optional attributes as well. See the full guide <a target="_blank" href="https://support.google.com/merchants/answer/7052112">here</a>.
 
161
  </p>
162
  <div class="wizard-section campaign-wizard">
163
  <div class="wizard-content">
164
- <input type="hidden" name="merchant_id" id="merchant_id" value="<?php echo $this->merchantId; ?>">
165
- <form class="tab-wizard wizard- wizard" id="productSync" method="POST">
166
  <h5><span class="wiz-title">Category Mapping</span></h5>
167
  <section>
168
  <div class="card-wrapper">
@@ -189,7 +190,10 @@ class GAAConfiguration {
189
  </div>
190
  </div>
191
  <?php
 
 
192
  foreach ($this->TVC_Admin_Helper->get_gmcAttributes() as $key => $attribute) {
 
193
  echo '<div class="row">
194
  <div class="col-6 align-self-center">
195
  <div class="form-group">
@@ -199,19 +203,38 @@ class GAAConfiguration {
199
  </div>
200
  <div class="col-6 align-self-center">
201
  <div class="form-group">';
 
 
 
202
  if($attribute["field"]=='link'){
203
  echo "product link";
204
- }else if($attribute["field"]=='channel'){
205
- echo "online";
 
 
 
 
 
 
 
 
 
 
 
206
  }else{
207
- echo '<select class="form-control select2 ' . (isset($attribute["required"]) && $attribute["required"] == 1 ? "field-required" : "") . '" name="' . $attribute["field"] . '" >
208
- <option value="0">Please Select Attribute</option>';
209
- foreach ($this->wooCommerceAttributes() as $wKey => $wAttribute) {
210
- echo '<option value="' . $wAttribute["field"] . '"';
211
- echo (isset($attribute['required']) && $attribute['required'] == 1 && $attribute['wAttribute'] == $wAttribute["field"]) ? "selected" : "";
212
- echo '>' . $wAttribute["field"] . '</option>';
213
- }
214
- echo '</select>';
 
 
 
 
 
215
  }
216
  echo '</div>
217
  </div>
@@ -225,7 +248,9 @@ class GAAConfiguration {
225
  </div>
226
  </div>
227
  </div>
228
- </div><?php echo get_connect_google_popup_html()?>
 
 
229
  <script type="text/javascript">
230
  $(document).ready(function() {
231
  $(".select2").select2();
@@ -240,6 +265,22 @@ $(".tab-wizard").steps({
240
  next: "Next",
241
  previous: "Previous",
242
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
243
  onStepChanged: function(event, currentIndex, priorIndex) {
244
  $('.steps .current').prevAll().addClass('disabled');
245
  },
152
  </div>
153
  </div>
154
  </div>
155
+ <div class="modal fade popup-modal create-campa overlay" id="syncProduct" data-backdrop="false">
156
  <div class="modal-dialog modal-dialog-centered">
157
+ <div class="modal-content">
158
+ <div class="modal-body">
159
+ <button type="button" class="close tvc-popup-close" data-dismiss="modal"> &times; </button>
160
+ <h5>Map your product attributes</h5>
161
+ <p>Google Merchant Center uses attributes to format your product information for Shopping Ads. Map your product attributes to the Merchant Center product attributes below. You can also edit each product’s individual attributes after you sync your products. Not all fields below are marked required, however based on your shop's categories and your country you might map a few optional attributes as well. See the full guide <a target="_blank" href="https://support.google.com/merchants/answer/7052112">here</a>.
162
  </p>
163
  <div class="wizard-section campaign-wizard">
164
  <div class="wizard-content">
165
+ <input type="hidden" name="merchant_id" id="merchant_id" value="<?php echo $this->merchantId; ?>">
166
+ <form class="tab-wizard wizard- wizard" id="productSync" method="POST">
167
  <h5><span class="wiz-title">Category Mapping</span></h5>
168
  <section>
169
  <div class="card-wrapper">
190
  </div>
191
  </div>
192
  <?php
193
+ $ee_mapped_attrs = unserialize(get_option('ee_prod_mapped_attrs'));
194
+ $wooCommerceAttributes = $this->wooCommerceAttributes();
195
  foreach ($this->TVC_Admin_Helper->get_gmcAttributes() as $key => $attribute) {
196
+ $sel_val="";
197
  echo '<div class="row">
198
  <div class="col-6 align-self-center">
199
  <div class="form-group">
203
  </div>
204
  <div class="col-6 align-self-center">
205
  <div class="form-group">';
206
+ $tvc_select_option = $wooCommerceAttributes;
207
+ $require = (isset($attribute['required']) && $attribute['required'])?true:false;
208
+ $sel_val = (isset($attribute['wAttribute']))?$attribute['wAttribute']:"";
209
  if($attribute["field"]=='link'){
210
  echo "product link";
211
+ }else if($attribute["field"]=='shipping'){
212
+ $sel_val = (isset($ee_mapped_attrs[$attribute["field"]]))?$ee_mapped_attrs[$attribute["field"]]:"";
213
+ //$name, $class_id, string $label=null, $sel_val = null, bool $require = false
214
+ echo $this->TVC_Admin_Helper->tvc_text($attribute["field"], 'number', '', 'Add shipping flat rate', $sel_val, $require);
215
+ }else if($attribute["field"]=='tax'){
216
+ $sel_val = (isset($ee_mapped_attrs[$attribute["field"]]))?$ee_mapped_attrs[$attribute["field"]]:"";
217
+ //$name, $class_id, string $label=null, $sel_val = null, bool $require = false
218
+ echo $this->TVC_Admin_Helper->tvc_text($attribute["field"], 'number', '', 'Add TAX flat (%)', $sel_val, $require);
219
+ }else if($attribute["field"]=='content_language'){
220
+ echo $this->TVC_Admin_Helper->tvc_language_select($attribute["field"], '', 'Please Select Attribute', 'en',$require);
221
+ }else if($attribute["field"]=='target_country'){
222
+ //$name, $class_id, bool $require = false
223
+ echo $this->TVC_Admin_Helper->tvc_countries_select($attribute["field"], '', 'Please Select Attribute', $require);
224
  }else{
225
+ if(isset($attribute['fixed_options']) && $attribute['fixed_options'] !=""){
226
+ $tvc_select_option_t = explode(",", $attribute['fixed_options']);
227
+ $tvc_select_option=[];
228
+ foreach( $tvc_select_option_t as $o_val ){
229
+ $tvc_select_option[]['field'] = $o_val;
230
+ }
231
+ $this->TVC_Admin_Helper->tvc_select($attribute["field"],'','Please Select Attribute', $sel_val, $require, $tvc_select_option);
232
+ }else{
233
+ //print_r($ee_mapped_attrs);
234
+ $sel_val = (isset($ee_mapped_attrs[$attribute["field"]]))?$ee_mapped_attrs[$attribute["field"]]:"";
235
+ //$name, $class_id, $label="Please Select", $sel_val, $require, $option_list
236
+ $this->TVC_Admin_Helper->tvc_select($attribute["field"],'','Please Select Attribute', $sel_val, $require, $tvc_select_option);
237
+ }
238
  }
239
  echo '</div>
240
  </div>
248
  </div>
249
  </div>
250
  </div>
251
+ </div>
252
+ <?php echo get_connect_google_popup_html()?>
253
+ <?php $shop_categories_list = $this->TVC_Admin_Helper->get_tvc_product_cat_list(); ?>
254
  <script type="text/javascript">
255
  $(document).ready(function() {
256
  $(".select2").select2();
265
  next: "Next",
266
  previous: "Previous",
267
  },
268
+ onStepChanging: function(e, currentIndex, newIndex) {
269
+ var shop_categories = JSON.parse("<?php echo $shop_categories_list; ?>");
270
+ var is_tvc_cat_selecte = false;
271
+ shop_categories.forEach(function(v,i){
272
+ if(is_tvc_cat_selecte == false && $("#category-"+v).val() != "" && $("#category-"+v).val() != 0){
273
+ is_tvc_cat_selecte =true;
274
+ return false;
275
+ }
276
+ });
277
+ if(is_tvc_cat_selecte == 1 || is_tvc_cat_selecte == true){
278
+ return true;
279
+ }else{
280
+ alert("Select at least one Google Merchant Center Category.");
281
+ return false;
282
+ }
283
+ },
284
  onStepChanged: function(event, currentIndex, priorIndex) {
285
  $('.steps .current').prevAll().addClass('disabled');
286
  },
includes/setup/google-shopping-feed-shopping-campaigns.php CHANGED
@@ -52,7 +52,7 @@ class CampaignsConfiguration
52
 
53
  public function spinner()
54
  {
55
- $spinner_gif = ENHANCAD_PLUGIN_URL . '/images/ajax-loader.gif';
56
  echo '<div class="feed-spinner" id="feed-spinner" style="display:none;">
57
  <img id="img-spinner" src="' . $spinner_gif . '" alt="Loading" />
58
  </div>';
52
 
53
  public function spinner()
54
  {
55
+ $spinner_gif = ENHANCAD_PLUGIN_URL . '/admin/images/ajax-loader.gif';
56
  echo '<div class="feed-spinner" id="feed-spinner" style="display:none;">
57
  <img id="img-spinner" src="' . $spinner_gif . '" alt="Loading" />
58
  </div>';
includes/setup/google-shopping-feed-sync-product.php CHANGED
@@ -194,12 +194,13 @@ public function create_form(){
194
  </div>
195
  </div>
196
  </div>
197
- <div class="modal fade popup-modal create-campaign" id="syncProduct" data-backdrop="false">
198
  <div class="modal-dialog modal-dialog-centered">
199
- <div class="modal-content">
200
- <div class="modal-body mt-3">
201
- <h5>Map your product attributes <span style="float:right"><button type="button" class="close" data-dismiss="modal"> &times; </button> </span></h5>
202
- <p>Google Merchant Center uses attributes to format your product information for Shopping Ads. Map your product attributes to the Merchant Center product attributes below. You can also edit each product’s individual attributes after you sync your products. Not all fields below are marked required, however based on your shop\'s categories and your country you might map a few optional attributes as well. See the full guide <a target="_blank" href="https://support.google.com/merchants/answer/7052112">here</a>.
 
203
  </p>
204
  <div class="wizard-section campaign-wizard">
205
  <div class="wizard-content">
@@ -231,7 +232,10 @@ public function create_form(){
231
  </div>
232
  </div>
233
  <?php
 
 
234
  foreach ($this->TVC_Admin_Helper->get_gmcAttributes() as $key => $attribute) {
 
235
  echo '<div class="row">
236
  <div class="col-6 align-self-center">
237
  <div class="form-group">
@@ -241,19 +245,40 @@ public function create_form(){
241
  </div>
242
  <div class="col-6 align-self-center">
243
  <div class="form-group">';
 
 
 
244
  if($attribute["field"]=='link'){
245
  echo "product link";
246
- }else if($attribute["field"]=='channel'){
247
- echo "online";
 
 
 
 
 
 
 
 
 
 
 
248
  }else{
249
- echo '<select class="form-control select2 ' . (isset($attribute["required"]) && $attribute["required"] == 1 ? "field-required" : "") . '" name="' . $attribute["field"] . '" >
250
- <option value="0">Please Select Attribute</option>';
251
- foreach ($this->wooCommerceAttributes() as $wKey => $wAttribute) {
252
- echo '<option value="' . $wAttribute["field"] . '"';
253
- echo (isset($attribute['required']) && $attribute['required'] == 1 && $attribute['wAttribute'] == $wAttribute["field"]) ? "selected" : "";
254
- echo '>' . $wAttribute["field"] . '</option>';
255
- }
256
- echo '</select>';
 
 
 
 
 
 
 
257
  }
258
  echo '</div>
259
  </div>
@@ -268,6 +293,7 @@ public function create_form(){
268
  </div>
269
  </div>
270
  </div>
 
271
  <script type="text/javascript">
272
  function call_tvc_api_sync_up(){
273
  var tvs_this = event.target;
@@ -285,8 +311,7 @@ function call_tvc_api_sync_up(){
285
  setTimeout(function(){ $("#tvc_msg").remove(); location.reload();}, 4000);
286
  }
287
  });
288
- }
289
-
290
 
291
  $(document).ready(function() {
292
  $(".select2").select2();
@@ -301,8 +326,24 @@ $(".tab-wizard").steps({
301
  next: "Next",
302
  previous: "Previous",
303
  },
304
- onStepChanged: function(event, currentIndex, priorIndex) {
305
- $('.steps .current').prevAll().addClass('disabled');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
306
  },
307
  onFinished: function(event, currentIndex) {
308
  var valid=true;
194
  </div>
195
  </div>
196
  </div>
197
+ <div class="modal fade popup-modal create-campa overlay" id="syncProduct" data-backdrop="false">
198
  <div class="modal-dialog modal-dialog-centered">
199
+ <div class="modal-content">
200
+ <div class="modal-body">
201
+ <button type="button" class="close tvc-popup-close" data-dismiss="modal"> &times; </button>
202
+ <h5>Map your product attributes</h5>
203
+ <p>Google Merchant Center uses attributes to format your product information for Shopping Ads. Map your product attributes to the Merchant Center product attributes below. You can also edit each product’s individual attributes after you sync your products. Not all fields below are marked required, however based on your shop's categories and your country you might map a few optional attributes as well. See the full guide <a target="_blank" href="https://support.google.com/merchants/answer/7052112">here</a>.
204
  </p>
205
  <div class="wizard-section campaign-wizard">
206
  <div class="wizard-content">
232
  </div>
233
  </div>
234
  <?php
235
+ $ee_mapped_attrs = unserialize(get_option('ee_prod_mapped_attrs'));
236
+ $wooCommerceAttributes = $this->wooCommerceAttributes();
237
  foreach ($this->TVC_Admin_Helper->get_gmcAttributes() as $key => $attribute) {
238
+ $sel_val="";
239
  echo '<div class="row">
240
  <div class="col-6 align-self-center">
241
  <div class="form-group">
245
  </div>
246
  <div class="col-6 align-self-center">
247
  <div class="form-group">';
248
+ $tvc_select_option = $wooCommerceAttributes;
249
+ $require = (isset($attribute['required']) && $attribute['required'])?true:false;
250
+ $sel_val = (isset($attribute['wAttribute']))?$attribute['wAttribute']:"";
251
  if($attribute["field"]=='link'){
252
  echo "product link";
253
+ }else if($attribute["field"]=='shipping'){
254
+ //$name, $class_id, string $label=null, $sel_val = null, bool $require = false
255
+ $sel_val = (isset($ee_mapped_attrs[$attribute["field"]]))?$ee_mapped_attrs[$attribute["field"]]:"";
256
+ echo $this->TVC_Admin_Helper->tvc_text($attribute["field"], 'number', '', 'Add shipping flat rate', $sel_val, $require);
257
+ }else if($attribute["field"]=='tax'){
258
+ //$name, $class_id, string $label=null, $sel_val = null, bool $require = false
259
+ $sel_val = (isset($ee_mapped_attrs[$attribute["field"]]))?$ee_mapped_attrs[$attribute["field"]]:"";
260
+ echo $this->TVC_Admin_Helper->tvc_text($attribute["field"], 'number', '', 'Add TAX flat (%)', $sel_val, $require);
261
+ }else if($attribute["field"]=='content_language'){
262
+ echo $this->TVC_Admin_Helper->tvc_language_select($attribute["field"], '', 'Please Select Attribute', 'en',$require);
263
+ }else if($attribute["field"]=='target_country'){
264
+ //$name, $class_id, bool $require = false
265
+ echo $this->TVC_Admin_Helper->tvc_countries_select($attribute["field"], '', 'Please Select Attribute', $require);
266
  }else{
267
+ if(isset($attribute['fixed_options']) && $attribute['fixed_options'] !=""){
268
+ $tvc_select_option_t = explode(",", $attribute['fixed_options']);
269
+ $tvc_select_option=[];
270
+ foreach( $tvc_select_option_t as $o_val ){
271
+ $tvc_select_option[]['field'] = $o_val;
272
+ }
273
+ $this->TVC_Admin_Helper->tvc_select($attribute["field"],'','Please Select Attribute', $sel_val, $require, $tvc_select_option);
274
+ }else{
275
+
276
+ //print_r($ee_mapped_attrs);
277
+ $sel_val = (isset($ee_mapped_attrs[$attribute["field"]]))?$ee_mapped_attrs[$attribute["field"]]:"";
278
+ //$name, $class_id, $label="Please Select", $sel_val, $require, $option_list
279
+ $this->TVC_Admin_Helper->tvc_select($attribute["field"],'','Please Select Attribute', $sel_val, $require, $tvc_select_option);
280
+ }
281
+
282
  }
283
  echo '</div>
284
  </div>
293
  </div>
294
  </div>
295
  </div>
296
+ <?php $shop_categories_list = $this->TVC_Admin_Helper->get_tvc_product_cat_list(); ?>
297
  <script type="text/javascript">
298
  function call_tvc_api_sync_up(){
299
  var tvs_this = event.target;
311
  setTimeout(function(){ $("#tvc_msg").remove(); location.reload();}, 4000);
312
  }
313
  });
314
+ }
 
315
 
316
  $(document).ready(function() {
317
  $(".select2").select2();
326
  next: "Next",
327
  previous: "Previous",
328
  },
329
+ onStepChanging: function(e, currentIndex, newIndex) {
330
+ var shop_categories = JSON.parse("<?php echo $shop_categories_list; ?>");
331
+ var is_tvc_cat_selecte = false;
332
+ shop_categories.forEach(function(v,i){
333
+ if(is_tvc_cat_selecte == false && $("#category-"+v).val() != "" && $("#category-"+v).val() != 0){
334
+ is_tvc_cat_selecte =true;
335
+ return false;
336
+ }
337
+ });
338
+ if(is_tvc_cat_selecte == 1 || is_tvc_cat_selecte == true){
339
+ return true;
340
+ }else{
341
+ alert("Select at least one Google Merchant Center Category.");
342
+ return false;
343
+ }
344
+ },
345
+ onStepChanged: function(event, currentIndex, priorIndex) {
346
+ $('.steps .current').prevAll().addClass('disabled');
347
  },
348
  onFinished: function(event, currentIndex) {
349
  var valid=true;
includes/setup/google-shopping-feed.php CHANGED
@@ -33,6 +33,31 @@ class GoogleShoppingFeed {
33
  </div>
34
  </li>';
35
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  public function create_form() {
37
  $googleDetail = [];
38
  $google_detail = $this->TVC_Admin_Helper->get_ee_options_data();
@@ -117,10 +142,15 @@ class GoogleShoppingFeed {
117
  </div>
118
  <div class="card-body">
119
  <ul class="list-unstyled"><?php
120
- echo $this->configuration_list_html("Google merchant center",(isset($googleDetail->google_merchant_center_id))?$googleDetail->google_merchant_center_id:"")
121
- .$this->configuration_list_html("Site Verified",((isset($googleDetail->is_site_verified)))?$googleDetail->is_site_verified:"")
122
- .$this->configuration_list_html("Domain claim",((isset($googleDetail->is_domain_claim)))?$googleDetail->is_domain_claim:"")
123
- .$this->configuration_list_html("Google Ads linking",((isset($googleDetail->google_ads_id)))?$googleDetail->google_ads_id:"");
 
 
 
 
 
124
  ?>
125
  </ul>
126
  </div>
@@ -190,6 +220,26 @@ class GoogleShoppingFeed {
190
  </div>
191
  </div>
192
  <script type="text/javascript">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  function call_tvc_api_sync_up(){
194
  var tvs_this = event.target;
195
  $("#tvc_msg").remove();
33
  </div>
34
  </li>';
35
  }
36
+ public function configuration_error_list_html($title, $val){
37
+ if($this->subscriptionId != ""){
38
+ return '<li>
39
+ <div class="row">
40
+ <div class="col-7 col-md-7 col-lg-7 align-self-center pr-0">
41
+ <span class="text">'.$title.'</span>
42
+ </div>
43
+ <div class="col-5 col-md-5 col-lg-5 align-self-center text-right">
44
+ <div class="list-image"><img id="refresh_domain_claim" onclick="call_domain_claim();" src="'. ENHANCAD_PLUGIN_URL.'/admin/images/refresh.png"><img src="' . ENHANCAD_PLUGIN_URL.'/admin/images/exclaimation.png" alt="no-config-success"/></div>
45
+ </div>
46
+ </div>
47
+ </li>';
48
+ }else{
49
+ return '<li>
50
+ <div class="row">
51
+ <div class="col-7 col-md-7 col-lg-7 align-self-center pr-0">
52
+ <span class="text">'.$title.'</span>
53
+ </div>
54
+ <div class="col-5 col-md-5 col-lg-5 align-self-center text-right">
55
+ <div class="list-image"><img src="' . ENHANCAD_PLUGIN_URL.'/admin/images/exclaimation.png" alt="no-config-success"/></div>
56
+ </div>
57
+ </div>
58
+ </li>';
59
+ }
60
+ }
61
  public function create_form() {
62
  $googleDetail = [];
63
  $google_detail = $this->TVC_Admin_Helper->get_ee_options_data();
142
  </div>
143
  <div class="card-body">
144
  <ul class="list-unstyled"><?php
145
+ $is_domain_claim = (isset($googleDetail->is_domain_claim))?$googleDetail->is_domain_claim:"";
146
+ echo $this->configuration_list_html("Google merchant center",(isset($googleDetail->google_merchant_center_id))?$googleDetail->google_merchant_center_id:"");
147
+ echo $this->configuration_list_html("Site Verified",(isset($googleDetail->is_site_verified))?$googleDetail->is_site_verified:"");
148
+ if($is_domain_claim ==1){
149
+ echo $this->configuration_list_html("Domain claim",$is_domain_claim);
150
+ }else{
151
+ echo $this->configuration_error_list_html("Domain claim",$is_domain_claim);
152
+ }
153
+ echo $this->configuration_list_html("Google Ads linking",((isset($googleDetail->google_ads_id)))?$googleDetail->google_ads_id:"");
154
  ?>
155
  </ul>
156
  </div>
220
  </div>
221
  </div>
222
  <script type="text/javascript">
223
+ function call_domain_claim(){
224
+ var tvs_this = event.target;
225
+ $("#refresh_domain_claim").css("visibility","hidden");
226
+ $(tvs_this).after('<div class="domain-claim-spinner tvc-nb-spinner" id="domain-claim-spinner"></div>');
227
+ jQuery.post(myAjaxNonces.ajaxurl,{
228
+ action: "tvc_call_domain_claim",
229
+ apiDomainClaimNonce: myAjaxNonces.apiDomainClaimNonce
230
+ },function( response ){
231
+ var rsp = JSON.parse(response);
232
+ if(rsp.status == "success"){
233
+ alert(rsp.message);
234
+ location.reload();
235
+ //$(tvs_this).after('<span id="tvc_msg">'+rsp.message+"</span>");
236
+ //setTimeout(function(){ $("#tvc_msg").remove(); location.reload();}, 4000);
237
+ }else{
238
+ alert(rsp.message);
239
+ }
240
+ $("#domain-claim-spinner").remove();
241
+ });
242
+ }
243
  function call_tvc_api_sync_up(){
244
  var tvs_this = event.target;
245
  $("#tvc_msg").remove();
includes/setup/help-html.php CHANGED
@@ -18,11 +18,9 @@ function get_connect_google_popup_html(){
18
  </div>
19
  <div class="modal-footer">
20
  <a target="_blank" class="ee-oauth-container btn darken-4 white black-text" href="'. $TVC_Admin_Helper->get_connect_url().'" style="text-transform:none; margin: 0 auto;">
21
- <div class="left">
22
- <img width="20px" style="margin-top:7px; margin-right:8px" alt="Google sign-in"
23
- src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Google_%22G%22_Logo.svg/512px-Google_%22G%22_Logo.svg.png" />
24
- </div>
25
- <p style="font-size: inherit; margin-top:5px; margin-right:8px; ">Sign In With Google</p>
26
  </a>
27
  <!--sigin with google end-->
28
  </div>
@@ -46,14 +44,13 @@ function get_google_shopping_tabs_html($site_url, $google_merchant_center_id){
46
  $tab = (isset($_GET['tab']) && $_GET['tab'])?$_GET['tab']:"";
47
  $TVC_Admin_Helper = new TVC_Admin_Helper();
48
  $setting_status = $TVC_Admin_Helper->check_setting_status_sub_tabs();
49
- //echo "<pre>";
50
  //print_r($setting_status);
51
  $google_shopping_conf_msg ="";
52
  if(isset($setting_status['google_shopping_conf'] ) && $setting_status['google_shopping_conf'] == false && isset($setting_status["google_shopping_conf_msg"]) && $setting_status["google_shopping_conf_msg"]){
53
  $google_shopping_conf_msg = '<span class="tvc-tooltiptext tvc-tooltip-right">'.((isset($setting_status["google_shopping_conf_msg"]))?$setting_status["google_shopping_conf_msg"]:"").'</span>';
54
  }
55
  $google_shopping_p_sync_msg="";
56
- if(isset($setting_status['google_shopping_conf'] ) && $setting_status['google_shopping_conf'] == false && isset($setting_status["google_shopping_p_sync_msg"]) && $setting_status["google_shopping_p_sync_msg"] !=""){
57
  $google_shopping_p_sync_msg = '<span class="tvc-tooltiptext tvc-tooltip-right">'.((isset($setting_status["google_shopping_p_sync_msg"]))?$setting_status["google_shopping_p_sync_msg"]:"").'</span>';
58
  }
59
 
18
  </div>
19
  <div class="modal-footer">
20
  <a target="_blank" class="ee-oauth-container btn darken-4 white black-text" href="'. $TVC_Admin_Helper->get_connect_url().'" style="text-transform:none; margin: 0 auto;">
21
+
22
+ <p style="font-size: inherit; margin-top:5px;"><img width="20px" style="margin-right:8px" alt="Google sign-in"
23
+ src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Google_%22G%22_Logo.svg/512px-Google_%22G%22_Logo.svg.png" />Sign In With Google</p>
 
 
24
  </a>
25
  <!--sigin with google end-->
26
  </div>
44
  $tab = (isset($_GET['tab']) && $_GET['tab'])?$_GET['tab']:"";
45
  $TVC_Admin_Helper = new TVC_Admin_Helper();
46
  $setting_status = $TVC_Admin_Helper->check_setting_status_sub_tabs();
 
47
  //print_r($setting_status);
48
  $google_shopping_conf_msg ="";
49
  if(isset($setting_status['google_shopping_conf'] ) && $setting_status['google_shopping_conf'] == false && isset($setting_status["google_shopping_conf_msg"]) && $setting_status["google_shopping_conf_msg"]){
50
  $google_shopping_conf_msg = '<span class="tvc-tooltiptext tvc-tooltip-right">'.((isset($setting_status["google_shopping_conf_msg"]))?$setting_status["google_shopping_conf_msg"]:"").'</span>';
51
  }
52
  $google_shopping_p_sync_msg="";
53
+ if(isset($setting_status['google_shopping_p_sync'] ) && $setting_status['google_shopping_p_sync'] == false && isset($setting_status["google_shopping_p_sync_msg"]) && $setting_status["google_shopping_p_sync_msg"] !=""){
54
  $google_shopping_p_sync_msg = '<span class="tvc-tooltiptext tvc-tooltip-right">'.((isset($setting_status["google_shopping_p_sync_msg"]))?$setting_status["google_shopping_p_sync_msg"]:"").'</span>';
55
  }
56
 
includes/setup/json/geotargets.csv DELETED
@@ -1,103827 +0,0 @@
1
- "1000002","Kabul","Kabul,Kabul,Afghanistan","9075393","AF","City",Active
2
- "1000003","Luanda","Luanda,Luanda Province,Angola","9070431","AO","City",Active
3
- "1000004","The Valley","The Valley,Anguilla","2660","AI","City",Active
4
- "1000010","Abu Dhabi","Abu Dhabi,Abu Dhabi,United Arab Emirates","9041082","AE","City",Active
5
- "1000011","Ajman","Ajman,Ajman,United Arab Emirates","9047096","AE","City",Active
6
- "1000012","Al Ain","Al Ain,Abu Dhabi,United Arab Emirates","9041082","AE","City",Active
7
- "1000013","Dubai","Dubai,Dubai,United Arab Emirates","9041083","AE","City",Active
8
- "1000014","Ras Al-Khaimah","Ras Al-Khaimah,Ras al Khaimah,United Arab Emirates","9047098","AE","City",Active
9
- "1000018","Salta","Salta,Salta Province,Argentina","20008","AR","City",Active
10
- "1000021","Avellaneda","Avellaneda,Buenos Aires Province,Argentina","20009","AR","City",Active
11
- "1000024","Bahia Blanca","Bahia Blanca,Buenos Aires Province,Argentina","20009","AR","City",Active
12
- "1000025","Balcarce","Balcarce,Buenos Aires Province,Argentina","20009","AR","City",Active
13
- "1000027","Brandsen","Brandsen,Buenos Aires Province,Argentina","20009","AR","City",Active
14
- "1000028","Campana","Campana,Buenos Aires Province,Argentina","20009","AR","City",Active
15
- "1000029","Chacabuco","Chacabuco,Buenos Aires Province,Argentina","20009","AR","City",Active
16
- "1000030","Colon","Colon,Buenos Aires Province,Argentina","20009","AR","City",Active
17
- "1000031","Del Viso","Del Viso,Pilar,Buenos Aires Province,Argentina","20009","AR","City",Active
18
- "1000035","Isidro Casanova","Isidro Casanova,Buenos Aires Province,Argentina","20009","AR","City",Active
19
- "1000036","Junin","Junin,Buenos Aires Province,Argentina","20009","AR","City",Active
20
- "1000037","La Plata","La Plata,Buenos Aires Province,Argentina","20009","AR","City",Active
21
- "1000039","Lomas de Zamora","Lomas de Zamora,Buenos Aires Province,Argentina","20009","AR","City",Active
22
- "1000040","Luis Guillon","Luis Guillon,Buenos Aires Province,Argentina","20009","AR","City",Active
23
- "1000041","Lujan","Lujan,Buenos Aires Province,Argentina","20009","AR","City",Active
24
- "1000042","Mar del Plata","Mar del Plata,Buenos Aires Province,Argentina","20009","AR","City",Active
25
- "1000044","Moron","Moron,Buenos Aires Province,Argentina","20009","AR","City",Active
26
- "1000045","Olavarria","Olavarria,Buenos Aires Province,Argentina","20009","AR","City",Active
27
- "1000047","Pergamino","Pergamino,Buenos Aires Province,Argentina","20009","AR","City",Active
28
- "1000050","Pinamar","Pinamar,Buenos Aires Province,Argentina","20009","AR","City",Active
29
- "1000053","Quilmes","Quilmes,Buenos Aires Province,Argentina","20009","AR","City",Active
30
- "1000058","San Antonio de Padua","San Antonio de Padua,Buenos Aires Province,Argentina","20009","AR","City",Active
31
- "1000059","San Fernando","San Fernando,Buenos Aires Province,Argentina","20009","AR","City",Active
32
- "1000060","San Isidro","San Isidro,Buenos Aires Province,Argentina","20009","AR","City",Active
33
- "1000062","San Nicolas de los Arroyos","San Nicolas de los Arroyos,Buenos Aires Province,Argentina","20009","AR","City",Active
34
- "1000063","San Pedro","San Pedro,Buenos Aires Province,Argentina","20009","AR","City",Active
35
- "1000065","Tandil","Tandil,Buenos Aires Province,Argentina","20009","AR","City",Active
36
- "1000066","Tortuguitas","Tortuguitas,Buenos Aires Province,Argentina","20009","AR","City",Active
37
- "1000067","Trenque Lauquen","Trenque Lauquen,Buenos Aires Province,Argentina","20009","AR","City",Active
38
- "1000069","Vicente Lopez","Vicente Lopez,Buenos Aires Province,Argentina","20009","AR","City",Active
39
- "1000070","Villa Gesell","Villa Gesell,Buenos Aires Province,Argentina","20009","AR","City",Active
40
- "1000072","Zarate","Zarate,Buenos Aires Province,Argentina","20009","AR","City",Active
41
- "1000073","Buenos Aires","Buenos Aires,Buenos Aires,Argentina","20010","AR","City",Active
42
- "1000075","Concepcion del Uruguay","Concepcion del Uruguay,Entre Rios,Argentina","20011","AR","City",Active
43
- "1000077","Gualeguaychu","Gualeguaychu,Entre Rios,Argentina","20011","AR","City",Active
44
- "1000078","Parana","Parana,Entre Rios,Argentina","20011","AR","City",Active
45
- "1000080","La Rioja","La Rioja,La Rioja Province,Argentina","20012","AR","City",Active
46
- "1000081","Santiago del Estero","Santiago del Estero,Santiago del Estero Province,Argentina","21298","AR","City",Active
47
- "1000082","Resistencia","Resistencia,Chaco Province,Argentina","20013","AR","City",Active
48
- "1000083","Roque Saenz Pena","Roque Saenz Pena,Santa Fe Province,Argentina","20021","AR","City",Active
49
- "1000085","San Juan","San Juan,San Juan Province,Argentina","20014","AR","City",Active
50
- "1000086","Catamarca","Catamarca,Catamarca Province,Argentina","20015","AR","City",Active
51
- "1000088","General Pico","General Pico,La Pampa,Argentina","20016","AR","City",Active
52
- "1000089","Santa Rosa","Santa Rosa,La Pampa,Argentina","20016","AR","City",Active
53
- "1000092","Mendoza","Mendoza,Mendoza Province,Argentina","20017","AR","City",Active
54
- "1000094","San Martin","San Martin,Mendoza Province,Argentina","20017","AR","City",Active
55
- "1000095","San Rafael","San Rafael,Mendoza Province,Argentina","20017","AR","City",Active
56
- "1000096","Posadas","Posadas,Misiones Province,Argentina","20018","AR","City",Active
57
- "1000097","Formosa","Formosa,Formosa Province,Argentina","21299","AR","City",Active
58
- "1000099","Neuquen","Neuquen,Neuquen,Argentina","20019","AR","City",Active
59
- "1000100","San Martin de los Andes","San Martin de los Andes,Neuquen,Argentina","20019","AR","City",Active
60
- "1000104","San Carlos de Bariloche","San Carlos de Bariloche,Rio Negro,Argentina","20020","AR","City",Active
61
- "1000105","Viedma","Viedma,Rio Negro,Argentina","20020","AR","City",Active
62
- "1000108","Rafaela","Rafaela,Santa Fe Province,Argentina","20021","AR","City",Active
63
- "1000109","Rosario","Rosario,Santa Fe Province,Argentina","20021","AR","City",Active
64
- "1000112","Santa Fe","Santa Fe,Santa Fe Province,Argentina","20021","AR","City",Active
65
- "1000114","Venado Tuerto","Venado Tuerto,Santa Fe Province,Argentina","20021","AR","City",Active
66
- "1000115","Villa Constitucion","Villa Constitucion,Santa Fe Province,Argentina","20021","AR","City",Active
67
- "1000116","San Miguel de Tucuman","San Miguel de Tucuman,Tucuman,Argentina","20022","AR","City",Active
68
- "1000117","Comodoro Rivadavia","Comodoro Rivadavia,Chubut Province,Argentina","20023","AR","City",Active
69
- "1000119","Puerto Madryn","Puerto Madryn,Chubut Province,Argentina","20023","AR","City",Active
70
- "1000121","Rio Grande","Rio Grande,Tierra del Fuego Province,Argentina","20024","AR","City",Active
71
- "1000122","Ushuaia","Ushuaia,Tierra del Fuego Province,Argentina","20024","AR","City",Active
72
- "1000123","Corrientes","Corrientes,Corrientes,Argentina","20025","AR","City",Active
73
- "1000126","Cordoba","Cordoba,Cordoba,Argentina","20026","AR","City",Active
74
- "1000128","Rio Cuarto","Rio Cuarto,Cordoba,Argentina","20026","AR","City",Active
75
- "1000129","San Francisco","San Francisco,Cordoba,Argentina","20026","AR","City",Active
76
- "1000130","Villa Maria","Villa Maria,Cordoba,Argentina","20026","AR","City",Active
77
- "1000133","Jujuy","Jujuy,Jujuy,Argentina","20027","AR","City",Active
78
- "1000134","Caleta Olivia","Caleta Olivia,Santa Cruz Province,Argentina","20028","AR","City",Active
79
- "1000135","Rio Gallegos","Rio Gallegos,Santa Cruz Province,Argentina","20028","AR","City",Active
80
- "1000138","Saint John's","Saint John's,Saint John,Antigua and Barbuda","9075418","AG","City",Active
81
- "1000142","Canberra","Canberra,Australian Capital Territory,Australia","20034","AU","City",Active
82
- "1000144","Barwon Downs","Barwon Downs,Victoria,Australia","20040","AU","City",Active
83
- "1000148","Albury","Albury,New South Wales,Australia","20035","AU","City",Active
84
- "1000149","Armidale","Armidale,New South Wales,Australia","20035","AU","City",Active
85
- "1000152","Ballina","Ballina,New South Wales,Australia","20035","AU","City",Active
86
- "1000156","Batemans Bay","Batemans Bay,New South Wales,Australia","20035","AU","City",Active
87
- "1000157","Bathurst","Bathurst,New South Wales,Australia","20035","AU","City",Active
88
- "1000170","Broken Hill","Broken Hill,New South Wales,Australia","20035","AU","City",Active
89
- "1000173","Cessnock","Cessnock,New South Wales,Australia","20035","AU","City",Active
90
- "1000184","Coffs Harbour","Coffs Harbour,New South Wales,Australia","20035","AU","City",Active
91
- "1000200","Dubbo","Dubbo,New South Wales,Australia","20035","AU","City",Active
92
- "1000211","Goulburn","Goulburn,New South Wales,Australia","20035","AU","City",Active
93
- "1000212","Grafton","Grafton,New South Wales,Australia","20035","AU","City",Active
94
- "1000213","Griffith","Griffith,New South Wales,Australia","20035","AU","City",Active
95
- "1000225","Kiama","Kiama,New South Wales,Australia","20035","AU","City",Active
96
- "1000226","Victoria Point","Victoria Point,Queensland,Australia","20037","AU","City",Active
97
- "1000227","Katoomba","Katoomba,New South Wales,Australia","20035","AU","City",Active
98
- "1000233","Lismore","Lismore,New South Wales,Australia","20035","AU","City",Active
99
- "1000234","Lithgow","Lithgow,New South Wales,Australia","20035","AU","City",Active
100
- "1000236","Maitland","Maitland,New South Wales,Australia","20035","AU","City",Active
101
- "1000246","Craigieburn","Craigieburn,Victoria,Australia","20040","AU","City",Active
102
- "1000250","Muswellbrook","Muswellbrook,New South Wales,Australia","20035","AU","City",Active
103
- "1000255","Newcastle","Newcastle,New South Wales,Australia","20035","AU","City",Active
104
- "1000259","Nowra","Nowra,New South Wales,Australia","20035","AU","City",Active
105
- "1000262","Orange","Orange,New South Wales,Australia","20035","AU","City",Active
106
- "1000264","Parkes","Parkes,New South Wales,Australia","20035","AU","City",Active
107
- "1000269","Port Macquarie","Port Macquarie,New South Wales,Australia","20035","AU","City",Active
108
- "1000274","Raymond Terrace","Raymond Terrace,New South Wales,Australia","20035","AU","City",Active
109
- "1000278","Richmond","Richmond,New South Wales,Australia","20035","AU","City",Active
110
- "1000281","Sawtell","Sawtell,New South Wales,Australia","20035","AU","City",Active
111
- "1000284","Singleton","Singleton,New South Wales,Australia","20035","AU","City",Active
112
- "1000286","Sydney","Sydney,New South Wales,Australia","20035","AU","City",Active
113
- "1000287","Tamworth","Tamworth,New South Wales,Australia","20035","AU","City",Active
114
- "1000288","Taree","Taree,New South Wales,Australia","20035","AU","City",Active
115
- "1000304","Wagga Wagga","Wagga Wagga,New South Wales,Australia","20035","AU","City",Active
116
- "1000314","Wollongong","Wollongong,New South Wales,Australia","20035","AU","City",Active
117
- "1000320","Alice Springs","Alice Springs,Northern Territory,Australia","20036","AU","City",Active
118
- "1000322","Darwin","Darwin,Northern Territory,Australia","20036","AU","City",Active
119
- "1000336","Bongaree","Bongaree,Queensland,Australia","20037","AU","City",Active
120
- "1000339","Brisbane","Brisbane,Queensland,Australia","20037","AU","City",Active
121
- "1000341","Buderim","Buderim,Queensland,Australia","20037","AU","City",Active
122
- "1000342","Bundaberg","Bundaberg,Queensland,Australia","20037","AU","City",Active
123
- "1000346","Caboolture","Caboolture,Queensland,Australia","20037","AU","City",Active
124
- "1000347","Cairns","Cairns,Queensland,Australia","20037","AU","City",Active
125
- "1000348","Caloundra","Caloundra,Queensland,Australia","20037","AU","City",Active
126
- "1000358","Dalby","Dalby,Queensland,Australia","20037","AU","City",Active
127
- "1000364","Gladstone","Gladstone,Queensland,Australia","20037","AU","City",Active
128
- "1000366","Gympie","Gympie,Queensland,Australia","20037","AU","City",Active
129
- "1000376","Kingston","Kingston,Tasmania,Australia","20039","AU","City",Active
130
- "1000377","Kawana","Kawana,Queensland,Australia","20037","AU","City",Active
131
- "1000380","Mackay","Mackay,Queensland,Australia","20037","AU","City",Active
132
- "1000382","Maroochydore","Maroochydore,Queensland,Australia","20037","AU","City",Active
133
- "1000383","Maryborough","Maryborough,Queensland,Australia","20037","AU","City",Active
134
- "1000388","Mount Isa","Mount Isa,Queensland,Australia","20037","AU","City",Active
135
- "1000390","Nambour","Nambour,Queensland,Australia","20037","AU","City",Active
136
- "1000392","Nerang","Nerang,Queensland,Australia","20037","AU","City",Active
137
- "1000401","Redcliffe","Redcliffe,Queensland,Australia","20037","AU","City",Active
138
- "1000404","Rockhampton","Rockhampton,Queensland,Australia","20037","AU","City",Active
139
- "1000412","Toowoomba","Toowoomba,Queensland,Australia","20037","AU","City",Active
140
- "1000414","Townsville","Townsville,Queensland,Australia","20037","AU","City",Active
141
- "1000415","Warwick","Warwick,Queensland,Australia","20037","AU","City",Active
142
- "1000422","Adelaide","Adelaide,South Australia,Australia","20038","AU","City",Active
143
- "1000438","Gawler","Gawler,South Australia,Australia","20038","AU","City",Active
144
- "1000449","Mount Gambier","Mount Gambier,South Australia,Australia","20038","AU","City",Active
145
- "1000450","Murray Bridge","Murray Bridge,South Australia,Australia","20038","AU","City",Active
146
- "1000456","Port Augusta","Port Augusta,South Australia,Australia","20038","AU","City",Active
147
- "1000457","Port Lincoln","Port Lincoln,South Australia,Australia","20038","AU","City",Active
148
- "1000458","Port Pirie","Port Pirie,South Australia,Australia","20038","AU","City",Active
149
- "1000469","Whyalla","Whyalla,South Australia,Australia","20038","AU","City",Active
150
- "1000476","Burnie - Somerset","Burnie - Somerset,Tasmania,Australia","20039","AU","City",Active
151
- "1000479","Devonport","Devonport,Tasmania,Australia","20039","AU","City",Active
152
- "1000480","Hobart","Hobart,Tasmania,Australia","20039","AU","City",Active
153
- "1000481","Launceston","Launceston,Tasmania,Australia","20039","AU","City",Active
154
- "1000485","Ulverstone","Ulverstone,Tasmania,Australia","20039","AU","City",Active
155
- "1000490","Bacchus Marsh","Bacchus Marsh,Victoria,Australia","20040","AU","City",Active
156
- "1000491","Bairnsdale","Bairnsdale,Victoria,Australia","20040","AU","City",Active
157
- "1000492","Ballarat","Ballarat,Victoria,Australia","20040","AU","City",Active
158
- "1000498","Bendigo","Bendigo,Victoria,Australia","20040","AU","City",Active
159
- "1000521","Cranbourne","Cranbourne,Victoria,Australia","20040","AU","City",Active
160
- "1000530","Echuca","Echuca,Victoria,Australia","20040","AU","City",Active
161
- "1000537","Geelong","Geelong,Victoria,Australia","20040","AU","City",Active
162
- "1000549","Horsham","Horsham,Victoria,Australia","20040","AU","City",Active
163
- "1000550","Palmerston City","Palmerston City,Northern Territory,Australia","20036","AU","City",Active
164
- "1000567","Melbourne","Melbourne,Victoria,Australia","20040","AU","City",Active
165
- "1000568","Melton","Melton,Victoria,Australia","20040","AU","City",Active
166
- "1000571","Mildura","Mildura,Victoria,Australia","20040","AU","City",Active
167
- "1000572","Moe - Newborough","Moe - Newborough,Victoria,Australia","20040","AU","City",Active
168
- "1000576","Morwell","Morwell,Victoria,Australia","20040","AU","City",Active
169
- "1000588","Colac","Colac,Victoria,Australia","20040","AU","City",Active
170
- "1000590","Pakenham","Pakenham,Victoria,Australia","20040","AU","City",Active
171
- "1000593","Portland","Portland,Victoria,Australia","20040","AU","City",Active
172
- "1000594","Central Coast","Central Coast,New South Wales,Australia","20035","AU","City",Active
173
- "1000599","Casino","Casino,New South Wales,Australia","20035","AU","City",Active
174
- "1000602","Sale","Sale,Victoria,Australia","20040","AU","City",Active
175
- "1000605","Shepparton - Mooroopna","Shepparton - Mooroopna,Victoria,Australia","20040","AU","City",Active
176
- "1000609","Sunbury","Sunbury,Victoria,Australia","20040","AU","City",Active
177
- "1000614","Traralgon","Traralgon,Victoria,Australia","20040","AU","City",Active
178
- "1000616","Wangaratta","Wangaratta,Victoria,Australia","20040","AU","City",Active
179
- "1000620","Warrnambool","Warrnambool,Victoria,Australia","20040","AU","City",Active
180
- "1000630","Albany","Albany,Western Australia,Australia","20041","AU","City",Active
181
- "1000635","Broome","Broome,Western Australia,Australia","20041","AU","City",Active
182
- "1000636","Bunbury","Bunbury,Western Australia,Australia","20041","AU","City",Active
183
- "1000637","Busselton","Busselton,Western Australia,Australia","20041","AU","City",Active
184
- "1000650","Geraldton","Geraldton,Western Australia,Australia","20041","AU","City",Active
185
- "1000652","Hervey Bay","Hervey Bay,Queensland,Australia","20037","AU","City",Active
186
- "1000653","Kalgoorlie - Boulder","Kalgoorlie - Boulder,Western Australia,Australia","20041","AU","City",Active
187
- "1000654","Karratha","Karratha,Western Australia,Australia","20041","AU","City",Active
188
- "1000658","Kwinana Town Centre","Kwinana Town Centre,Western Australia,Australia","20041","AU","City",Active
189
- "1000662","Mandurah","Mandurah,Western Australia,Australia","20041","AU","City",Active
190
- "1000665","Gold Coast","Gold Coast,Queensland,Australia","20037","AU","City",Active
191
- "1000676","Perth","Perth,Western Australia,Australia","20041","AU","City",Active
192
- "1000678","Port Hedland","Port Hedland,Western Australia,Australia","20041","AU","City",Active
193
- "1000679","Rockingham","Rockingham,Western Australia,Australia","20041","AU","City",Active
194
- "1000683","Bad Tatzmannsdorf","Bad Tatzmannsdorf,Burgenland,Austria","20042","AT","City",Active
195
- "1000684","Eisenstadt","Eisenstadt,Burgenland,Austria","20042","AT","City",Active
196
- "1000685","Grosspetersdorf","Grosspetersdorf,Burgenland,Austria","20042","AT","City",Active
197
- "1000686","Jennersdorf","Jennersdorf,Burgenland,Austria","20042","AT","City",Active
198
- "1000687","Landsee","Landsee,Burgenland,Austria","20042","AT","City",Active
199
- "1000688","Lockenhaus","Lockenhaus,Burgenland,Austria","20042","AT","City",Active
200
- "1000689","Mattersburg","Mattersburg,Burgenland,Austria","20042","AT","City",Active
201
- "1000690","Neusiedl am See","Neusiedl am See,Burgenland,Austria","20042","AT","City",Active
202
- "1000691","Oberpullendorf","Oberpullendorf,Burgenland,Austria","20042","AT","City",Active
203
- "1000692","Oberwart","Oberwart,Burgenland,Austria","20042","AT","City",Active
204
- "1000693","Parndorf","Parndorf,Burgenland,Austria","20042","AT","City",Active
205
- "1000694","Wimpassing an der Leitha","Wimpassing an der Leitha,Austria","2040","AT","City",Active
206
- "1000695","Arnoldstein","Arnoldstein,Carinthia,Austria","20043","AT","City",Active
207
- "1000696","Bad Sankt Leonhard im Lavanttal","Bad Sankt Leonhard im Lavanttal,Carinthia,Austria","20043","AT","City",Active
208
- "1000697","Bad Bleiberg","Bad Bleiberg,Carinthia,Austria","20043","AT","City",Active
209
- "1000698","Feistritz an der Drau","Feistritz an der Drau,Carinthia,Austria","20043","AT","City",Active
210
- "1000699","Frantschach","Frantschach,Carinthia,Austria","20043","AT","City",Active
211
- "1000700","Friesach","Friesach,Carinthia,Austria","20043","AT","City",Active
212
- "1000701","Klagenfurt","Klagenfurt,Carinthia,Austria","20043","AT","City",Active
213
- "1000702","Mallnitz","Mallnitz,Carinthia,Austria","20043","AT","City",Active
214
- "1000703","Neudorfl","Neudorfl,Burgenland,Austria","20042","AT","City",Active
215
- "1000704","Radenthein","Radenthein,Carinthia,Austria","20043","AT","City",Active
216
- "1000705","Treffen","Treffen,Carinthia,Austria","20043","AT","City",Active
217
- "1000707","Villach","Villach,Carinthia,Austria","20043","AT","City",Active
218
- "1000708","Wernberg","Wernberg,Carinthia,Austria","20043","AT","City",Active
219
- "1000709","Amstetten","Amstetten,Lower Austria,Austria","20044","AT","City",Active
220
- "1000710","Baden bei Wien","Baden bei Wien,Lower Austria,Austria","20044","AT","City",Active
221
- "1000711","Bruck an der Leitha","Bruck an der Leitha,Lower Austria,Austria","20044","AT","City",Active
222
- "1000712","Ebergassing","Ebergassing,Lower Austria,Austria","20044","AT","City",Active
223
- "1000713","Eggenburg","Eggenburg,Lower Austria,Austria","20044","AT","City",Active
224
- "1000714","Enzesfeld","Enzesfeld,Lower Austria,Austria","20044","AT","City",Active
225
- "1000715","Gablitz","Gablitz,Lower Austria,Austria","20044","AT","City",Active
226
- "1000716","Gaming","Gaming,Lower Austria,Austria","20044","AT","City",Active
227
- "1000717","Gars am Kamp","Gars am Kamp,Lower Austria,Austria","20044","AT","City",Active
228
- "1000718","Gerasdorf","Gerasdorf,Lower Austria,Austria","20044","AT","City",Active
229
- "1000719","Gloggnitz","Gloggnitz,Lower Austria,Austria","20044","AT","City",Active
230
- "1000720","Gresten","Gresten,Lower Austria,Austria","20044","AT","City",Active
231
- "1000721","Gross-Enzersdorf","Gross-Enzersdorf,Lower Austria,Austria","20044","AT","City",Active
232
- "1000722","Gumpoldskirchen","Gumpoldskirchen,Lower Austria,Austria","20044","AT","City",Active
233
- "1000723","Guntramsdorf","Guntramsdorf,Lower Austria,Austria","20044","AT","City",Active
234
- "1000724","Hainburg an der Donau","Hainburg an der Donau,Lower Austria,Austria","20044","AT","City",Active
235
- "1000725","Hainfeld","Hainfeld,Lower Austria,Austria","20044","AT","City",Active
236
- "1000727","Heidenreichstein","Heidenreichstein,Lower Austria,Austria","20044","AT","City",Active
237
- "1000728","Herzogenburg","Herzogenburg,Lower Austria,Austria","20044","AT","City",Active
238
- "1000729","Himberg","Himberg,Lower Austria,Austria","20044","AT","City",Active
239
- "1000731","Hirtenberg","Hirtenberg,Lower Austria,Austria","20044","AT","City",Active
240
- "1000733","Hohenberg","Hohenberg,Lower Austria,Austria","20044","AT","City",Active
241
- "1000734","Hollabrunn","Hollabrunn,Lower Austria,Austria","20044","AT","City",Active
242
- "1000735","Horn","Horn,Lower Austria,Austria","20044","AT","City",Active
243
- "1000736","Kaltenleutgeben","Kaltenleutgeben,Lower Austria,Austria","20044","AT","City",Active
244
- "1000737","Kirchberg am Wechsel","Kirchberg am Wechsel,Lower Austria,Austria","20044","AT","City",Active
245
- "1000738","Klosterneuburg","Klosterneuburg,Lower Austria,Austria","20044","AT","City",Active
246
- "1000739","Korneuburg","Korneuburg,Lower Austria,Austria","20044","AT","City",Active
247
- "1000740","Kottingbrunn","Kottingbrunn,Lower Austria,Austria","20044","AT","City",Active
248
- "1000741","Krems an der Donau","Krems an der Donau,Lower Austria,Austria","20044","AT","City",Active
249
- "1000742","Langenzersdorf","Langenzersdorf,Lower Austria,Austria","20044","AT","City",Active
250
- "1000743","Lanzendorf","Lanzendorf,Lower Austria,Austria","20044","AT","City",Active
251
- "1000744","Laxenburg","Laxenburg,Lower Austria,Austria","20044","AT","City",Active
252
- "1000745","Leopoldsdorf","Leopoldsdorf,Lower Austria,Austria","20044","AT","City",Active
253
- "1000746","Lilienfeld","Lilienfeld,Lower Austria,Austria","20044","AT","City",Active
254
- "1000747","Lunz am See","Lunz am See,Lower Austria,Austria","20044","AT","City",Active
255
- "1000748","Mank","Mank,Lower Austria,Austria","20044","AT","City",Active
256
- "1000749","Maria Enzersdorf","Maria Enzersdorf,Lower Austria,Austria","20044","AT","City",Active
257
- "1000750","Melk","Melk,Lower Austria,Austria","20044","AT","City",Active
258
- "1000751","Mistelbach","Mistelbach,Lower Austria,Austria","20044","AT","City",Active
259
- "1000752","Mitterbach am Erlaufsee","Mitterbach am Erlaufsee,Lower Austria,Austria","20044","AT","Municipality",Active
260
- "1000753","Modling","Modling,Lower Austria,Austria","20044","AT","City",Active
261
- "1000754","Monichkirchen","Monichkirchen,Lower Austria,Austria","20044","AT","City",Active
262
- "1000755","Moosbrunn","Moosbrunn,Lower Austria,Austria","20044","AT","City",Active
263
- "1000757","Neulengbach","Neulengbach,Lower Austria,Austria","20044","AT","City",Active
264
- "1000758","Neunkirchen","Neunkirchen,Lower Austria,Austria","20044","AT","City",Active
265
- "1000759","Ober-Grafendorf","Ober-Grafendorf,Lower Austria,Austria","20044","AT","City",Active
266
- "1000763","Perchtoldsdorf","Perchtoldsdorf,Lower Austria,Austria","20044","AT","City",Active
267
- "1000764","Pernitz","Pernitz,Lower Austria,Austria","20044","AT","City",Active
268
- "1000765","Pochlarn","Pochlarn,Lower Austria,Austria","20044","AT","City",Active
269
- "1000766","Poysdorf","Poysdorf,Lower Austria,Austria","20044","AT","City",Active
270
- "1000767","Pressbaum","Pressbaum,Lower Austria,Austria","20044","AT","City",Active
271
- "1000768","Purkersdorf","Purkersdorf,Lower Austria,Austria","20044","AT","City",Active
272
- "1000769","Reichenau an der Rax","Reichenau an der Rax,Lower Austria,Austria","20044","AT","City",Active
273
- "1000770","Retz","Retz,Lower Austria,Austria","20044","AT","City",Active
274
- "1000772","Saint Polten","Saint Polten,Lower Austria,Austria","20044","AT","City",Active
275
- "1000773","Saint Valentin","Saint Valentin,Lower Austria,Austria","20044","AT","City",Active
276
- "1000774","Schrems","Schrems,Lower Austria,Austria","20044","AT","City",Active
277
- "1000775","Schwadorf","Schwadorf,Lower Austria,Austria","20044","AT","City",Active
278
- "1000776","Schwechat","Schwechat,Lower Austria,Austria","20044","AT","City",Active
279
- "1000777","Seitenstetten","Seitenstetten,Lower Austria,Austria","20044","AT","City",Active
280
- "1000779","Stockerau","Stockerau,Lower Austria,Austria","20044","AT","City",Active
281
- "1000780","Strasshof an der Nordbahn","Strasshof an der Nordbahn,Lower Austria,Austria","20044","AT","City",Active
282
- "1000781","Teesdorf","Teesdorf,Lower Austria,Austria","20044","AT","City",Active
283
- "1000782","Ternitz","Ternitz,Lower Austria,Austria","20044","AT","City",Active
284
- "1000784","Traiskirchen","Traiskirchen,Lower Austria,Austria","20044","AT","City",Active
285
- "1000786","Tulln","Tulln,Lower Austria,Austria","20044","AT","City",Active
286
- "1000788","Vosendorf","Vosendorf,Lower Austria,Austria","20044","AT","City",Active
287
- "1000790","Waidhofen an der Ybbs","Waidhofen an der Ybbs,Lower Austria,Austria","20044","AT","City",Active
288
- "1000791","Wartmannstetten","Wartmannstetten,Lower Austria,Austria","20044","AT","City",Active
289
- "1000792","Wiener Neudorf","Wiener Neudorf,Lower Austria,Austria","20044","AT","City",Active
290
- "1000793","Wiener Neustadt","Wiener Neustadt,Lower Austria,Austria","20044","AT","City",Active
291
- "1000794","Wolkersdorf","Wolkersdorf,Lower Austria,Austria","20044","AT","City",Active
292
- "1000795","Ybbsitz","Ybbsitz,Lower Austria,Austria","20044","AT","City",Active
293
- "1000796","Ziersdorf","Ziersdorf,Lower Austria,Austria","20044","AT","City",Active
294
- "1000797","Zwettl","Zwettl,Lower Austria,Austria","20044","AT","City",Active
295
- "1000799","Alkoven","Alkoven,Upper Austria,Austria","20045","AT","City",Active
296
- "1000801","Altheim","Altheim,Upper Austria,Austria","20045","AT","Municipality",Active
297
- "1000802","Altmunster","Altmunster,Upper Austria,Austria","20045","AT","City",Active
298
- "1000803","Ansfelden","Ansfelden,Upper Austria,Austria","20045","AT","City",Active
299
- "1000804","Bad Ischl","Bad Ischl,Upper Austria,Austria","20045","AT","City",Active
300
- "1000805","Braunau am Inn","Braunau am Inn,Upper Austria,Austria","20045","AT","City",Active
301
- "1000806","Burgkirchen","Burgkirchen,Upper Austria,Austria","20045","AT","Municipality",Active
302
- "1000807","Eferding","Eferding,Upper Austria,Austria","20045","AT","City",Active
303
- "1000808","Eggelsberg","Eggelsberg,Upper Austria,Austria","20045","AT","City",Active
304
- "1000809","Enns","Enns,Upper Austria,Austria","20045","AT","City",Active
305
- "1000810","Esternberg","Esternberg,Upper Austria,Austria","20045","AT","City",Active
306
- "1000811","Feldkirchen an der Donau","Feldkirchen an der Donau,Upper Austria,Austria","20045","AT","City",Active
307
- "1000812","Frankenburg","Frankenburg,Upper Austria,Austria","20045","AT","City",Active
308
- "1000813","Frankenmarkt","Frankenmarkt,Upper Austria,Austria","20045","AT","City",Active
309
- "1000814","Gallspach","Gallspach,Upper Austria,Austria","20045","AT","City",Active
310
- "1000815","Garsten","Garsten,Upper Austria,Austria","20045","AT","City",Active
311
- "1000816","Gmunden","Gmunden,Upper Austria,Austria","20045","AT","City",Active
312
- "1000817","Grieskirchen","Grieskirchen,Upper Austria,Austria","20045","AT","City",Active
313
- "1000818","Gunskirchen","Gunskirchen,Upper Austria,Austria","20045","AT","City",Active
314
- "1000819","Gutau","Gutau,Upper Austria,Austria","20045","AT","City",Active
315
- "1000820","Hagenberg","Hagenberg,Upper Austria,Austria","20045","AT","City",Active
316
- "1000821","Horsching","Horsching,Upper Austria,Austria","20045","AT","City",Active
317
- "1000822","Kirchdorf an der Krems","Kirchdorf an der Krems,Upper Austria,Austria","20045","AT","City",Active
318
- "1000823","Kremsmunster","Kremsmunster,Upper Austria,Austria","20045","AT","City",Active
319
- "1000824","Laakirchen","Laakirchen,Upper Austria,Austria","20045","AT","City",Active
320
- "1000825","Lenzing","Lenzing,Upper Austria,Austria","20045","AT","City",Active
321
- "1000826","Leonding","Leonding,Upper Austria,Austria","20045","AT","City",Active
322
- "1000827","Linz","Linz,Upper Austria,Austria","20045","AT","City",Active
323
- "1000828","Marchtrenk","Marchtrenk,Upper Austria,Austria","20045","AT","City",Active
324
- "1000829","Mauthausen","Mauthausen,Upper Austria,Austria","20045","AT","City",Active
325
- "1000830","Micheldorf in Oberosterreich","Micheldorf in Oberosterreich,Upper Austria,Austria","20045","AT","City",Active
326
- "1000831","Mondsee","Mondsee,Upper Austria,Austria","20045","AT","City",Active
327
- "1000835","Niederwaldkirchen","Niederwaldkirchen,Upper Austria,Austria","20045","AT","City",Active
328
- "1000836","Ohlsdorf","Ohlsdorf,Upper Austria,Austria","20045","AT","City",Active
329
- "1000837","Ort","Ort,Upper Austria,Austria","20045","AT","City",Active
330
- "1000838","Pasching","Pasching,Upper Austria,Austria","20045","AT","City",Active
331
- "1000839","Perg","Perg,Upper Austria,Austria","20045","AT","City",Active
332
- "1000840","Peuerbach","Peuerbach,Upper Austria,Austria","20045","AT","City",Active
333
- "1000841","Pram","Pram,Upper Austria,Austria","20045","AT","City",Active
334
- "1000843","Ried im Innkreis","Ried im Innkreis,Upper Austria,Austria","20045","AT","City",Active
335
- "1000844","Sankt Florian","Sankt Florian,Upper Austria,Austria","20045","AT","City",Active
336
- "1000845","Scharding","Scharding,Upper Austria,Austria","20045","AT","City",Active
337
- "1000846","Scharnstein","Scharnstein,Upper Austria,Austria","20045","AT","City",Active
338
- "1000847","Schwertberg","Schwertberg,Upper Austria,Austria","20045","AT","City",Active
339
- "1000848","Seewalchen am Attersee","Seewalchen am Attersee,Upper Austria,Austria","20045","AT","City",Active
340
- "1000849","Stadl-Paura","Stadl-Paura,Upper Austria,Austria","20045","AT","Municipality",Active
341
- "1000850","Steyr","Steyr,Upper Austria,Austria","20045","AT","City",Active
342
- "1000851","Thalheim bei Wels","Thalheim bei Wels,Upper Austria,Austria","20045","AT","City",Active
343
- "1000852","Traun","Traun,Upper Austria,Austria","20045","AT","City",Active
344
- "1000853","Vocklabruck","Vocklabruck,Upper Austria,Austria","20045","AT","City",Active
345
- "1000854","Vocklamarkt","Vocklamarkt,Upper Austria,Austria","20045","AT","City",Active
346
- "1000855","Vorchdorf","Vorchdorf,Upper Austria,Austria","20045","AT","City",Active
347
- "1000856","Waldkirchen am Wesen","Waldkirchen am Wesen,Upper Austria,Austria","20045","AT","City",Active
348
- "1000857","Wels","Wels,Upper Austria,Austria","20045","AT","City",Active
349
- "1000858","Wernstein am Inn","Wernstein am Inn,Upper Austria,Austria","20045","AT","City",Active
350
- "1000860","Anif","Anif,Salzburg,Austria","20046","AT","City",Active
351
- "1000861","Bad Hofgastein","Bad Hofgastein,Salzburg,Austria","20046","AT","City",Active
352
- "1000862","Badgastein","Badgastein,Salzburg,Austria","20046","AT","City",Active
353
- "1000863","Bergheim","Bergheim,Salzburg,Austria","20046","AT","City",Active
354
- "1000864","Bischofshofen","Bischofshofen,Salzburg,Austria","20046","AT","City",Active
355
- "1000865","Eugendorf","Eugendorf,Salzburg,Austria","20046","AT","City",Active
356
- "1000866","Fusch","Fusch,Salzburg,Austria","20046","AT","City",Active
357
- "1000867","Fuschl","Fuschl,Salzburg,Austria","20046","AT","City",Active
358
- "1000869","Grodig","Grodig,Salzburg,Austria","20046","AT","City",Active
359
- "1000870","Hallein","Hallein,Salzburg,Austria","20046","AT","City",Active
360
- "1000871","Kaprun","Kaprun,Salzburg,Austria","20046","AT","City",Active
361
- "1000872","Lofer","Lofer,Salzburg,Austria","20046","AT","City",Active
362
- "1000873","Michaelbeuern","Michaelbeuern,Salzburg,Austria","20046","AT","City",Active
363
- "1000874","Oberalm","Oberalm,Salzburg,Austria","20046","AT","City",Active
364
- "1000875","Pfarrwerfen","Pfarrwerfen,Salzburg,Austria","20046","AT","City",Active
365
- "1000876","Rauris","Rauris,Salzburg,Austria","20046","AT","City",Active
366
- "1000877","Saalbach-Hinterglemm","Saalbach-Hinterglemm,Salzburg,Austria","20046","AT","City",Active
367
- "1000878","Salzburg","Salzburg,Salzburg,Austria","20046","AT","City",Active
368
- "1000879","Schwarzach im Pongau","Schwarzach im Pongau,Salzburg,Austria","20046","AT","City",Active
369
- "1000880","Siezenheim","Siezenheim,Salzburg,Austria","20046","AT","City",Active
370
- "1000881","Tamsweg","Tamsweg,Salzburg,Austria","20046","AT","City",Active
371
- "1000882","Thalgau","Thalgau,Salzburg,Austria","20046","AT","City",Active
372
- "1000884","Zell am See","Zell am See,Salzburg,Austria","20046","AT","City",Active
373
- "1000885","Admont","Admont,Styria,Austria","20047","AT","City",Active
374
- "1000886","Bad Gleichenberg","Bad Gleichenberg,Styria,Austria","20047","AT","City",Active
375
- "1000887","Bad Radkersburg","Bad Radkersburg,Styria,Austria","20047","AT","City",Active
376
- "1000888","Birkfeld","Birkfeld,Styria,Austria","20047","AT","City",Active
377
- "1000889","Bruck an der Mur","Bruck an der Mur,Styria,Austria","20047","AT","City",Active
378
- "1000890","Deutschlandsberg","Deutschlandsberg,Styria,Austria","20047","AT","City",Active
379
- "1000892","Ehrenhausen","Ehrenhausen,Styria,Austria","20047","AT","City",Active
380
- "1000893","Eisenerz","Eisenerz,Styria,Austria","20047","AT","City",Active
381
- "1000894","Feldbach","Feldbach,Styria,Austria","20047","AT","City",Active
382
- "1000895","Frauental an der Lassnitz","Frauental an der Lassnitz,Styria,Austria","20047","AT","Neighborhood",Active
383
- "1000896","Frohnleiten","Frohnleiten,Styria,Austria","20047","AT","City",Active
384
- "1000898","Gleisdorf","Gleisdorf,Styria,Austria","20047","AT","City",Active
385
- "1000899","Gratkorn","Gratkorn,Styria,Austria","20047","AT","City",Active
386
- "1000900","Graz","Graz,Styria,Austria","20047","AT","City",Active
387
- "1000901","Hartberg","Hartberg,Styria,Austria","20047","AT","City",Active
388
- "1000902","Hausmannstatten","Hausmannstatten,Styria,Austria","20047","AT","City",Active
389
- "1000903","Ilz","Ilz,Styria,Austria","20047","AT","City",Active
390
- "1000904","Judenburg","Judenburg,Styria,Austria","20047","AT","City",Active
391
- "1000905","Kalsdorf bei Graz","Kalsdorf bei Graz,Styria,Austria","20047","AT","City",Active
392
- "1000906","Kapfenberg","Kapfenberg,Styria,Austria","20047","AT","City",Active
393
- "1000907","Kindberg","Kindberg,Styria,Austria","20047","AT","City",Active
394
- "1000908","Knittelfeld","Knittelfeld,Styria,Austria","20047","AT","City",Active
395
- "1000909","Koflach","Koflach,Styria,Austria","20047","AT","City",Active
396
- "1000910","Alpl","Alpl,Styria,Austria","20047","AT","City",Active
397
- "1000911","Leibnitz","Leibnitz,Styria,Austria","20047","AT","City",Active
398
- "1000912","Leoben","Leoben,Styria,Austria","20047","AT","City",Active
399
- "1000913","Liezen","Liezen,Styria,Austria","20047","AT","City",Active
400
- "1000914","Mariazell","Mariazell,Styria,Austria","20047","AT","City",Active
401
- "1000915","Murau","Murau,Styria,Austria","20047","AT","City",Active
402
- "1000916","Mureck","Mureck,Styria,Austria","20047","AT","City",Active
403
- "1000917","Murzzuschlag","Murzzuschlag,Styria,Austria","20047","AT","City",Active
404
- "1000918","Rottenmann","Rottenmann,Styria,Austria","20047","AT","City",Active
405
- "1000919","Sankt Lambrecht","Sankt Lambrecht,Styria,Austria","20047","AT","City",Active
406
- "1000920","Sankt Margarethen an der Raab","Sankt Margarethen an der Raab,Styria,Austria","20047","AT","City",Active
407
- "1000922","Schladming","Schladming,Styria,Austria","20047","AT","City",Active
408
- "1000924","Stubenberg","Stubenberg,Styria,Austria","20047","AT","City",Active
409
- "1000925","Unterpremstatten","Unterpremstatten,Styria,Austria","20047","AT","City",Active
410
- "1000926","Voitsberg","Voitsberg,Styria,Austria","20047","AT","City",Active
411
- "1000927","Weiz","Weiz,Styria,Austria","20047","AT","City",Active
412
- "1000928","Zeltweg","Zeltweg,Styria,Austria","20047","AT","City",Active
413
- "1000929","Absam","Absam,Tyrol,Austria","20048","AT","City",Active
414
- "1000930","Achenkirch","Achenkirch,Tyrol,Austria","20048","AT","City",Active
415
- "1000931","Axams","Axams,Tyrol,Austria","20048","AT","City",Active
416
- "1000932","Brixlegg","Brixlegg,Tyrol,Austria","20048","AT","City",Active
417
- "1000933","Bruck am Ziller","Bruck am Ziller,Tyrol,Austria","20048","AT","City",Active
418
- "1000934","Ehrwald","Ehrwald,Tyrol,Austria","20048","AT","City",Active
419
- "1000935","Fulpmes","Fulpmes,Tyrol,Austria","20048","AT","City",Active
420
- "1000936","Galtur","Galtur,Tyrol,Austria","20048","AT","City",Active
421
- "1000937","Hall in Tirol","Hall in Tirol,Tyrol,Austria","20048","AT","City",Active
422
- "1000939","Hopfgarten im Brixental","Hopfgarten im Brixental,Tyrol,Austria","20048","AT","City",Active
423
- "1000940","Imst","Imst,Tyrol,Austria","20048","AT","City",Active
424
- "1000941","Innsbruck","Innsbruck,Tyrol,Austria","20048","AT","City",Active
425
- "1000942","Jenbach","Jenbach,Tyrol,Austria","20048","AT","City",Active
426
- "1000943","Kitzbuhel","Kitzbuhel,Tyrol,Austria","20048","AT","City",Active
427
- "1000944","Kufstein","Kufstein,Tyrol,Austria","20048","AT","City",Active
428
- "1000945","Kundl","Kundl,Tyrol,Austria","20048","AT","City",Active
429
- "1000946","Landeck","Landeck,Tyrol,Austria","20048","AT","City",Active
430
- "1000947","Lermoos","Lermoos,Tyrol,Austria","20048","AT","City",Active
431
- "1000948","Lienz","Lienz,Tyrol,Austria","20048","AT","City",Active
432
- "1000949","Mayrhofen","Mayrhofen,Tyrol,Austria","20048","AT","City",Active
433
- "1000950","Mieming","Mieming,Tyrol,Austria","20048","AT","City",Active
434
- "1000951","Pians","Pians,Tyrol,Austria","20048","AT","City",Active
435
- "1000952","Pill","Pill,Tyrol,Austria","20048","AT","City",Active
436
- "1000953","Reutte","Reutte,Tyrol,Austria","20048","AT","City",Active
437
- "1000954","Saint Anton am Arlberg","Saint Anton am Arlberg,Tyrol,Austria","20048","AT","City",Active
438
- "1000955","Sankt Johann Im Walde","Sankt Johann Im Walde,Tyrol,Austria","20048","AT","City",Active
439
- "1000956","Schwaz","Schwaz,Tyrol,Austria","20048","AT","City",Active
440
- "1000957","Seefeld","Seefeld,Tyrol,Austria","20048","AT","City",Active
441
- "1000958","Sillian","Sillian,Tyrol,Austria","20048","AT","City",Active
442
- "1000959","Soelden","Soelden,Tyrol,Austria","20048","AT","City",Active
443
- "1000960","Steeg","Steeg,Tyrol,Austria","20048","AT","City",Active
444
- "1000962","Volders","Volders,Tyrol,Austria","20048","AT","City",Active
445
- "1000963","Vomp","Vomp,Tyrol,Austria","20048","AT","City",Active
446
- "1000964","Walchsee","Walchsee,Tyrol,Austria","20048","AT","City",Active
447
- "1000965","Wattens","Wattens,Tyrol,Austria","20048","AT","City",Active
448
- "1000966","Worgl","Worgl,Tyrol,Austria","20048","AT","City",Active
449
- "1000967","Zams","Zams,Tyrol,Austria","20048","AT","City",Active
450
- "1000968","Zirl","Zirl,Tyrol,Austria","20048","AT","City",Active
451
- "1000969","Altach","Altach,Vorarlberg,Austria","20049","AT","City",Active
452
- "1000970","Bezau","Bezau,Vorarlberg,Austria","20049","AT","City",Active
453
- "1000971","Bludenz","Bludenz,Vorarlberg,Austria","20049","AT","City",Active
454
- "1000972","Brand","Brand,Vorarlberg,Austria","20049","AT","City",Active
455
- "1000973","Bregenz","Bregenz,Vorarlberg,Austria","20049","AT","City",Active
456
- "1000974","Dornbirn","Dornbirn,Vorarlberg,Austria","20049","AT","City",Active
457
- "1000975","Egg","Egg,Vorarlberg,Austria","20049","AT","City",Active
458
- "1000976","Feldkirch","Feldkirch,Vorarlberg,Austria","20049","AT","City",Active
459
- "1000978","Gotzis","Gotzis,Vorarlberg,Austria","20049","AT","City",Active
460
- "1000979","Hard","Hard,Vorarlberg,Austria","20049","AT","City",Active
461
- "1000981","Hochst","Hochst,Vorarlberg,Austria","20049","AT","City",Active
462
- "1000982","Hohenems","Hohenems,Vorarlberg,Austria","20049","AT","City",Active
463
- "1000983","Kennelbach","Kennelbach,Vorarlberg,Austria","20049","AT","City",Active
464
- "1000984","Koblach","Koblach,Vorarlberg,Austria","20049","AT","City",Active
465
- "1000985","Lauterach","Lauterach,Vorarlberg,Austria","20049","AT","City",Active
466
- "1000986","Lech","Lech,Vorarlberg,Austria","20049","AT","City",Active
467
- "1000987","Lochau","Lochau,Vorarlberg,Austria","20049","AT","City",Active
468
- "1000988","Lustenau","Lustenau,Vorarlberg,Austria","20049","AT","City",Active
469
- "1000989","Nenzing","Nenzing,Vorarlberg,Austria","20049","AT","City",Active
470
- "1000990","Rankweil","Rankweil,Vorarlberg,Austria","20049","AT","City",Active
471
- "1000991","Schlins","Schlins,Vorarlberg,Austria","20049","AT","City",Active
472
- "1000992","Schruns","Schruns,Vorarlberg,Austria","20049","AT","City",Active
473
- "1000993","Schwarzach","Schwarzach,Vorarlberg,Austria","20049","AT","City",Active
474
- "1000994","Sulzberg","Sulzberg,Vorarlberg,Austria","20049","AT","City",Active
475
- "1000996","Wolfurt","Wolfurt,Vorarlberg,Austria","20049","AT","City",Active
476
- "1000997","Vienna","Vienna,Vienna,Austria","20050","AT","City",Active
477
- "1000998","Baku","Baku,Azerbaijan","2031","AZ","City",Active
478
- "1001001","Anderlecht","Anderlecht,Brussels,Belgium","20052","BE","City",Active
479
- "1001003","Bertem","Bertem,Flanders,Belgium","9069523","BE","City",Active
480
- "1001004","Brussels","Brussels,Brussels,Belgium","20052","BE","City",Active
481
- "1001006","Etterbeek","Etterbeek,Brussels,Belgium","20052","BE","City",Active
482
- "1001007","Evere","Evere,Brussels,Belgium","20052","BE","City",Active
483
- "1001009","Hoeilaart","Hoeilaart,Flanders,Belgium","9069523","BE","City",Active
484
- "1001010","Ixelles","Ixelles,Brussels,Belgium","20052","BE","City",Active
485
- "1001011","Jette","Jette,Brussels,Belgium","20052","BE","City",Active
486
- "1001012","Kraainem","Kraainem,Flanders,Belgium","9069523","BE","City",Active
487
- "1001015","Schaerbeek","Schaerbeek,Brussels,Belgium","20052","BE","City",Active
488
- "1001018","Uccle","Uccle,Brussels,Belgium","20052","BE","City",Active
489
- "1001019","Wezembeek-Oppem","Wezembeek-Oppem,Flanders,Belgium","9069523","BE","City",Active
490
- "1001020","Woluwe-Saint-Lambert","Woluwe-Saint-Lambert,Brussels,Belgium","20052","BE","City",Active
491
- "1001021","Antwerp","Antwerp,Antwerp,Flanders,Belgium","9069523","BE","City",Active
492
- "1001022","Arendonk","Arendonk,Flanders,Belgium","9069523","BE","City",Active
493
- "1001025","Balen","Balen,Flanders,Belgium","9069523","BE","City",Active
494
- "1001026","Beerse","Beerse,Flanders,Belgium","9069523","BE","City",Active
495
- "1001027","Boechout","Boechout,Flanders,Belgium","9069523","BE","City",Active
496
- "1001028","Bonheiden","Bonheiden,Flanders,Belgium","9069523","BE","City",Active
497
- "1001030","Boom","Boom,Flanders,Belgium","9069523","BE","City",Active
498
- "1001032","Bornem","Bornem,Flanders,Belgium","9069523","BE","City",Active
499
- "1001034","Brasschaat","Brasschaat,Flanders,Belgium","9069523","BE","City",Active
500
- "1001038","Duffel","Duffel,Flanders,Belgium","9069523","BE","City",Active
501
- "1001039","Edegem","Edegem,Flanders,Belgium","9069523","BE","City",Active
502
- "1001041","Essen","Essen,Flanders,Belgium","9069523","BE","City",Active
503
- "1001042","Geel","Geel,Flanders,Belgium","9069523","BE","City",Active
504
- "1001044","Grobbendonk","Grobbendonk,Flanders,Belgium","9069523","BE","City",Active
505
- "1001045","Heist-op-den-Berg","Heist-op-den-Berg,Flanders,Belgium","9069523","BE","City",Active
506
- "1001046","Hemiksem","Hemiksem,Flanders,Belgium","9069523","BE","City",Active
507
- "1001047","Herentals","Herentals,Flanders,Belgium","9069523","BE","City",Active
508
- "1001049","Hoogstraten","Hoogstraten,Flanders,Belgium","9069523","BE","City",Active
509
- "1001051","Kalmthout","Kalmthout,Flanders,Belgium","9069523","BE","City",Active
510
- "1001052","Kapellen","Kapellen,Flanders,Belgium","9069523","BE","City",Active
511
- "1001054","Kontich","Kontich,Flanders,Belgium","9069523","BE","City",Active
512
- "1001057","Lier","Lier,Flanders,Belgium","9069523","BE","City",Active
513
- "1001058","Malle","Malle,Flanders,Belgium","9069523","BE","City",Active
514
- "1001059","Mechelen","Mechelen,Flanders,Belgium","9069523","BE","City",Active
515
- "1001062","Mol","Mol,Flanders,Belgium","9069523","BE","City",Active
516
- "1001063","Mortsel","Mortsel,Flanders,Belgium","9069523","BE","City",Active
517
- "1001066","Olen","Olen,Flanders,Belgium","9069523","BE","City",Active
518
- "1001068","Puurs","Puurs,Flanders,Belgium","9069523","BE","City",Active
519
- "1001070","Rijkevorsel","Rijkevorsel,Flanders,Belgium","9069523","BE","City",Active
520
- "1001071","Rumst","Rumst,Flanders,Belgium","9069523","BE","City",Active
521
- "1001072","Schelle","Schelle,Flanders,Belgium","9069523","BE","City",Active
522
- "1001073","Schilde","Schilde,Flanders,Belgium","9069523","BE","City",Active
523
- "1001074","Schoten","Schoten,Flanders,Belgium","9069523","BE","City",Active
524
- "1001076","Sint-Amands","Sint-Amands,Flanders,Belgium","9069523","BE","City",Active
525
- "1001078","Stabroek","Stabroek,Flanders,Belgium","9069523","BE","City",Active
526
- "1001080","Turnhout","Turnhout,Flanders,Belgium","9069523","BE","City",Active
527
- "1001082","Vosselaar","Vosselaar,Flanders,Belgium","9069523","BE","City",Active
528
- "1001083","Westerlo","Westerlo,Flanders,Belgium","9069523","BE","City",Active
529
- "1001084","Wijnegem","Wijnegem,Flanders,Belgium","9069523","BE","City",Active
530
- "1001085","Willebroek","Willebroek,Flanders,Belgium","9069523","BE","City",Active
531
- "1001087","Wommelgem","Wommelgem,Flanders,Belgium","9069523","BE","City",Active
532
- "1001088","Zandhoven","Zandhoven,Flanders,Belgium","9069523","BE","City",Active
533
- "1001089","Zoersel","Zoersel,Flanders,Belgium","9069523","BE","City",Active
534
- "1001090","Zwijndrecht","Zwijndrecht,Flanders,Belgium","9069523","BE","City",Active
535
- "1001091","Aarschot","Aarschot,Flanders,Belgium","9069523","BE","City",Active
536
- "1001092","Asse","Asse,Flanders,Belgium","9069523","BE","City",Active
537
- "1001094","Beauvechain","Beauvechain,Wallonia,Belgium","9069524","BE","City",Active
538
- "1001095","Begijnendijk","Begijnendijk,Flanders,Belgium","9069523","BE","City",Active
539
- "1001097","Bierbeek","Bierbeek,Flanders,Belgium","9069523","BE","City",Active
540
- "1001098","Boutersem","Boutersem,Flanders,Belgium","9069523","BE","City",Active
541
- "1001100","Dilbeek","Dilbeek,Flanders,Belgium","9069523","BE","City",Active
542
- "1001104","Grimbergen","Grimbergen,Flanders,Belgium","9069523","BE","City",Active
543
- "1001105","Haacht","Haacht,Flanders,Belgium","9069523","BE","City",Active
544
- "1001107","Halle","Halle,Flanders,Belgium","9069523","BE","City",Active
545
- "1001108","Herent","Herent,Flanders,Belgium","9069523","BE","City",Active
546
- "1001110","Holsbeek","Holsbeek,Flanders,Belgium","9069523","BE","City",Active
547
- "1001112","Keerbergen","Keerbergen,Flanders,Belgium","9069523","BE","City",Active
548
- "1001116","Kortenberg","Kortenberg,Flanders,Belgium","9069523","BE","City",Active
549
- "1001117","Lennik","Lennik,Flanders,Belgium","9069523","BE","City",Active
550
- "1001118","Leuven","Leuven,Flanders,Belgium","9069523","BE","City",Active
551
- "1001121","Londerzeel","Londerzeel,Flanders,Belgium","9069523","BE","City",Active
552
- "1001122","Lubbeek","Lubbeek,Flanders,Belgium","9069523","BE","City",Active
553
- "1001123","Machelen","Machelen,Flanders,Belgium","9069523","BE","City",Active
554
- "1001125","Meise","Meise,Flanders,Belgium","9069523","BE","City",Active
555
- "1001129","Opwijk","Opwijk,Flanders,Belgium","9069523","BE","City",Active
556
- "1001130","Overijse","Overijse,Flanders,Belgium","9069523","BE","City",Active
557
- "1001133","Roosdaal","Roosdaal,Flanders,Belgium","9069523","BE","City",Active
558
- "1001134","Rotselaar","Rotselaar,Flanders,Belgium","9069523","BE","City",Active
559
- "1001136","Sint-Pieters-Leeuw","Sint-Pieters-Leeuw,Flanders,Belgium","9069523","BE","City",Active
560
- "1001138","Steenokkerzeel","Steenokkerzeel,Flanders,Belgium","9069523","BE","City",Active
561
- "1001140","Ternat","Ternat,Flanders,Belgium","9069523","BE","City",Active
562
- "1001141","Tervuren","Tervuren,Flanders,Belgium","9069523","BE","City",Active
563
- "1001142","Tienen","Tienen,Flanders,Belgium","9069523","BE","City",Active
564
- "1001143","Tremelo","Tremelo,Flanders,Belgium","9069523","BE","City",Active
565
- "1001145","Vilvoorde","Vilvoorde,Flanders,Belgium","9069523","BE","City",Active
566
- "1001150","Zaventem","Zaventem,Flanders,Belgium","9069523","BE","City",Active
567
- "1001152","Alken","Alken,Flanders,Belgium","9069523","BE","City",Active
568
- "1001153","Beringen","Beringen,Flanders,Belgium","9069523","BE","City",Active
569
- "1001154","Bilzen","Bilzen,Flanders,Belgium","9069523","BE","City",Active
570
- "1001157","Bree","Bree,Flanders,Belgium","9069523","BE","City",Active
571
- "1001159","Diepenbeek","Diepenbeek,Flanders,Belgium","9069523","BE","City",Active
572
- "1001162","Genk","Genk,Flanders,Belgium","9069523","BE","City",Active
573
- "1001163","Halen","Halen,Flanders,Belgium","9069523","BE","City",Active
574
- "1001165","Hasselt","Hasselt,Flanders,Belgium","9069523","BE","City",Active
575
- "1001166","Herk-de-Stad","Herk-de-Stad,Flanders,Belgium","9069523","BE","City",Active
576
- "1001167","Hoeselt","Hoeselt,Flanders,Belgium","9069523","BE","City",Active
577
- "1001170","Kinrooi","Kinrooi,Flanders,Belgium","9069523","BE","City",Active
578
- "1001172","Lanaken","Lanaken,Flanders,Belgium","9069523","BE","City",Active
579
- "1001174","Leopoldsburg","Leopoldsburg,Flanders,Belgium","9069523","BE","City",Active
580
- "1001175","Lommel","Lommel,Flanders,Belgium","9069523","BE","City",Active
581
- "1001176","Maaseik","Maaseik,Flanders,Belgium","9069523","BE","City",Active
582
- "1001178","Opglabbeek","Opglabbeek,Flanders,Belgium","9069523","BE","City",Active
583
- "1001179","Overpelt","Overpelt,Belgium","2056","BE","City",Active
584
- "1001181","Peer","Peer,Flanders,Belgium","9069523","BE","City",Active
585
- "1001182","Sint-Truiden","Sint-Truiden,Flanders,Belgium","9069523","BE","City",Active
586
- "1001183","Tessenderlo","Tessenderlo,Flanders,Belgium","9069523","BE","City",Active
587
- "1001184","Tongeren","Tongeren,Flanders,Belgium","9069523","BE","City",Active
588
- "1001185","Zonhoven","Zonhoven,Flanders,Belgium","9069523","BE","City",Active
589
- "1001187","Aalst","Aalst,Flanders,Belgium","9069523","BE","City",Active
590
- "1001188","Aalter","Aalter,Flanders,Belgium","9069523","BE","City",Active
591
- "1001189","Assenede","Assenede,Flanders,Belgium","9069523","BE","City",Active
592
- "1001191","Beveren","Beveren,Flanders,Belgium","9069523","BE","City",Active
593
- "1001193","Brakel","Brakel,Flanders,Belgium","9069523","BE","City",Active
594
- "1001194","Buggenhout","Buggenhout,Flanders,Belgium","9069523","BE","City",Active
595
- "1001196","Deerlijk","Deerlijk,Flanders,Belgium","9069523","BE","City",Active
596
- "1001197","Deinze","Deinze,Flanders,Belgium","9069523","BE","City",Active
597
- "1001198","Dendermonde","Dendermonde,Flanders,Belgium","9069523","BE","City",Active
598
- "1001199","Destelbergen","Destelbergen,Flanders,Belgium","9069523","BE","City",Active
599
- "1001201","Eeklo","Eeklo,Flanders,Belgium","9069523","BE","City",Active
600
- "1001206","Evergem","Evergem,Flanders,Belgium","9069523","BE","City",Active
601
- "1001207","Gavere","Gavere,Flanders,Belgium","9069523","BE","City",Active
602
- "1001208","Ghent","Ghent,Flanders,Belgium","9069523","BE","City",Active
603
- "1001209","Geraardsbergen","Geraardsbergen,Flanders,Belgium","9069523","BE","City",Active
604
- "1001210","Hamme","Hamme,Flanders,Belgium","9069523","BE","City",Active
605
- "1001215","Kruibeke","Kruibeke,Flanders,Belgium","9069523","BE","City",Active
606
- "1001216","Kruishoutem","Kruishoutem,Belgium","2056","BE","Municipality",Active
607
- "1001217","Lebbeke","Lebbeke,Flanders,Belgium","9069523","BE","City",Active
608
- "1001221","Lochristi","Lochristi,Flanders,Belgium","9069523","BE","City",Active
609
- "1001222","Lokeren","Lokeren,Flanders,Belgium","9069523","BE","City",Active
610
- "1001223","Lovendegem","Lovendegem,Belgium","2056","BE","City",Active
611
- "1001224","Maldegem","Maldegem,Flanders,Belgium","9069523","BE","City",Active
612
- "1001225","Melle","Melle,Flanders,Belgium","9069523","BE","City",Active
613
- "1001228","Merelbeke","Merelbeke,Flanders,Belgium","9069523","BE","City",Active
614
- "1001231","Nazareth","Nazareth,Flanders,Belgium","9069523","BE","City",Active
615
- "1001232","Nevele","Nevele,Flanders,Belgium","9069523","BE","City",Active
616
- "1001234","Ninove","Ninove,Flanders,Belgium","9069523","BE","City",Active
617
- "1001236","Oosterzele","Oosterzele,Flanders,Belgium","9069523","BE","City",Active
618
- "1001237","Oudenaarde","Oudenaarde,Flanders,Belgium","9069523","BE","City",Active
619
- "1001238","Ronse","Ronse,Flanders,Belgium","9069523","BE","City",Active
620
- "1001242","Sint-Niklaas","Sint-Niklaas,Flanders,Belgium","9069523","BE","City",Active
621
- "1001243","Stekene","Stekene,Flanders,Belgium","9069523","BE","City",Active
622
- "1001244","Temse","Temse,Flanders,Belgium","9069523","BE","City",Active
623
- "1001247","Waarschoot","Waarschoot,Belgium","2056","BE","City",Active
624
- "1001249","Wetteren","Wetteren,Flanders,Belgium","9069523","BE","City",Active
625
- "1001252","Zele","Zele,Flanders,Belgium","9069523","BE","City",Active
626
- "1001254","Zottegem","Zottegem,Flanders,Belgium","9069523","BE","City",Active
627
- "1001256","Ardooie","Ardooie,Flanders,Belgium","9069523","BE","City",Active
628
- "1001259","Bruges","Bruges,Flanders,Belgium","9069523","BE","City",Active
629
- "1001261","Diksmuide","Diksmuide,Flanders,Belgium","9069523","BE","City",Active
630
- "1001262","Gistel","Gistel,Flanders,Belgium","9069523","BE","City",Active
631
- "1001266","Harelbeke","Harelbeke,Flanders,Belgium","9069523","BE","City",Active
632
- "1001268","Hooglede","Hooglede,Flanders,Belgium","9069523","BE","City",Active
633
- "1001269","Ypres","Ypres,Flanders,Belgium","9069523","BE","City",Active
634
- "1001270","Izegem","Izegem,Flanders,Belgium","9069523","BE","City",Active
635
- "1001271","Jabbeke","Jabbeke,Flanders,Belgium","9069523","BE","City",Active
636
- "1001273","Knokke-Heist","Knokke-Heist,Flanders,Belgium","9069523","BE","City",Active
637
- "1001274","Koksijde","Koksijde,Flanders,Belgium","9069523","BE","City",Active
638
- "1001275","Kortrijk","Kortrijk,Flanders,Belgium","9069523","BE","City",Active
639
- "1001276","Kuurne","Kuurne,Flanders,Belgium","9069523","BE","City",Active
640
- "1001277","Menen","Menen,Flanders,Belgium","9069523","BE","City",Active
641
- "1001278","Meulebeke","Meulebeke,Flanders,Belgium","9069523","BE","City",Active
642
- "1001281","Nieuwpoort","Nieuwpoort,Flanders,Belgium","9069523","BE","City",Active
643
- "1001282","Ostend","Ostend,Flanders,Belgium","9069523","BE","City",Active
644
- "1001283","Oostkamp","Oostkamp,Flanders,Belgium","9069523","BE","City",Active
645
- "1001286","Poperinge","Poperinge,Flanders,Belgium","9069523","BE","City",Active
646
- "1001287","Roeselare","Roeselare,Flanders,Belgium","9069523","BE","City",Active
647
- "1001292","Staden","Staden,Flanders,Belgium","9069523","BE","City",Active
648
- "1001293","Tielt","Tielt,Flanders,Belgium","9069523","BE","City",Active
649
- "1001294","Torhout","Torhout,Flanders,Belgium","9069523","BE","City",Active
650
- "1001297","Waregem","Waregem,Flanders,Belgium","9069523","BE","City",Active
651
- "1001298","Wervik","Wervik,Flanders,Belgium","9069523","BE","City",Active
652
- "1001300","Wevelgem","Wevelgem,Flanders,Belgium","9069523","BE","City",Active
653
- "1001301","Wielsbeke","Wielsbeke,Flanders,Belgium","9069523","BE","City",Active
654
- "1001302","Zedelgem","Zedelgem,Flanders,Belgium","9069523","BE","City",Active
655
- "1001304","Zwevegem","Zwevegem,Flanders,Belgium","9069523","BE","City",Active
656
- "1001305","Aartselaar","Aartselaar,Flanders,Belgium","9069523","BE","City",Active
657
- "1001307","Boortmeerbeek","Boortmeerbeek,Flanders,Belgium","9069523","BE","City",Active
658
- "1001308","Braine-l'Alleud","Braine-l'Alleud,Wallonia,Belgium","9069524","BE","City",Active
659
- "1001310","Diest","Diest,Flanders,Belgium","9069523","BE","City",Active
660
- "1001313","Grez-Doiceau","Grez-Doiceau,Wallonia,Belgium","9069524","BE","City",Active
661
- "1001314","Jodoigne","Jodoigne,Wallonia,Belgium","9069524","BE","City",Active
662
- "1001315","Kampenhout","Kampenhout,Flanders,Belgium","9069523","BE","City",Active
663
- "1001316","La Hulpe","La Hulpe,Wallonia,Belgium","9069524","BE","City",Active
664
- "1001317","Lasne","Lasne,Wallonia,Belgium","9069524","BE","City",Active
665
- "1001319","Ottignies-Louvain-la-Neuve","Ottignies-Louvain-la-Neuve,Wallonia,Belgium","9069524","BE","City",Active
666
- "1001321","Nivelles","Nivelles,Wallonia,Belgium","9069524","BE","City",Active
667
- "1001326","Tubize","Tubize,Wallonia,Belgium","9069524","BE","City",Active
668
- "1001327","Waterloo","Waterloo,Wallonia,Belgium","9069524","BE","City",Active
669
- "1001329","Wavre","Wavre,Wallonia,Belgium","9069524","BE","City",Active
670
- "1001330","Ath","Ath,Wallonia,Belgium","9069524","BE","City",Active
671
- "1001332","Binche","Binche,Wallonia,Belgium","9069524","BE","City",Active
672
- "1001333","Braine-le-Comte","Braine-le-Comte,Wallonia,Belgium","9069524","BE","City",Active
673
- "1001334","Charleroi","Charleroi,Wallonia,Belgium","9069524","BE","City",Active
674
- "1001337","Courcelles","Courcelles,Wallonia,Belgium","9069524","BE","City",Active
675
- "1001342","Enghien","Enghien,Wallonia,Belgium","9069524","BE","City",Active
676
- "1001343","Fleurus","Fleurus,Wallonia,Belgium","9069524","BE","City",Active
677
- "1001344","Frameries","Frameries,Wallonia,Belgium","9069524","BE","City",Active
678
- "1001355","La Louviere","La Louviere,Wallonia,Belgium","9069524","BE","City",Active
679
- "1001356","Lessines","Lessines,Wallonia,Belgium","9069524","BE","City",Active
680
- "1001360","Mons","Mons,Wallonia,Belgium","9069524","BE","City",Active
681
- "1001361","Mouscron","Mouscron,Wallonia,Belgium","9069524","BE","City",Active
682
- "1001363","Peruwelz","Peruwelz,Wallonia,Belgium","9069524","BE","City",Active
683
- "1001366","Seneffe","Seneffe,Wallonia,Belgium","9069524","BE","City",Active
684
- "1001367","Soignies","Soignies,Wallonia,Belgium","9069524","BE","City",Active
685
- "1001370","Tournai","Tournai,Wallonia,Belgium","9069524","BE","City",Active
686
- "1001379","Chaudfontaine","Chaudfontaine,Wallonia,Belgium","9069524","BE","City",Active
687
- "1001382","Eupen","Eupen,Wallonia,Belgium","9069524","BE","City",Active
688
- "1001385","Grace-Hollogne","Grace-Hollogne,Wallonia,Belgium","9069524","BE","City",Active
689
- "1001386","Hannut","Hannut,Wallonia,Belgium","9069524","BE","City",Active
690
- "1001389","Herstal","Herstal,Wallonia,Belgium","9069524","BE","City",Active
691
- "1001390","Herve","Herve,Wallonia,Belgium","9069524","BE","City",Active
692
- "1001392","Huy","Huy,Wallonia,Belgium","9069524","BE","City",Active
693
- "1001393","Landen","Landen,Flanders,Belgium","9069523","BE","City",Active
694
- "1001394","Liege","Liege,Liege,Wallonia,Belgium","9069524","BE","City",Active
695
- "1001400","Namur","Namur,Wallonia,Belgium","9069524","BE","City",Active
696
- "1001404","Seraing","Seraing,Wallonia,Belgium","9069524","BE","City",Active
697
- "1001408","Verviers","Verviers,Wallonia,Belgium","9069524","BE","City",Active
698
- "1001409","Vise","Vise,Wallonia,Belgium","9069524","BE","City",Active
699
- "1001413","Wanze","Wanze,Wallonia,Belgium","9069524","BE","City",Active
700
- "1001414","Waremme","Waremme,Wallonia,Belgium","9069524","BE","City",Active
701
- "1001418","Arlon","Arlon,Wallonia,Belgium","9069524","BE","City",Active
702
- "1001421","Bastogne","Bastogne,Wallonia,Belgium","9069524","BE","City",Active
703
- "1001426","Marche-en-Famenne","Marche-en-Famenne,Wallonia,Belgium","9069524","BE","City",Active
704
- "1001430","Ciney","Ciney,Wallonia,Belgium","9069524","BE","City",Active
705
- "1001431","Dinant","Dinant,Wallonia,Belgium","9069524","BE","City",Active
706
- "1001432","Gembloux","Gembloux,Wallonia,Belgium","9069524","BE","City",Active
707
- "1001434","Sambreville","Sambreville,Wallonia,Belgium","9069524","BE","City",Active
708
- "1001437","Cotonou","Cotonou,Littoral Department,Benin","9070230","BJ","City",Active
709
- "1001440","Chattogram","Chattogram,Chittagong Division,Bangladesh","9070359","BD","City",Active
710
- "1001442","Khulna","Khulna,Khulna Division,Bangladesh","9070358","BD","City",Active
711
- "1001444","Sylhet","Sylhet,Sylhet Division,Bangladesh","9069794","BD","City",Active
712
- "1001445","Blagoevgrad","Blagoevgrad,Blagoevgrad Province,Bulgaria","9040105","BG","City",Active
713
- "1001446","Dupnica","Dupnica,Kyustendil Province,Bulgaria","9040100","BG","City",Active
714
- "1001447","Kyustendil","Kyustendil,Kyustendil Province,Bulgaria","9040100","BG","City",Active
715
- "1001448","Sofia","Sofia,Sofia-Capital,Bulgaria","9047101","BG","Municipality",Active
716
- "1001449","Burgas","Burgas,Burgas,Bulgaria","9040121","BG","City",Active
717
- "1001450","Pomorie","Pomorie,Burgas,Bulgaria","9040121","BG","City",Active
718
- "1001451","Sliven","Sliven,Sliven Province,Bulgaria","9040119","BG","City",Active
719
- "1001452","Yambol","Yambol,Jambol,Bulgaria","9040122","BG","City",Active
720
- "1001453","Dobrich","Dobrich,Dobrich Province,Bulgaria","9040115","BG","City",Active
721
- "1001454","Varna","Varna,Varna,Bulgaria","9040118","BG","City",Active
722
- "1001455","Gabrovo","Gabrovo,Gabrovo,Bulgaria","9040125","BG","City",Active
723
- "1001456","Lovech","Lovech,Lovec,Bulgaria","9040133","BG","City",Active
724
- "1001457","Pleven","Pleven,Pleven Province,Bulgaria","9040134","BG","City",Active
725
- "1001458","Sevlievo","Sevlievo,Gabrovo,Bulgaria","9040125","BG","Municipality",Active
726
- "1001459","Veliko Tarnovo","Veliko Tarnovo,Veliko Tarnovo Province,Bulgaria","9040127","BG","City",Active
727
- "1001460","Montana","Montana,Montana Province,Bulgaria","9040146","BG","City",Active
728
- "1001461","Vidin","Vidin,Vidin,Bulgaria","9040145","BG","City",Active
729
- "1001462","Vratsa","Vratsa,Vraca,Bulgaria","9040131","BG","City",Active
730
- "1001463","Karlovo","Karlovo,Plovdiv Province,Bulgaria","9040109","BG","Municipality",Active
731
- "1001464","Plovdiv","Plovdiv,Plovdiv Province,Bulgaria","9040109","BG","Municipality",Active
732
- "1001465","Smolyan","Smolyan,Smoljan,Bulgaria","9040106","BG","City",Active
733
- "1001466","Razgrad","Razgrad,Razgrad,Bulgaria","9040140","BG","City",Active
734
- "1001467","Ruse","Ruse,Ruse,Bulgaria","9040137","BG","City",Active
735
- "1001468","Silistra","Silistra,Silistra,Bulgaria","9040142","BG","City",Active
736
- "1001469","Targovishte","Targovishte,Targovishte Province,Bulgaria","9040139","BG","City",Active
737
- "1001470","Pernik","Pernik,Pernik,Bulgaria","9040101","BG","City",Active
738
- "1001471","Petrich","Petrich,Blagoevgrad Province,Bulgaria","9040105","BG","City",Active
739
- "1001472","Dimitrovgrad","Dimitrovgrad,Haskovo Province,Bulgaria","9040114","BG","City",Active
740
- "1001473","Haskovo","Haskovo,Haskovo Province,Bulgaria","9040114","BG","City",Active
741
- "1001474","Kardzali","Kardzali,Kardzhali Province,Bulgaria","9040111","BG","City",Active
742
- "1001475","Kazanluk","Kazanluk,Stara Zagora,Bulgaria","9040123","BG","City",Active
743
- "1001476","Stara Zagora","Stara Zagora,Stara Zagora,Bulgaria","9040123","BG","City",Active
744
- "1001477","Svilengrad","Svilengrad,Haskovo Province,Bulgaria","9040114","BG","City",Active
745
- "1001478","Manama","Manama,Capital Governorate,Bahrain","9069830","BH","City",Active
746
- "1001492","Gomel","Gomel,Gomel Region,Belarus","9069576","BY","City",Active
747
- "1001493","Minsk","Minsk,Minsk Region,Belarus","9069578","BY","City",Active
748
- "1001494","Navapolatsk","Navapolatsk,Vitebsk Region,Belarus","9069577","BY","City",Active
749
- "1001495","Viciebsk","Viciebsk,Vitebsk Region,Belarus","9069577","BY","City",Active
750
- "1001504","Rio Branco","Rio Branco,State of Acre,Brazil","21232","BR","City",Active
751
- "1001505","Capela","Capela,State of Alagoas,Brazil","20086","BR","City",Active
752
- "1001506","Maceio","Maceio,State of Alagoas,Brazil","20086","BR","City",Active
753
- "1001507","Matriz de Camaragibe","Matriz de Camaragibe,State of Alagoas,Brazil","20086","BR","City",Active
754
- "1001510","Itacoatiara","Itacoatiara,State of Amazonas,Brazil","20087","BR","City",Active
755
- "1001511","Manaus","Manaus,State of Amazonas,Brazil","20087","BR","City",Active
756
- "1001513","Tefe","Tefe,State of Amazonas,Brazil","20087","BR","City",Active
757
- "1001515","Macapa","Macapa,State of Amapa,Brazil","21226","BR","City",Active
758
- "1001516","Alagoinhas","Alagoinhas,State of Bahia,Brazil","20088","BR","City",Active
759
- "1001517","Barreiras","Barreiras,State of Bahia,Brazil","20088","BR","City",Active
760
- "1001518","Caetite","Caetite,State of Bahia,Brazil","20088","BR","City",Active
761
- "1001520","Eunapolis","Eunapolis,State of Bahia,Brazil","20088","BR","City",Active
762
- "1001521","Feira de Santana","Feira de Santana,State of Bahia,Brazil","20088","BR","City",Active
763
- "1001522","Guanambi","Guanambi,State of Bahia,Brazil","20088","BR","City",Active
764
- "1001523","Itabuna","Itabuna,State of Bahia,Brazil","20088","BR","City",Active
765
- "1001524","Itamaraju","Itamaraju,State of Bahia,Brazil","20088","BR","City",Active
766
- "1001525","Itapetinga","Itapetinga,State of Bahia,Brazil","20088","BR","City",Active
767
- "1001528","Jequie","Jequie,State of Bahia,Brazil","20088","BR","City",Active
768
- "1001529","Juazeiro","Juazeiro,State of Bahia,Brazil","20088","BR","City",Active
769
- "1001533","Salvador","Salvador,State of Bahia,Brazil","20088","BR","City",Active
770
- "1001534","Santo Antonio de Jesus","Santo Antonio de Jesus,State of Bahia,Brazil","20088","BR","City",Active
771
- "1001535","Simoes Filho","Simoes Filho,State of Bahia,Brazil","20088","BR","City",Active
772
- "1001536","Vitoria da Conquista","Vitoria da Conquista,State of Bahia,Brazil","20088","BR","City",Active
773
- "1001537","Caninde","Caninde,State of Ceara,Brazil","20089","BR","City",Active
774
- "1001538","Fortaleza","Fortaleza,State of Ceara,Brazil","20089","BR","City",Active
775
- "1001539","Juazeiro do Norte","Juazeiro do Norte,State of Ceara,Brazil","20089","BR","City",Active
776
- "1001540","Sobral","Sobral,State of Ceara,Brazil","20089","BR","City",Active
777
- "1001541","Brasilia","Brasilia,Federal District,Brazil","20090","BR","City",Active
778
- "1001542","Cachoeiro de Itapemirim","Cachoeiro de Itapemirim,State of Espirito Santo,Brazil","20091","BR","City",Active
779
- "1001543","Castelo","Castelo,State of Espirito Santo,Brazil","20091","BR","City",Active
780
- "1001544","Colatina","Colatina,State of Espirito Santo,Brazil","20091","BR","City",Active
781
- "1001545","Linhares","Linhares,State of Espirito Santo,Brazil","20091","BR","City",Active
782
- "1001546","Sao Mateus","Sao Mateus,State of Espirito Santo,Brazil","20091","BR","City",Active
783
- "1001547","Serra","Serra,State of Espirito Santo,Brazil","20091","BR","City",Active
784
- "1001548","Vila Velha","Vila Velha,State of Espirito Santo,Brazil","20091","BR","City",Active
785
- "1001549","Vitoria","Vitoria,State of Espirito Santo,Brazil","20091","BR","City",Active
786
- "1001550","Catalao","Catalao,State of Goias,Brazil","20092","BR","City",Active
787
- "1001551","Ceres","Ceres,State of Goias,Brazil","20092","BR","City",Active
788
- "1001552","Goiania","Goiania,State of Goias,Brazil","20092","BR","City",Active
789
- "1001554","Itumbiara","Itumbiara,State of Goias,Brazil","20092","BR","City",Active
790
- "1001555","Jatai","Jatai,State of Goias,Brazil","20092","BR","City",Active
791
- "1001556","Rio Verde","Rio Verde,State of Goias,Brazil","20092","BR","City",Active
792
- "1001557","Trindade","Trindade,State of Goias,Brazil","20092","BR","City",Active
793
- "1001559","Balsas","Balsas,State of Maranhao,Brazil","20093","BR","City",Active
794
- "1001560","Imperatriz","Imperatriz,State of Maranhao,Brazil","20093","BR","City",Active
795
- "1001561","Sao Luis","Sao Luis,State of Maranhao,Brazil","20093","BR","City",Active
796
- "1001562","Alfenas","Alfenas,State of Minas Gerais,Brazil","20094","BR","City",Active
797
- "1001563","Araxa","Araxa,State of Minas Gerais,Brazil","20094","BR","City",Active
798
- "1001564","Arcos","Arcos,State of Minas Gerais,Brazil","20094","BR","City",Active
799
- "1001565","Barbacena","Barbacena,State of Minas Gerais,Brazil","20094","BR","City",Active
800
- "1001566","Belo Horizonte","Belo Horizonte,State of Minas Gerais,Brazil","20094","BR","City",Active
801
- "1001567","Caceres","Caceres,State of Mato Grosso,Brazil","20096","BR","City",Active
802
- "1001568","Cataguases","Cataguases,State of Minas Gerais,Brazil","20094","BR","City",Active
803
- "1001570","Divinopolis","Divinopolis,State of Minas Gerais,Brazil","20094","BR","City",Active
804
- "1001571","Governador Valadares","Governador Valadares,State of Minas Gerais,Brazil","20094","BR","City",Active
805
- "1001572","Ipatinga","Ipatinga,State of Minas Gerais,Brazil","20094","BR","City",Active
806
- "1001573","Itajuba","Itajuba,State of Minas Gerais,Brazil","20094","BR","City",Active
807
- "1001574","Juatuba","Juatuba,State of Minas Gerais,Brazil","20094","BR","City",Active
808
- "1001575","Juiz de Fora","Juiz de Fora,State of Minas Gerais,Brazil","20094","BR","City",Active
809
- "1001576","Lavras","Lavras,State of Minas Gerais,Brazil","20094","BR","City",Active
810
- "1001577","Manhuacu","Manhuacu,State of Minas Gerais,Brazil","20094","BR","City",Active
811
- "1001578","Monte Carmelo","Monte Carmelo,State of Minas Gerais,Brazil","20094","BR","City",Active
812
- "1001579","Montes Claros","Montes Claros,State of Minas Gerais,Brazil","20094","BR","City",Active
813
- "1001580","Ouro Preto","Ouro Preto,State of Minas Gerais,Brazil","20094","BR","City",Active
814
- "1001581","Passos","Passos,State of Minas Gerais,Brazil","20094","BR","City",Active
815
- "1001582","Patrocinio","Patrocinio,State of Minas Gerais,Brazil","20094","BR","City",Active
816
- "1001583","Pirapora","Pirapora,State of Minas Gerais,Brazil","20094","BR","City",Active
817
- "1001584","Pocos de Caldas","Pocos de Caldas,State of Minas Gerais,Brazil","20094","BR","City",Active
818
- "1001585","Sao Joao del Rei","Sao Joao del Rei,State of Minas Gerais,Brazil","20094","BR","City",Active
819
- "1001586","Sete Lagoas","Sete Lagoas,State of Minas Gerais,Brazil","20094","BR","City",Active
820
- "1001587","Teofilo Otoni","Teofilo Otoni,State of Minas Gerais,Brazil","20094","BR","City",Active
821
- "1001588","Tres Coracoes","Tres Coracoes,State of Minas Gerais,Brazil","20094","BR","City",Active
822
- "1001589","Uberaba","Uberaba,State of Minas Gerais,Brazil","20094","BR","City",Active
823
- "1001590","Uberlandia","Uberlandia,State of Minas Gerais,Brazil","20094","BR","City",Active
824
- "1001591","Unai","Unai,State of Minas Gerais,Brazil","20094","BR","City",Active
825
- "1001592","Vicosa","Vicosa,State of Minas Gerais,Brazil","20094","BR","City",Active
826
- "1001593","Campo Grande","Campo Grande,State of Mato Grosso do Sul,Brazil","20095","BR","City",Active
827
- "1001595","Corumba","Corumba,State of Mato Grosso do Sul,Brazil","20095","BR","City",Active
828
- "1001596","Dourados","Dourados,State of Mato Grosso do Sul,Brazil","20095","BR","City",Active
829
- "1001598","Ponta Pora","Ponta Pora,State of Mato Grosso do Sul,Brazil","20095","BR","City",Active
830
- "1001599","Tres Lagoas","Tres Lagoas,State of Mato Grosso do Sul,Brazil","20095","BR","City",Active
831
- "1001600","Alta Floresta","Alta Floresta,State of Mato Grosso,Brazil","20096","BR","City",Active
832
- "1001602","Cuiaba","Cuiaba,State of Mato Grosso,Brazil","20096","BR","City",Active
833
- "1001604","Presidente Epitacio","Presidente Epitacio,State of Sao Paulo,Brazil","20106","BR","City",Active
834
- "1001605","Rondonopolis","Rondonopolis,State of Mato Grosso,Brazil","20096","BR","City",Active
835
- "1001606","Sinop","Sinop,State of Mato Grosso,Brazil","20096","BR","City",Active
836
- "1001607","Tangara da Serra","Tangara da Serra,State of Mato Grosso,Brazil","20096","BR","City",Active
837
- "1001609","Altamira","Altamira,State of Para,Brazil","20097","BR","City",Active
838
- "1001610","Belem","Belem,State of Para,Brazil","20097","BR","City",Active
839
- "1001613","Castanhal","Castanhal,State of Para,Brazil","20097","BR","City",Active
840
- "1001614","Itaituba","Itaituba,State of Para,Brazil","20097","BR","City",Active
841
- "1001615","Maraba","Maraba,State of Para,Brazil","20097","BR","City",Active
842
- "1001616","Paragominas","Paragominas,State of Para,Brazil","20097","BR","City",Active
843
- "1001617","Redencao","Redencao,State of Para,Brazil","20097","BR","City",Active
844
- "1001618","Santarem","Santarem,State of Para,Brazil","20097","BR","City",Active
845
- "1001620","Tucurui","Tucurui,State of Para,Brazil","20097","BR","City",Active
846
- "1001621","Campina Grande","Campina Grande,State of Paraiba,Brazil","20098","BR","City",Active
847
- "1001622","Joao Pessoa","Joao Pessoa,State of Paraiba,Brazil","20098","BR","City",Active
848
- "1001624","Paulista","Paulista,State of Pernambuco,Brazil","20099","BR","City",Active
849
- "1001625","Recife","Recife,State of Pernambuco,Brazil","20099","BR","City",Active
850
- "1001629","Teresina","Teresina,State of Piaui,Brazil","20100","BR","City",Active
851
- "1001630","Apucarana","Apucarana,State of Parana,Brazil","20101","BR","City",Active
852
- "1001631","Cafelandia","Cafelandia,State of Parana,Brazil","20101","BR","City",Active
853
- "1001632","Cascavel","Cascavel,State of Parana,Brazil","20101","BR","City",Active
854
- "1001633","Cornelio Procopio","Cornelio Procopio,State of Parana,Brazil","20101","BR","City",Active
855
- "1001634","Curitiba","Curitiba,State of Parana,Brazil","20101","BR","City",Active
856
- "1001635","Guarapuava","Guarapuava,State of Parana,Brazil","20101","BR","City",Active
857
- "1001636","Ibaiti","Ibaiti,State of Parana,Brazil","20101","BR","City",Active
858
- "1001637","Londrina","Londrina,State of Parana,Brazil","20101","BR","City",Active
859
- "1001638","Palmas","Palmas,State of Parana,Brazil","20101","BR","City",Active
860
- "1001639","Paranagua","Paranagua,State of Parana,Brazil","20101","BR","City",Active
861
- "1001640","Ponta Grossa","Ponta Grossa,State of Parana,Brazil","20101","BR","City",Active
862
- "1001641","Santo Antonio da Platina","Santo Antonio da Platina,State of Parana,Brazil","20101","BR","City",Active
863
- "1001642","Sao Mateus do Sul","Sao Mateus do Sul,State of Parana,Brazil","20101","BR","City",Active
864
- "1001643","Umuarama","Umuarama,State of Parana,Brazil","20101","BR","City",Active
865
- "1001644","Barra Mansa","Barra Mansa,State of Rio de Janeiro,Brazil","20102","BR","City",Active
866
- "1001645","Cabo Frio","Cabo Frio,State of Rio de Janeiro,Brazil","20102","BR","City",Active
867
- "1001646","Campos dos Goytacazes","Campos dos Goytacazes,State of Rio de Janeiro,Brazil","20102","BR","City",Active
868
- "1001647","Itaguai","Itaguai,State of Rio de Janeiro,Brazil","20102","BR","City",Active
869
- "1001648","Itaperuna","Itaperuna,State of Rio de Janeiro,Brazil","20102","BR","City",Active
870
- "1001649","Macae","Macae,State of Rio de Janeiro,Brazil","20102","BR","City",Active
871
- "1001650","Niteroi","Niteroi,State of Rio de Janeiro,Brazil","20102","BR","City",Active
872
- "1001651","Nova Friburgo","Nova Friburgo,State of Rio de Janeiro,Brazil","20102","BR","City",Active
873
- "1001652","Nova Iguacu","Nova Iguacu,State of Rio de Janeiro,Brazil","20102","BR","City",Active
874
- "1001653","Petropolis","Petropolis,State of Rio de Janeiro,Brazil","20102","BR","City",Active
875
- "1001654","Porto Real","Porto Real,State of Rio de Janeiro,Brazil","20102","BR","City",Active
876
- "1001655","Rio de Janeiro","Rio de Janeiro,State of Rio de Janeiro,Brazil","20102","BR","City",Active
877
- "1001656","Sao Jose do Vale do Rio Preto","Sao Jose do Vale do Rio Preto,State of Rio de Janeiro,Brazil","20102","BR","City",Active
878
- "1001657","Seropedica","Seropedica,State of Rio de Janeiro,Brazil","20102","BR","City",Active
879
- "1001658","Teresopolis","Teresopolis,State of Rio de Janeiro,Brazil","20102","BR","City",Active
880
- "1001659","Valenca","Valenca,State of Rio de Janeiro,Brazil","20102","BR","City",Active
881
- "1001660","Vassouras","Vassouras,State of Rio de Janeiro,Brazil","20102","BR","City",Active
882
- "1001661","Mossoro","Mossoro,State of Rio Grande do Norte,Brazil","20103","BR","City",Active
883
- "1001662","Natal","Natal,State of Rio Grande do Norte,Brazil","20103","BR","City",Active
884
- "1001664","Cacoal","Cacoal,State of Rondonia,Brazil","21227","BR","City",Active
885
- "1001665","Ji-Parana","Ji-Parana,State of Rondonia,Brazil","21227","BR","City",Active
886
- "1001666","Porto Velho","Porto Velho,State of Rondonia,Brazil","21227","BR","City",Active
887
- "1001667","Bage","Bage,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
888
- "1001668","Cachoeira do Sul","Cachoeira do Sul,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
889
- "1001669","Camaqua","Camaqua,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
890
- "1001670","Canoas","Canoas,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
891
- "1001671","Capao da Canoa","Capao da Canoa,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
892
- "1001672","Caxias do Sul","Caxias do Sul,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
893
- "1001673","Erechim","Erechim,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
894
- "1001674","Flores da Cunha","Flores da Cunha,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
895
- "1001675","Guapore","Guapore,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
896
- "1001676","Ibiruba","Ibiruba,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
897
- "1001677","Ijui","Ijui,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
898
- "1001678","Jaguarao","Jaguarao,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
899
- "1001679","Lajeado","Lajeado,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
900
- "1001681","Novo Hamburgo","Novo Hamburgo,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
901
- "1001682","Palmeira das Missoes","Palmeira das Missoes,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
902
- "1001683","Parobe","Parobe,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
903
- "1001684","Passo Fundo","Passo Fundo,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
904
- "1001685","Pelotas","Pelotas,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
905
- "1001686","Porto Alegre","Porto Alegre,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
906
- "1001687","Rio Grande","Rio Grande,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
907
- "1001688","Santa Cruz do Sul","Santa Cruz do Sul,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
908
- "1001689","Santa Maria","Santa Maria,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
909
- "1001690","Santa Rosa","Santa Rosa,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
910
- "1001691","Santana do Livramento","Santana do Livramento,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
911
- "1001692","Sao Leopoldo","Sao Leopoldo,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
912
- "1001693","Tapes","Tapes,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
913
- "1001694","Taquari","Taquari,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
914
- "1001695","Torres","Torres,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
915
- "1001696","Uruguaiana","Uruguaiana,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
916
- "1001697","Vacaria","Vacaria,State of Rio Grande do Sul,Brazil","20104","BR","City",Active
917
- "1001698","Blumenau","Blumenau,State of Santa Catarina,Brazil","20105","BR","City",Active
918
- "1001699","Braco do Norte","Braco do Norte,State of Santa Catarina,Brazil","20105","BR","City",Active
919
- "1001700","Cacador","Cacador,State of Santa Catarina,Brazil","20105","BR","City",Active
920
- "1001701","Canoinhas","Canoinhas,State of Santa Catarina,Brazil","20105","BR","City",Active
921
- "1001702","Chapeco","Chapeco,State of Santa Catarina,Brazil","20105","BR","City",Active
922
- "1001703","Concordia","Concordia,State of Santa Catarina,Brazil","20105","BR","City",Active
923
- "1001704","Criciuma","Criciuma,State of Santa Catarina,Brazil","20105","BR","City",Active
924
- "1001705","Curitibanos","Curitibanos,State of Santa Catarina,Brazil","20105","BR","City",Active
925
- "1001706","Florianopolis","Florianopolis,State of Santa Catarina,Brazil","20105","BR","City",Active
926
- "1001707","Imbituba","Imbituba,State of Santa Catarina,Brazil","20105","BR","City",Active
927
- "1001708","Itajai","Itajai,State of Santa Catarina,Brazil","20105","BR","City",Active
928
- "1001709","Joacaba","Joacaba,State of Santa Catarina,Brazil","20105","BR","City",Active
929
- "1001710","Joinville","Joinville,State of Santa Catarina,Brazil","20105","BR","City",Active
930
- "1001712","Navegantes","Navegantes,State of Santa Catarina,Brazil","20105","BR","City",Active
931
- "1001713","Rio do Sul","Rio do Sul,State of Santa Catarina,Brazil","20105","BR","City",Active
932
- "1001714","Rio Negrinho","Rio Negrinho,State of Santa Catarina,Brazil","20105","BR","City",Active
933
- "1001715","Aracaju","Aracaju,State of Sergipe,Brazil","21229","BR","City",Active
934
- "1001716","Adamantina","Adamantina,State of Sao Paulo,Brazil","20106","BR","City",Active
935
- "1001717","Americana","Americana,State of Sao Paulo,Brazil","20106","BR","City",Active
936
- "1001718","Aracatuba","Aracatuba,State of Sao Paulo,Brazil","20106","BR","City",Active
937
- "1001719","Araraquara","Araraquara,State of Sao Paulo,Brazil","20106","BR","City",Active
938
- "1001720","Assis","Assis,State of Sao Paulo,Brazil","20106","BR","City",Active
939
- "1001721","Avare","Avare,State of Sao Paulo,Brazil","20106","BR","City",Active
940
- "1001722","Bariri","Bariri,State of Sao Paulo,Brazil","20106","BR","City",Active
941
- "1001723","Barretos","Barretos,State of Sao Paulo,Brazil","20106","BR","City",Active
942
- "1001724","Barueri","Barueri,State of Sao Paulo,Brazil","20106","BR","City",Active
943
- "1001725","Bauru","Bauru,State of Sao Paulo,Brazil","20106","BR","City",Active
944
- "1001726","Botucatu","Botucatu,State of Sao Paulo,Brazil","20106","BR","City",Active
945
- "1001727","Braganca Paulista","Braganca Paulista,State of Sao Paulo,Brazil","20106","BR","City",Active
946
- "1001728","Cachoeira Paulista","Cachoeira Paulista,State of Sao Paulo,Brazil","20106","BR","City",Active
947
- "1001729","Campinas","Campinas,State of Sao Paulo,Brazil","20106","BR","City",Active
948
- "1001730","Catanduva","Catanduva,State of Sao Paulo,Brazil","20106","BR","City",Active
949
- "1001731","Cotia","Cotia,State of Sao Paulo,Brazil","20106","BR","City",Active
950
- "1001732","Cubatao","Cubatao,State of Sao Paulo,Brazil","20106","BR","City",Active
951
- "1001733","Dracena","Dracena,State of Sao Paulo,Brazil","20106","BR","City",Active
952
- "1001734","Fernandopolis","Fernandopolis,State of Sao Paulo,Brazil","20106","BR","City",Active
953
- "1001735","Franca","Franca,State of Sao Paulo,Brazil","20106","BR","City",Active
954
- "1001736","Guarulhos","Guarulhos,State of Sao Paulo,Brazil","20106","BR","City",Active
955
- "1001737","Hortolandia","Hortolandia,State of Sao Paulo,Brazil","20106","BR","City",Active
956
- "1001738","Indaiatuba","Indaiatuba,State of Sao Paulo,Brazil","20106","BR","City",Active
957
- "1001739","Ipero","Ipero,State of Sao Paulo,Brazil","20106","BR","City",Active
958
- "1001740","Itapetininga","Itapetininga,State of Sao Paulo,Brazil","20106","BR","City",Active
959
- "1001741","Itapeva","Itapeva,State of Sao Paulo,Brazil","20106","BR","City",Active
960
- "1001742","Itarare","Itarare,State of Sao Paulo,Brazil","20106","BR","City",Active
961
- "1001743","Jundiai","Jundiai,State of Sao Paulo,Brazil","20106","BR","City",Active
962
- "1001744","Laranjal Paulista","Laranjal Paulista,State of Sao Paulo,Brazil","20106","BR","City",Active
963
- "1001745","Leme","Leme,State of Sao Paulo,Brazil","20106","BR","City",Active
964
- "1001746","Limeira","Limeira,State of Sao Paulo,Brazil","20106","BR","City",Active
965
- "1001747","Lins","Lins,State of Sao Paulo,Brazil","20106","BR","City",Active
966
- "1001748","Lorena","Lorena,State of Sao Paulo,Brazil","20106","BR","City",Active
967
- "1001749","Marilia","Marilia,State of Sao Paulo,Brazil","20106","BR","City",Active
968
- "1001750","Mococa","Mococa,State of Sao Paulo,Brazil","20106","BR","City",Active
969
- "1001751","Mogi Guacu","Mogi Guacu,State of Sao Paulo,Brazil","20106","BR","City",Active
970
- "1001752","Moji-Mirim","Moji-Mirim,State of Sao Paulo,Brazil","20106","BR","City",Active
971
- "1001753","Nova Odessa","Nova Odessa,State of Sao Paulo,Brazil","20106","BR","City",Active
972
- "1001754","Osasco","Osasco,State of Sao Paulo,Brazil","20106","BR","City",Active
973
- "1001755","Ourinhos","Ourinhos,State of Sao Paulo,Brazil","20106","BR","City",Active
974
- "1001756","Paulinia","Paulinia,State of Sao Paulo,Brazil","20106","BR","City",Active
975
- "1001757","Pindamonhangaba","Pindamonhangaba,State of Sao Paulo,Brazil","20106","BR","City",Active
976
- "1001758","Piracicaba","Piracicaba,State of Sao Paulo,Brazil","20106","BR","City",Active
977
- "1001759","Porto Ferreira","Porto Ferreira,State of Sao Paulo,Brazil","20106","BR","City",Active
978
- "1001760","Presidente Prudente","Presidente Prudente,State of Sao Paulo,Brazil","20106","BR","City",Active
979
- "1001761","Registro","Registro,State of Sao Paulo,Brazil","20106","BR","City",Active
980
- "1001762","Ribeirao Pires","Ribeirao Pires,State of Sao Paulo,Brazil","20106","BR","City",Active
981
- "1001763","Ribeirao Preto","Ribeirao Preto,State of Sao Paulo,Brazil","20106","BR","City",Active
982
- "1001764","Rio Claro","Rio Claro,State of Sao Paulo,Brazil","20106","BR","City",Active
983
- "1001765","Santo Andre","Santo Andre,State of Sao Paulo,Brazil","20106","BR","City",Active
984
- "1001766","Santos","Santos,State of Sao Paulo,Brazil","20106","BR","City",Active
985
- "1001767","Sao Bernardo do Campo","Sao Bernardo do Campo,State of Sao Paulo,Brazil","20106","BR","City",Active
986
- "1001768","Sao Caetano do Sul","Sao Caetano do Sul,State of Sao Paulo,Brazil","20106","BR","City",Active
987
- "1001769","Sao Carlos","Sao Carlos,State of Sao Paulo,Brazil","20106","BR","City",Active
988
- "1001770","Sao Joao da Boa Vista","Sao Joao da Boa Vista,State of Sao Paulo,Brazil","20106","BR","City",Active
989
- "1001771","Sao Jose do Rio Preto","Sao Jose do Rio Preto,State of Sao Paulo,Brazil","20106","BR","City",Active
990
- "1001772","Sao Jose dos Campos","Sao Jose dos Campos,State of Sao Paulo,Brazil","20106","BR","City",Active
991
- "1001773","Sao Paulo","Sao Paulo,State of Sao Paulo,Brazil","20106","BR","City",Active
992
- "1001774","Sao Sebastiao","Sao Sebastiao,State of Sao Paulo,Brazil","20106","BR","City",Active
993
- "1001775","Sao Vicente","Sao Vicente,State of Sao Paulo,Brazil","20106","BR","City",Active
994
- "1001776","Sorocaba","Sorocaba,State of Sao Paulo,Brazil","20106","BR","City",Active
995
- "1001777","Suzano","Suzano,State of Sao Paulo,Brazil","20106","BR","City",Active
996
- "1001778","Taubate","Taubate,State of Sao Paulo,Brazil","20106","BR","City",Active
997
- "1001779","Tupa","Tupa,State of Sao Paulo,Brazil","20106","BR","City",Active
998
- "1001780","Araguaina","Araguaina,State of Tocantins,Brazil","21230","BR","City",Active
999
- "1001784","Saint James","Saint James,Barbados","2052","BB","City",Active
1000
- "1001785","Saint Michael","Saint Michael,Barbados","2052","BB","City",Active
1001
- "1001786","Bandar Seri Begawan","Bandar Seri Begawan,Brunei-Muara District,Brunei","9070436","BN","City",Active
1002
- "1001792","Acme","Acme,Alberta,Canada","20113","CA","City",Active
1003
- "1001793","Airdrie","Airdrie,Alberta,Canada","20113","CA","City",Active
1004
- "1001794","Athabasca","Athabasca,Alberta,Canada","20113","CA","City",Active
1005
- "1001795","Banff","Banff,Alberta,Canada","20113","CA","City",Active
1006
- "1001796","Barrhead","Barrhead,Alberta,Canada","20113","CA","City",Active
1007
- "1001797","Bonnyville","Bonnyville,Alberta,Canada","20113","CA","City",Active
1008
- "1001798","Bow Island","Bow Island,Alberta,Canada","20113","CA","City",Active
1009
- "1001799","Breton","Breton,Alberta,Canada","20113","CA","City",Active
1010
- "1001800","Brooks","Brooks,Alberta,Canada","20113","CA","City",Active
1011
- "1001801","Calgary","Calgary,Alberta,Canada","20113","CA","City",Active
1012
- "1001802","Camrose","Camrose,Alberta,Canada","20113","CA","City",Active
1013
- "1001803","Canmore","Canmore,Alberta,Canada","20113","CA","City",Active
1014
- "1001804","Cold Lake","Cold Lake,Alberta,Canada","20113","CA","City",Active
1015
- "1001805","Didsbury","Didsbury,Alberta,Canada","20113","CA","City",Active
1016
- "1001806","Drayton Valley","Drayton Valley,Alberta,Canada","20113","CA","City",Active
1017
- "1001807","Drumheller","Drumheller,Alberta,Canada","20113","CA","City",Active
1018
- "1001808","Edmonton","Edmonton,Alberta,Canada","20113","CA","City",Active
1019
- "1001809","Edson","Edson,Alberta,Canada","20113","CA","City",Active
1020
- "1001810","Fairview","Fairview,Alberta,Canada","20113","CA","City",Active
1021
- "1001811","Fort MacLeod","Fort MacLeod,Alberta,Canada","20113","CA","City",Active
1022
- "1001812","Fort McMurray","Fort McMurray,Alberta,Canada","20113","CA","City",Active
1023
- "1001813","Fort Saskatchewan","Fort Saskatchewan,Alberta,Canada","20113","CA","City",Active
1024
- "1001814","Cold Lake South","Cold Lake South,Alberta,Canada","20113","CA","Neighborhood",Active
1025
- "1001815","Grande Cache","Grande Cache,Alberta,Canada","20113","CA","City",Active
1026
- "1001816","Grande Prairie","Grande Prairie,Alberta,Canada","20113","CA","City",Active
1027
- "1001817","High Level","High Level,Alberta,Canada","20113","CA","City",Active
1028
- "1001818","High Prairie","High Prairie,Alberta,Canada","20113","CA","City",Active
1029
- "1001819","High River","High River,Alberta,Canada","20113","CA","City",Active
1030
- "1001820","Hinton","Hinton,Alberta,Canada","20113","CA","City",Active
1031
- "1001821","Jasper","Jasper,Alberta,Canada","20113","CA","City",Active
1032
- "1001822","Lac la Biche","Lac la Biche,Alberta,Canada","20113","CA","City",Active
1033
- "1001823","Lacombe","Lacombe,Alberta,Canada","20113","CA","City",Active
1034
- "1001824","Langdon","Langdon,Alberta,Canada","20113","CA","City",Active
1035
- "1001825","Leduc","Leduc,Alberta,Canada","20113","CA","City",Active
1036
- "1001826","Lethbridge","Lethbridge,Alberta,Canada","20113","CA","City",Active
1037
- "1001827","Lloydminster","Lloydminster,Alberta,Canada","20113","CA","City",Active
1038
- "1001828","Medicine Hat","Medicine Hat,Alberta,Canada","20113","CA","City",Active
1039
- "1001829","Morinville","Morinville,Alberta,Canada","20113","CA","City",Active
1040
- "1001830","Munson","Munson,Alberta,Canada","20113","CA","City",Active
1041
- "1001831","Nisku","Nisku,Alberta,Canada","20113","CA","City",Active
1042
- "1001832","Okotoks","Okotoks,Alberta,Canada","20113","CA","City",Active
1043
- "1001833","Olds","Olds,Alberta,Canada","20113","CA","City",Active
1044
- "1001834","Peace River","Peace River,Alberta,Canada","20113","CA","City",Active
1045
- "1001835","Ponoka","Ponoka,Alberta,Canada","20113","CA","City",Active
1046
- "1001836","Provost","Provost,Alberta,Canada","20113","CA","City",Active
1047
- "1001837","Red Deer","Red Deer,Alberta,Canada","20113","CA","City",Active
1048
- "1001838","Redcliff","Redcliff,Alberta,Canada","20113","CA","City",Active
1049
- "1001839","Redwood Meadows","Redwood Meadows,Alberta,Canada","20113","CA","City",Active
1050
- "1001840","Rocky Mountain House","Rocky Mountain House,Alberta,Canada","20113","CA","City",Active
1051
- "1001841","Sherwood Park","Sherwood Park,Alberta,Canada","20113","CA","City",Active
1052
- "1001842","Slave Lake","Slave Lake,Alberta,Canada","20113","CA","City",Active
1053
- "1001843","Spruce Grove","Spruce Grove,Alberta,Canada","20113","CA","City",Active
1054
- "1001844","St. Albert","St. Albert,Alberta,Canada","20113","CA","City",Active
1055
- "1001845","Saint Paul","Saint Paul,Alberta,Canada","20113","CA","City",Active
1056
- "1001846","Stettler","Stettler,Alberta,Canada","20113","CA","City",Active
1057
- "1001847","Stony Plain","Stony Plain,Alberta,Canada","20113","CA","City",Active
1058
- "1001848","Swan Hills","Swan Hills,Alberta,Canada","20113","CA","City",Active
1059
- "1001849","Taber","Taber,Alberta,Canada","20113","CA","City",Active
1060
- "1001850","Tees","Tees,Alberta,Canada","20113","CA","City",Active
1061
- "1001851","Three Hills","Three Hills,Alberta,Canada","20113","CA","City",Active
1062
- "1001852","Valleyview","Valleyview,Alberta,Canada","20113","CA","City",Active
1063
- "1001853","Vegreville","Vegreville,Alberta,Canada","20113","CA","City",Active
1064
- "1001854","Vermilion River County No. 24","Vermilion River County No. 24,Alberta,Canada","20113","CA","Municipality",Active
1065
- "1001855","Wainwright","Wainwright,Alberta,Canada","20113","CA","City",Active
1066
- "1001856","Westlock","Westlock,Alberta,Canada","20113","CA","City",Active
1067
- "1001857","Wetaskiwin","Wetaskiwin,Alberta,Canada","20113","CA","City",Active
1068
- "1001858","Whitecourt","Whitecourt,Alberta,Canada","20113","CA","City",Active
1069
- "1001860","100 Mile House","100 Mile House,British Columbia,Canada","20114","CA","City",Active
1070
- "1001861","Abbotsford","Abbotsford,British Columbia,Canada","20114","CA","City",Active
1071
- "1001862","Aldergrove","Aldergrove,British Columbia,Canada","20114","CA","Neighborhood",Active
1072
- "1001863","Alert Bay","Alert Bay,British Columbia,Canada","20114","CA","City",Active
1073
- "1001864","Alexandria","Alexandria,British Columbia,Canada","20114","CA","City",Active
1074
- "1001865","Armstrong","Armstrong,British Columbia,Canada","20114","CA","City",Active
1075
- "1001866","Ashcroft","Ashcroft,British Columbia,Canada","20114","CA","City",Active
1076
- "1001867","Bamfield","Bamfield,British Columbia,Canada","20114","CA","City",Active
1077
- "1001868","Barriere","Barriere,British Columbia,Canada","20114","CA","City",Active
1078
- "1001869","Bella Bella","Bella Bella,British Columbia,Canada","20114","CA","City",Active
1079
- "1001870","Blue River","Blue River,British Columbia,Canada","20114","CA","City",Active
1080
- "1001871","Brackendale","Brackendale,British Columbia,Canada","20114","CA","Neighborhood",Active
1081
- "1001872","Brentwood Bay","Brentwood Bay,British Columbia,Canada","20114","CA","Neighborhood",Active
1082
- "1001873","Burnaby","Burnaby,British Columbia,Canada","20114","CA","City",Active
1083
- "1001874","Burns Lake","Burns Lake,British Columbia,Canada","20114","CA","City",Active
1084
- "1001875","Campbell River","Campbell River,British Columbia,Canada","20114","CA","City",Active
1085
- "1001876","Canyon","Canyon,British Columbia,Canada","20114","CA","City",Active
1086
- "1001877","Castlegar","Castlegar,British Columbia,Canada","20114","CA","City",Active
1087
- "1001878","Chase","Chase,British Columbia,Canada","20114","CA","City",Active
1088
- "1001879","Chilliwack","Chilliwack,British Columbia,Canada","20114","CA","City",Active
1089
- "1001880","Clearbrook","Clearbrook,British Columbia,Canada","20114","CA","Neighborhood",Active
1090
- "1001881","Clearwater","Clearwater,British Columbia,Canada","20114","CA","City",Active
1091
- "1001882","Clinton","Clinton,British Columbia,Canada","20114","CA","City",Active
1092
- "1001883","Cloverdale","Cloverdale,British Columbia,Canada","20114","CA","Neighborhood",Active
1093
- "1001884","Comox","Comox,British Columbia,Canada","20114","CA","City",Active
1094
- "1001885","Coquitlam","Coquitlam,British Columbia,Canada","20114","CA","City",Active
1095
- "1001886","Cordova Bay","Cordova Bay,British Columbia,Canada","20114","CA","Neighborhood",Active
1096
- "1001887","Courtenay","Courtenay,British Columbia,Canada","20114","CA","City",Active
1097
- "1001888","Cranbrook","Cranbrook,British Columbia,Canada","20114","CA","City",Active
1098
- "1001889","Creston","Creston,British Columbia,Canada","20114","CA","City",Active
1099
- "1001890","Cumberland","Cumberland,British Columbia,Canada","20114","CA","City",Active
1100
- "1001891","Dawson Creek","Dawson Creek,British Columbia,Canada","20114","CA","City",Active
1101
- "1001892","Delta","Delta,British Columbia,Canada","20114","CA","Municipality",Active
1102
- "1001893","Duncan","Duncan,British Columbia,Canada","20114","CA","City",Active
1103
- "1001894","Fernie","Fernie,British Columbia,Canada","20114","CA","City",Active
1104
- "1001895","Fort St. James","Fort St. James,British Columbia,Canada","20114","CA","City",Active
1105
- "1001896","Fort St. John","Fort St. John,British Columbia,Canada","20114","CA","City",Active
1106
- "1001897","Ganges","Ganges,British Columbia,Canada","20114","CA","City",Active
1107
- "1001898","Gibsons","Gibsons,British Columbia,Canada","20114","CA","City",Active
1108
- "1001899","Gold River","Gold River,British Columbia,Canada","20114","CA","City",Active
1109
- "1001900","Golden","Golden,British Columbia,Canada","20114","CA","City",Active
1110
- "1001901","Grand Forks","Grand Forks,British Columbia,Canada","20114","CA","City",Active
1111
- "1001902","Haney","Haney,British Columbia,Canada","20114","CA","Neighborhood",Active
1112
- "1001903","Hope","Hope,British Columbia,Canada","20114","CA","City",Active
1113
- "1001904","Houston","Houston,British Columbia,Canada","20114","CA","City",Active
1114
- "1001905","Huntingdon","Huntingdon,British Columbia,Canada","20114","CA","Neighborhood",Active
1115
- "1001906","Invermere","Invermere,British Columbia,Canada","20114","CA","City",Active
1116
- "1001907","Kamloops","Kamloops,British Columbia,Canada","20114","CA","City",Active
1117
- "1001908","Kaslo","Kaslo,British Columbia,Canada","20114","CA","City",Active
1118
- "1001909","Kelowna","Kelowna,British Columbia,Canada","20114","CA","City",Active
1119
- "1001910","Kimberley","Kimberley,British Columbia,Canada","20114","CA","City",Active
1120
- "1001911","Kitimat","Kitimat,British Columbia,Canada","20114","CA","City",Active
1121
- "1001912","Ladner","Ladner,British Columbia,Canada","20114","CA","Neighborhood",Active
1122
- "1001913","Ladysmith","Ladysmith,British Columbia,Canada","20114","CA","City",Active
1123
- "1001914","Lake Cowichan","Lake Cowichan,British Columbia,Canada","20114","CA","City",Active
1124
- "1001915","Langley City","Langley City,British Columbia,Canada","20114","CA","City",Active
1125
- "1001916","Lantzville","Lantzville,British Columbia,Canada","20114","CA","Neighborhood",Active
1126
- "1001917","Lillooet","Lillooet,British Columbia,Canada","20114","CA","City",Active
1127
- "1001918","Lumby","Lumby,British Columbia,Canada","20114","CA","City",Active
1128
- "1001919","Mackenzie","Mackenzie,British Columbia,Canada","20114","CA","City",Active
1129
- "1001920","Maple Ridge","Maple Ridge,British Columbia,Canada","20114","CA","Municipality",Active
1130
- "1001921","Marysville","Marysville,British Columbia,Canada","20114","CA","Neighborhood",Active
1131
- "1001922","Masset","Masset,British Columbia,Canada","20114","CA","City",Active
1132
- "1001923","McBride","McBride,British Columbia,Canada","20114","CA","City",Active
1133
- "1001924","Merritt","Merritt,British Columbia,Canada","20114","CA","City",Active
1134
- "1001925","Mill Bay","Mill Bay,British Columbia,Canada","20114","CA","City",Active
1135
- "1001926","Mission","Mission,British Columbia,Canada","20114","CA","City",Active
1136
- "1001927","Nanaimo","Nanaimo,British Columbia,Canada","20114","CA","City",Active
1137
- "1001928","Nelson","Nelson,British Columbia,Canada","20114","CA","City",Active
1138
- "1001929","New Westminster","New Westminster,British Columbia,Canada","20114","CA","City",Active
1139
- "1001930","North Saanich","North Saanich,British Columbia,Canada","20114","CA","Neighborhood",Active
1140
- "1001931","North Vancouver","North Vancouver,British Columbia,Canada","20114","CA","City",Active
1141
- "1001932","Oliver","Oliver,British Columbia,Canada","20114","CA","City",Active
1142
- "1001933","Osoyoos","Osoyoos,British Columbia,Canada","20114","CA","City",Active
1143
- "1001934","Parksville","Parksville,British Columbia,Canada","20114","CA","City",Active
1144
- "1001935","Penticton","Penticton,British Columbia,Canada","20114","CA","City",Active
1145
- "1001936","Pitt Meadows","Pitt Meadows,British Columbia,Canada","20114","CA","Municipality",Active
1146
- "1001937","Port Alberni","Port Alberni,British Columbia,Canada","20114","CA","City",Active
1147
- "1001938","Port Coquitlam","Port Coquitlam,British Columbia,Canada","20114","CA","City",Active
1148
- "1001939","Port Hardy","Port Hardy,British Columbia,Canada","20114","CA","City",Active
1149
- "1001940","Port Mellon","Port Mellon,British Columbia,Canada","20114","CA","City",Active
1150
- "1001941","Port Moody","Port Moody,British Columbia,Canada","20114","CA","City",Active
1151
- "1001942","Powell River","Powell River,British Columbia,Canada","20114","CA","City",Active
1152
- "1001943","Prince George","Prince George,British Columbia,Canada","20114","CA","City",Active
1153
- "1001944","Prince Rupert","Prince Rupert,British Columbia,Canada","20114","CA","City",Active
1154
- "1001945","Princeton","Princeton,British Columbia,Canada","20114","CA","City",Active
1155
- "1001946","Queen Charlotte","Queen Charlotte,British Columbia,Canada","20114","CA","City",Active
1156
- "1001947","Quesnel","Quesnel,British Columbia,Canada","20114","CA","City",Active
1157
- "1001948","Revelstoke","Revelstoke,British Columbia,Canada","20114","CA","City",Active
1158
- "1001949","Richmond","Richmond,British Columbia,Canada","20114","CA","City",Active
1159
- "1001950","Roberts Creek","Roberts Creek,British Columbia,Canada","20114","CA","City",Active
1160
- "1001951","Rosedale","Rosedale,British Columbia,Canada","20114","CA","Neighborhood",Active
1161
- "1001952","Salmon Arm","Salmon Arm,British Columbia,Canada","20114","CA","City",Active
1162
- "1001953","Salt Spring Island","Salt Spring Island,British Columbia,Canada","20114","CA","Municipality",Active
1163
- "1001954","Sardis","Sardis,British Columbia,Canada","20114","CA","Neighborhood",Active
1164
- "1001955","Shawnigan Lake","Shawnigan Lake,British Columbia,Canada","20114","CA","City",Active
1165
- "1001956","Sicamous","Sicamous,British Columbia,Canada","20114","CA","City",Active
1166
- "1001957","Sidney","Sidney,British Columbia,Canada","20114","CA","City",Active
1167
- "1001958","Smithers","Smithers,British Columbia,Canada","20114","CA","City",Active
1168
- "1001959","South Slocan","South Slocan,British Columbia,Canada","20114","CA","City",Active
1169
- "1001960","Sparwood","Sparwood,British Columbia,Canada","20114","CA","City",Active
1170
- "1001961","Squamish","Squamish,British Columbia,Canada","20114","CA","City",Active
1171
- "1001962","Steveston","Steveston,British Columbia,Canada","20114","CA","Neighborhood",Active
1172
- "1001963","Summerland","Summerland,British Columbia,Canada","20114","CA","City",Active
1173
- "1001964","Surrey","Surrey,British Columbia,Canada","20114","CA","City",Active
1174
- "1001965","Terrace","Terrace,British Columbia,Canada","20114","CA","City",Active
1175
- "1001966","Trail","Trail,British Columbia,Canada","20114","CA","City",Active
1176
- "1001967","Tsawwassen","Tsawwassen,British Columbia,Canada","20114","CA","Neighborhood",Active
1177
- "1001968","Ucluelet","Ucluelet,British Columbia,Canada","20114","CA","City",Active
1178
- "1001969","Valemount","Valemount,British Columbia,Canada","20114","CA","City",Active
1179
- "1001970","Vancouver","Vancouver,British Columbia,Canada","20114","CA","City",Active
1180
- "1001971","Vanderhoof","Vanderhoof,British Columbia,Canada","20114","CA","City",Active
1181
- "1001972","Vernon","Vernon,British Columbia,Canada","20114","CA","City",Active
1182
- "1001973","Victoria","Victoria,British Columbia,Canada","20114","CA","City",Active
1183
- "1001974","Wellington","Wellington,British Columbia,Canada","20114","CA","Neighborhood",Active
1184
- "1001975","West Vancouver","West Vancouver,British Columbia,Canada","20114","CA","City",Active
1185
- "1001976","Whistler","Whistler,British Columbia,Canada","20114","CA","City",Active
1186
- "1001977","White Rock","White Rock,British Columbia,Canada","20114","CA","City",Active
1187
- "1001978","Williams Lake","Williams Lake,British Columbia,Canada","20114","CA","City",Active
1188
- "1001979","Altona","Altona,Manitoba,Canada","20115","CA","City",Active
1189
- "1001980","Arborg","Arborg,Manitoba,Canada","20115","CA","City",Active
1190
- "1001981","Ashern","Ashern,Manitoba,Canada","20115","CA","City",Active
1191
- "1001982","Austin","Austin,Manitoba,Canada","20115","CA","City",Active
1192
- "1001983","Beausejour","Beausejour,Manitoba,Canada","20115","CA","City",Active
1193
- "1001984","Boissevain","Boissevain,Manitoba,Canada","20115","CA","City",Active
1194
- "1001985","Brandon","Brandon,Manitoba,Canada","20115","CA","City",Active
1195
- "1001986","Carberry","Carberry,Manitoba,Canada","20115","CA","City",Active
1196
- "1001987","Carman","Carman,Manitoba,Canada","20115","CA","City",Active
1197
- "1001988","Cartier","Cartier,Manitoba,Canada","20115","CA","City",Active
1198
- "1001989","Cranberry Portage","Cranberry Portage,Manitoba,Canada","20115","CA","City",Active
1199
- "1001990","Dauphin","Dauphin,Manitoba,Canada","20115","CA","City",Active
1200
- "1001991","Deloraine","Deloraine,Manitoba,Canada","20115","CA","City",Active
1201
- "1001992","Dugald","Dugald,Manitoba,Canada","20115","CA","Neighborhood",Active
1202
- "1001993","Elie","Elie,Manitoba,Canada","20115","CA","City",Active
1203
- "1001994","Elphinstone","Elphinstone,Manitoba,Canada","20115","CA","City",Active
1204
- "1001995","Eriksdale","Eriksdale,Manitoba,Canada","20115","CA","City",Active
1205
- "1001996","Fisher Branch","Fisher Branch,Manitoba,Canada","20115","CA","City",Active
1206
- "1001997","Flin Flon","Flin Flon,Manitoba,Canada","20115","CA","City",Active
1207
- "1001998","Gimli","Gimli,Manitoba,Canada","20115","CA","City",Active
1208
- "1001999","Glenboro","Glenboro,Manitoba,Canada","20115","CA","City",Active
1209
- "1002000","Grosse Isle","Grosse Isle,Manitoba,Canada","20115","CA","City",Active
1210
- "1002001","Gypsumville","Gypsumville,Manitoba,Canada","20115","CA","City",Active
1211
- "1002002","Killarney","Killarney,Manitoba,Canada","20115","CA","City",Active
1212
- "1002003","Lac du Bonnet","Lac du Bonnet,Manitoba,Canada","20115","CA","City",Active
1213
- "1002004","Lorette","Lorette,Manitoba,Canada","20115","CA","City",Active
1214
- "1002005","Lundar","Lundar,Manitoba,Canada","20115","CA","City",Active
1215
- "1002006","MacGregor","MacGregor,Manitoba,Canada","20115","CA","City",Active
1216
- "1002007","Manitou","Manitou,Manitoba,Canada","20115","CA","City",Active
1217
- "1002008","McCreary","McCreary,Manitoba,Canada","20115","CA","City",Active
1218
- "1002009","Miami","Miami,Manitoba,Canada","20115","CA","City",Active
1219
- "1002010","Minnedosa","Minnedosa,Manitoba,Canada","20115","CA","City",Active
1220
- "1002011","Moosehorn","Moosehorn,Manitoba,Canada","20115","CA","City",Active
1221
- "1002012","Morden","Morden,Manitoba,Canada","20115","CA","City",Active
1222
- "1002013","Morris","Morris,Manitoba,Canada","20115","CA","City",Active
1223
- "1002014","Neepawa","Neepawa,Manitoba,Canada","20115","CA","City",Active
1224
- "1002015","Nelson House","Nelson House,Manitoba,Canada","20115","CA","City",Active
1225
- "1002016","Newton","Newton,Manitoba,Canada","20115","CA","City",Active
1226
- "1002017","Niverville","Niverville,Manitoba,Canada","20115","CA","City",Active
1227
- "1002018","Oak Bluff","Oak Bluff,Manitoba,Canada","20115","CA","City",Active
1228
- "1002019","Onanole","Onanole,Manitoba,Canada","20115","CA","City",Active
1229
- "1002020","Otterburne","Otterburne,Manitoba,Canada","20115","CA","City",Active
1230
- "1002021","Pinawa","Pinawa,Manitoba,Canada","20115","CA","City",Active
1231
- "1002022","Pine Falls","Pine Falls,Manitoba,Canada","20115","CA","Neighborhood",Active
1232
- "1002023","Portage la Prairie","Portage la Prairie,Manitoba,Canada","20115","CA","City",Active
1233
- "1002024","Rivers","Rivers,Manitoba,Canada","20115","CA","City",Active
1234
- "1002025","Russell","Russell,Manitoba,Canada","20115","CA","City",Active
1235
- "1002026","Selkirk","Selkirk,Manitoba,Canada","20115","CA","City",Active
1236
- "1002027","Shoal Lake","Shoal Lake,Manitoba,Canada","20115","CA","City",Active
1237
- "1002028","Snow Lake","Snow Lake,Manitoba,Canada","20115","CA","City",Active
1238
- "1002029","Souris","Souris,Manitoba,Canada","20115","CA","City",Active
1239
- "1002030","St-Lazare","St-Lazare,Manitoba,Canada","20115","CA","City",Active
1240
- "1002031","Ste. Agathe","Ste. Agathe,Manitoba,Canada","20115","CA","City",Active
1241
- "1002032","Ste. Anne","Ste. Anne,Manitoba,Canada","20115","CA","City",Active
1242
- "1002033","Steinbach","Steinbach,Manitoba,Canada","20115","CA","City",Active
1243
- "1002034","Stonewall","Stonewall,Manitoba,Canada","20115","CA","City",Active
1244
- "1002035","Stony Mountain","Stony Mountain,Manitoba,Canada","20115","CA","City",Active
1245
- "1002036","Swan Lake","Swan Lake,Manitoba,Canada","20115","CA","City",Active
1246
- "1002037","Swan River","Swan River,Manitoba,Canada","20115","CA","City",Active
1247
- "1002038","Teulon","Teulon,Manitoba,Canada","20115","CA","City",Active
1248
- "1002039","The Pas","The Pas,Manitoba,Canada","20115","CA","City",Active
1249
- "1002040","Thompson","Thompson,Manitoba,Canada","20115","CA","City",Active
1250
- "1002041","Treherne","Treherne,Manitoba,Canada","20115","CA","City",Active
1251
- "1002042","Virden","Virden,Manitoba,Canada","20115","CA","City",Active
1252
- "1002043","Wawanesa","Wawanesa,Manitoba,Canada","20115","CA","City",Active
1253
- "1002044","Winkler","Winkler,Manitoba,Canada","20115","CA","City",Active
1254
- "1002045","Winnipeg","Winnipeg,Manitoba,Canada","20115","CA","City",Active
1255
- "1002046","Atholville","Atholville,New Brunswick,Canada","20116","CA","City",Active
1256
- "1002047","Bathurst","Bathurst,New Brunswick,Canada","20116","CA","City",Active
1257
- "1002048","Beresford","Beresford,New Brunswick,Canada","20116","CA","City",Active
1258
- "1002049","Bloomfield Ridge","Bloomfield Ridge,New Brunswick,Canada","20116","CA","City",Active
1259
- "1002050","Bouctouche","Bouctouche,New Brunswick,Canada","20116","CA","City",Active
1260
- "1002051","Clair","Clair,New Brunswick,Canada","20116","CA","City",Active
1261
- "1002052","West Isles","West Isles,New Brunswick,Canada","20116","CA","Municipality",Active
1262
- "1002053","Dieppe","Dieppe,New Brunswick,Canada","20116","CA","City",Active
1263
- "1002054","Doaktown","Doaktown,New Brunswick,Canada","20116","CA","City",Active
1264
- "1002055","Edmundston","Edmundston,New Brunswick,Canada","20116","CA","City",Active
1265
- "1002056","Florenceville","Florenceville,New Brunswick,Canada","20116","CA","Neighborhood",Active
1266
- "1002057","Fredericton","Fredericton,New Brunswick,Canada","20116","CA","City",Active
1267
- "1002058","Juniper","Juniper,New Brunswick,Canada","20116","CA","City",Active
1268
- "1002059","Memramcook","Memramcook,New Brunswick,Canada","20116","CA","City",Active
1269
- "1002060","Miramichi","Miramichi,New Brunswick,Canada","20116","CA","City",Active
1270
- "1002061","Moncton","Moncton,New Brunswick,Canada","20116","CA","City",Active
1271
- "1002062","Mount Pisgah","Mount Pisgah,New Brunswick,Canada","20116","CA","City",Active
1272
- "1002063","Newcastle","Newcastle,New Brunswick,Canada","20116","CA","Neighborhood",Active
1273
- "1002064","Nigadoo","Nigadoo,New Brunswick,Canada","20116","CA","City",Active
1274
- "1002065","Oromocto","Oromocto,New Brunswick,Canada","20116","CA","City",Active
1275
- "1002066","Paquetville","Paquetville,New Brunswick,Canada","20116","CA","City",Active
1276
- "1002067","Quispamsis","Quispamsis,New Brunswick,Canada","20116","CA","City",Active
1277
- "1002068","Rexton","Rexton,New Brunswick,Canada","20116","CA","City",Active
1278
- "1002069","Richibucto","Richibucto,New Brunswick,Canada","20116","CA","City",Active
1279
- "1002070","Richibucto Road","Richibucto Road,New Brunswick,Canada","20116","CA","City",Active
1280
- "1002071","Rothesay","Rothesay,New Brunswick,Canada","20116","CA","City",Active
1281
- "1002072","Sackville","Sackville,New Brunswick,Canada","20116","CA","City",Active
1282
- "1002073","Shediac","Shediac,New Brunswick,Canada","20116","CA","City",Active
1283
- "1002074","Shippagan","Shippagan,New Brunswick,Canada","20116","CA","City",Active
1284
- "1002075","Saint-Basile","Saint-Basile,New Brunswick,Canada","20116","CA","Municipality",Active
1285
- "1002076","Saint George","Saint George,New Brunswick,Canada","20116","CA","City",Active
1286
- "1002077","Saint John","Saint John,New Brunswick,Canada","20116","CA","City",Active
1287
- "1002078","Saint-Louis de Kent","Saint-Louis de Kent,New Brunswick,Canada","20116","CA","City",Active
1288
- "1002079","Saint Stephen","Saint Stephen,New Brunswick,Canada","20116","CA","City",Active
1289
- "1002080","Saint-Paul","Saint-Paul,New Brunswick,Canada","20116","CA","City",Active
1290
- "1002081","Saint-Quentin","Saint-Quentin,New Brunswick,Canada","20116","CA","City",Active
1291
- "1002082","Sussex","Sussex,New Brunswick,Canada","20116","CA","City",Active
1292
- "1002083","Tracadie-Sheila","Tracadie-Sheila,New Brunswick,Canada","20116","CA","City",Active
1293
- "1002084","Welshpool","Welshpool,New Brunswick,Canada","20116","CA","City",Active
1294
- "1002085","Woodstock","Woodstock,New Brunswick,Canada","20116","CA","City",Active
1295
- "1002086","Baie Verte","Baie Verte,Newfoundland and Labrador,Canada","20117","CA","City",Active
1296
- "1002087","Beaumont","Beaumont,Newfoundland and Labrador,Canada","20117","CA","City",Active
1297
- "1002088","Catalina","Catalina,Newfoundland and Labrador,Canada","20117","CA","City",Active
1298
- "1002089","Clarenville","Clarenville,Newfoundland and Labrador,Canada","20117","CA","City",Active
1299
- "1002090","Corner Brook","Corner Brook,Newfoundland and Labrador,Canada","20117","CA","City",Active
1300
- "1002091","Francois","Francois,Newfoundland and Labrador,Canada","20117","CA","City",Active
1301
- "1002092","Gander","Gander,Newfoundland and Labrador,Canada","20117","CA","City",Active
1302
- "1002093","Happy Valley-Goose Bay","Happy Valley-Goose Bay,Newfoundland and Labrador,Canada","20117","CA","City",Active
1303
- "1002094","Grand Falls","Grand Falls,Newfoundland and Labrador,Canada","20117","CA","Neighborhood",Active
1304
- "1002095","Labrador City","Labrador City,Newfoundland and Labrador,Canada","20117","CA","City",Active
1305
- "1002096","Mount Pearl","Mount Pearl,Newfoundland and Labrador,Canada","20117","CA","City",Active
1306
- "1002097","Postville","Postville,Newfoundland and Labrador,Canada","20117","CA","City",Active
1307
- "1002098","Shoal Harbour","Shoal Harbour,Newfoundland and Labrador,Canada","20117","CA","Neighborhood",Active
1308
- "1002099","St. John's","St. John's,Newfoundland and Labrador,Canada","20117","CA","City",Active
1309
- "1002100","Stephenville","Stephenville,Newfoundland and Labrador,Canada","20117","CA","City",Active
1310
- "1002102","Valleyfield","Valleyfield,Newfoundland and Labrador,Canada","20117","CA","Neighborhood",Active
1311
- "1002103","Wabush","Wabush,Newfoundland and Labrador,Canada","20117","CA","City",Active
1312
- "1002104","Windsor","Windsor,Newfoundland and Labrador,Canada","20117","CA","Neighborhood",Active
1313
- "1002105","Amherst","Amherst,Nova Scotia,Canada","20118","CA","City",Active
1314
- "1002106","Antigonish","Antigonish,Nova Scotia,Canada","20118","CA","City",Active
1315
- "1002107","Barrington","Barrington,Nova Scotia,Canada","20118","CA","City",Active
1316
- "1002108","Bedford","Bedford,Nova Scotia,Canada","20118","CA","City",Active
1317
- "1002109","Bridgewater","Bridgewater,Nova Scotia,Canada","20118","CA","City",Active
1318
- "1002110","Dartmouth","Dartmouth,Nova Scotia,Canada","20118","CA","City",Active
1319
- "1002111","Digby","Digby,Nova Scotia,Canada","20118","CA","City",Active
1320
- "1002112","Enfield","Enfield,Nova Scotia,Canada","20118","CA","City",Active
1321
- "1002113","Halifax","Halifax,Nova Scotia,Canada","20118","CA","Municipality",Active
1322
- "1002114","Hubbards","Hubbards,Nova Scotia,Canada","20118","CA","City",Active
1323
- "1002115","Kentville","Kentville,Nova Scotia,Canada","20118","CA","City",Active
1324
- "1002116","Lawrencetown","Lawrencetown,Nova Scotia,Canada","20118","CA","City",Active
1325
- "1002117","Mahone Bay","Mahone Bay,Nova Scotia,Canada","20118","CA","City",Active
1326
- "1002118","New Glasgow","New Glasgow,Nova Scotia,Canada","20118","CA","City",Active
1327
- "1002119","New Minas","New Minas,Nova Scotia,Canada","20118","CA","City",Active
1328
- "1002120","North Sydney","North Sydney,Nova Scotia,Canada","20118","CA","City",Active
1329
- "1002121","Port Hawkesbury","Port Hawkesbury,Nova Scotia,Canada","20118","CA","City",Active
1330
- "1002122","Sheet Harbour","Sheet Harbour,Nova Scotia,Canada","20118","CA","City",Active
1331
- "1002123","Stellarton","Stellarton,Nova Scotia,Canada","20118","CA","City",Active
1332
- "1002124","Sydney","Sydney,Nova Scotia,Canada","20118","CA","City",Active
1333
- "1002125","Terence Bay","Terence Bay,Nova Scotia,Canada","20118","CA","City",Active
1334
- "1002126","Troy","Troy,Nova Scotia,Canada","20118","CA","City",Active
1335
- "1002127","Truro","Truro,Nova Scotia,Canada","20118","CA","City",Active
1336
- "1002128","West Bay","West Bay,Nova Scotia,Canada","20118","CA","City",Active
1337
- "1002129","Weymouth","Weymouth,Nova Scotia,Canada","20118","CA","City",Active
1338
- "1002130","Windsor","Windsor,Nova Scotia,Canada","20118","CA","City",Active
1339
- "1002131","Wolfville","Wolfville,Nova Scotia,Canada","20118","CA","City",Active
1340
- "1002132","Yarmouth","Yarmouth,Nova Scotia,Canada","20118","CA","City",Active
1341
- "1002133","Fort Providence","Fort Providence,Northwest Territories,Canada","20119","CA","City",Active
1342
- "1002134","Fort Simpson","Fort Simpson,Northwest Territories,Canada","20119","CA","City",Active
1343
- "1002135","Inuvik","Inuvik,Northwest Territories,Canada","20119","CA","City",Active
1344
- "1002136","Lutselk'e","Lutselk'e,Northwest Territories,Canada","20119","CA","City",Active
1345
- "1002137","Norman Wells","Norman Wells,Northwest Territories,Canada","20119","CA","City",Active
1346
- "1002138","Rae","Rae,Northwest Territories,Canada","20119","CA","City",Active
1347
- "1002139","Wekweeti","Wekweeti,Northwest Territories,Canada","20119","CA","City",Active
1348
- "1002140","Trout Lake","Trout Lake,Northwest Territories,Canada","20119","CA","City",Active
1349
- "1002141","Wrigley","Wrigley,Northwest Territories,Canada","20119","CA","City",Active
1350
- "1002142","Yellowknife","Yellowknife,Northwest Territories,Canada","20119","CA","City",Active
1351
- "1002143","Arviat","Arviat,Nunavut,Canada","20120","CA","City",Active
1352
- "1002144","Baker Lake","Baker Lake,Nunavut,Canada","20120","CA","City",Active
1353
- "1002145","Cambridge Bay","Cambridge Bay,Nunavut,Canada","20120","CA","City",Active
1354
- "1002146","Cape Dorset","Cape Dorset,Nunavut,Canada","20120","CA","City",Active
1355
- "1002147","Clyde River","Clyde River,Nunavut,Canada","20120","CA","City",Active
1356
- "1002148","Gjoa Haven","Gjoa Haven,Nunavut,Canada","20120","CA","City",Active
1357
- "1002149","Igloolik","Igloolik,Nunavut,Canada","20120","CA","City",Active
1358
- "1002150","Iqaluit","Iqaluit,Nunavut,Canada","20120","CA","City",Active
1359
- "1002151","Pangnirtung","Pangnirtung,Nunavut,Canada","20120","CA","City",Active
1360
- "1002152","Pond Inlet","Pond Inlet,Nunavut,Canada","20120","CA","City",Active
1361
- "1002153","Rankin Inlet","Rankin Inlet,Nunavut,Canada","20120","CA","City",Active
1362
- "1002154","Acton","Acton,Ontario,Canada","20121","CA","City",Active
1363
- "1002155","Agincourt","Agincourt,Ontario,Canada","20121","CA","Neighborhood",Active
1364
- "1002156","Ajax","Ajax,Ontario,Canada","20121","CA","City",Active
1365
- "1002157","Alexandria","Alexandria,Ontario,Canada","20121","CA","City",Active
1366
- "1002158","Alliston","Alliston,Ontario,Canada","20121","CA","Neighborhood",Active
1367
- "1002159","Almonte","Almonte,Ontario,Canada","20121","CA","Neighborhood",Active
1368
- "1002160","Amherstburg","Amherstburg,Ontario,Canada","20121","CA","City",Active
1369
- "1002161","Ancaster","Ancaster,Ontario,Canada","20121","CA","Neighborhood",Active
1370
- "1002162","Angling Lake","Angling Lake,Ontario,Canada","20121","CA","City",Active
1371
- "1002163","Angus","Angus,Ontario,Canada","20121","CA","City",Active
1372
- "1002164","Apsley","Apsley,Ontario,Canada","20121","CA","City",Active
1373
- "1002165","Arnprior","Arnprior,Ontario,Canada","20121","CA","City",Active
1374
- "1002166","Arva","Arva,Ontario,Canada","20121","CA","City",Active
1375
- "1002167","Atikokan","Atikokan,Ontario,Canada","20121","CA","City",Active
1376
- "1002168","Aurora","Aurora,Ontario,Canada","20121","CA","City",Active
1377
- "1002169","Aylmer","Aylmer,Ontario,Canada","20121","CA","City",Active
1378
- "1002170","Ayr","Ayr,Ontario,Canada","20121","CA","City",Active
1379
- "1002171","Baden","Baden,Ontario,Canada","20121","CA","City",Active
1380
- "1002172","Balmertown","Balmertown,Ontario,Canada","20121","CA","Neighborhood",Active
1381
- "1002173","Bancroft","Bancroft,Ontario,Canada","20121","CA","City",Active
1382
- "1002174","Bannockburn","Bannockburn,Ontario,Canada","20121","CA","City",Active
1383
- "1002175","Barrie","Barrie,Ontario,Canada","20121","CA","City",Active
1384
- "1002176","Barry's Bay","Barry's Bay,Ontario,Canada","20121","CA","City",Active
1385
- "1002177","Barwick","Barwick,Ontario,Canada","20121","CA","City",Active
1386
- "1002178","Beamsville","Beamsville,Ontario,Canada","20121","CA","Neighborhood",Active
1387
- "1002179","Beaverton","Beaverton,Ontario,Canada","20121","CA","City",Active
1388
- "1002180","Belleville","Belleville,Ontario,Canada","20121","CA","City",Active
1389
- "1002181","Bethany","Bethany,Ontario,Canada","20121","CA","Neighborhood",Active
1390
- "1002182","Big Trout Lake","Big Trout Lake,Ontario,Canada","20121","CA","City",Active
1391
- "1002183","Blenheim","Blenheim,Ontario,Canada","20121","CA","Neighborhood",Active
1392
- "1002184","Blind River","Blind River,Ontario,Canada","20121","CA","City",Active
1393
- "1002185","Bloomfield","Bloomfield,Ontario,Canada","20121","CA","City",Active
1394
- "1002186","Bolton","Bolton,Ontario,Canada","20121","CA","Neighborhood",Active
1395
- "1002187","Bonfield","Bonfield,Ontario,Canada","20121","CA","City",Active
1396
- "1002188","Bowmanville","Bowmanville,Ontario,Canada","20121","CA","City",Active
1397
- "1002189","Bracebridge","Bracebridge,Ontario,Canada","20121","CA","City",Active
1398
- "1002190","Bramalea","Bramalea,Ontario,Canada","20121","CA","Neighborhood",Active
1399
- "1002191","Brampton","Brampton,Ontario,Canada","20121","CA","City",Active
1400
- "1002192","Brantford","Brantford,Ontario,Canada","20121","CA","City",Active
1401
- "1002193","Selwyn","Selwyn,Ontario,Canada","20121","CA","Municipality",Active
1402
- "1002194","Brockville","Brockville,Ontario,Canada","20121","CA","City",Active
1403
- "1002195","Burgessville","Burgessville,Ontario,Canada","20121","CA","City",Active
1404
- "1002196","Burk's Falls","Burk's Falls,Ontario,Canada","20121","CA","City",Active
1405
- "1002197","Burlington","Burlington,Ontario,Canada","20121","CA","City",Active
1406
- "1002198","Cache Bay","Cache Bay,Ontario,Canada","20121","CA","City",Active
1407
- "1002199","Caledon","Caledon,Ontario,Canada","20121","CA","City",Active
1408
- "1002200","Cambridge","Cambridge,Ontario,Canada","20121","CA","City",Active
1409
- "1002201","Campbellford","Campbellford,Ontario,Canada","20121","CA","City",Active
1410
- "1002202","Campbellville","Campbellville,Ontario,Canada","20121","CA","Neighborhood",Active
1411
- "1002203","Capreol","Capreol,Ontario,Canada","20121","CA","City",Active
1412
- "1002204","Carleton Place","Carleton Place,Ontario,Canada","20121","CA","City",Active
1413
- "1002205","Carlisle","Carlisle,Ontario,Canada","20121","CA","Neighborhood",Active
1414
- "1002206","Carp","Carp,Ontario,Canada","20121","CA","Neighborhood",Active
1415
- "1002207","Casselman","Casselman,Ontario,Canada","20121","CA","City",Active
1416
- "1002208","Cayuga","Cayuga,Ontario,Canada","20121","CA","Neighborhood",Active
1417
- "1002209","Chalk River","Chalk River,Ontario,Canada","20121","CA","City",Active
1418
- "1002210","Chapleau","Chapleau,Ontario,Canada","20121","CA","City",Active
1419
- "1002211","Chatham","Chatham,Ontario,Canada","20121","CA","Neighborhood",Active
1420
- "1002212","Chatsworth","Chatsworth,Ontario,Canada","20121","CA","City",Active
1421
- "1002213","Chelmsford","Chelmsford,Ontario,Canada","20121","CA","Neighborhood",Active
1422
- "1002214","Chesley","Chesley,Ontario,Canada","20121","CA","City",Active
1423
- "1002215","Chesterville","Chesterville,Ontario,Canada","20121","CA","City",Active
1424
- "1002216","Churchville","Churchville,Ontario,Canada","20121","CA","Neighborhood",Active
1425
- "1002217","Clarence Creek","Clarence Creek,Ontario,Canada","20121","CA","City",Active
1426
- "1002218","Clarkson","Clarkson,Ontario,Canada","20121","CA","Neighborhood",Active
1427
- "1002219","Clifford","Clifford,Ontario,Canada","20121","CA","Neighborhood",Active
1428
- "1002220","Clinton","Clinton,Ontario,Canada","20121","CA","City",Active
1429
- "1002221","Cobden","Cobden,Ontario,Canada","20121","CA","City",Active
1430
- "1002222","Cobourg","Cobourg,Ontario,Canada","20121","CA","City",Active
1431
- "1002223","Cochrane","Cochrane,Ontario,Canada","20121","CA","City",Active
1432
- "1002224","Colborne","Colborne,Ontario,Canada","20121","CA","City",Active
1433
- "1002225","Coldwater","Coldwater,Ontario,Canada","20121","CA","City",Active
1434
- "1002226","Collingwood","Collingwood,Ontario,Canada","20121","CA","City",Active
1435
- "1002227","Comber","Comber,Ontario,Canada","20121","CA","City",Active
1436
- "1002228","Concord","Concord,Ontario,Canada","20121","CA","Neighborhood",Active
1437
- "1002229","Cookstown","Cookstown,Ontario,Canada","20121","CA","Neighborhood",Active
1438
- "1002230","Cooksville","Cooksville,Ontario,Canada","20121","CA","Neighborhood",Active
1439
- "1002231","Copper Cliff","Copper Cliff,Ontario,Canada","20121","CA","Neighborhood",Active
1440
- "1002232","Cornwall","Cornwall,Ontario,Canada","20121","CA","City",Active
1441
- "1002233","Cottam","Cottam,Ontario,Canada","20121","CA","Neighborhood",Active
1442
- "1002234","Courtice","Courtice,Ontario,Canada","20121","CA","City",Active
1443
- "1002235","Creemore","Creemore,Ontario,Canada","20121","CA","City",Active
1444
- "1002236","Deep River","Deep River,Ontario,Canada","20121","CA","City",Active
1445
- "1002237","Deer Lake Indian Reserve","Deer Lake Indian Reserve,Ontario,Canada","20121","CA","City",Active
1446
- "1002238","Delta","Delta,Ontario,Canada","20121","CA","City",Active
1447
- "1002239","Deseronto","Deseronto,Ontario,Canada","20121","CA","City",Active
1448
- "1002240","Don Mills","Don Mills,Ontario,Canada","20121","CA","Neighborhood",Active
1449
- "1002241","Dorset","Dorset,Ontario,Canada","20121","CA","City",Active
1450
- "1002242","Dryden","Dryden,Ontario,Canada","20121","CA","City",Active
1451
- "1002243","Dublin","Dublin,Ontario,Canada","20121","CA","City",Active
1452
- "1002244","Dubreuilville","Dubreuilville,Ontario,Canada","20121","CA","City",Active
1453
- "1002245","Dunchurch","Dunchurch,Ontario,Canada","20121","CA","City",Active
1454
- "1002246","Dundas","Dundas,Ontario,Canada","20121","CA","Neighborhood",Active
1455
- "1002247","Durham","Durham,Ontario,Canada","20121","CA","City",Active
1456
- "1002248","Earlton","Earlton,Ontario,Canada","20121","CA","City",Active
1457
- "1002249","East York","East York,Ontario,Canada","20121","CA","Neighborhood",Active
1458
- "1002250","Eganville","Eganville,Ontario,Canada","20121","CA","City",Active
1459
- "1002251","Elgin","Elgin,Ontario,Canada","20121","CA","City",Active
1460
- "1002252","Elliot Lake","Elliot Lake,Ontario,Canada","20121","CA","City",Active
1461
- "1002253","Elmira","Elmira,Ontario,Canada","20121","CA","City",Active
1462
- "1002254","Elora","Elora,Ontario,Canada","20121","CA","City",Active
1463
- "1002255","Embrun","Embrun,Ontario,Canada","20121","CA","City",Active
1464
- "1002256","Englehart","Englehart,Ontario,Canada","20121","CA","City",Active
1465
- "1002257","Erin","Erin,Ontario,Canada","20121","CA","City",Active
1466
- "1002258","Espanola","Espanola,Ontario,Canada","20121","CA","City",Active
1467
- "1002259","Essex","Essex,Ontario,Canada","20121","CA","City",Active
1468
- "1002260","Etobicoke","Etobicoke,Ontario,Canada","20121","CA","Neighborhood",Active
1469
- "1002261","Exeter","Exeter,Ontario,Canada","20121","CA","City",Active
1470
- "1002262","Fenelon Falls","Fenelon Falls,Ontario,Canada","20121","CA","Neighborhood",Active
1471
- "1002263","Fenwick","Fenwick,Ontario,Canada","20121","CA","Neighborhood",Active
1472
- "1002264","Fergus","Fergus,Ontario,Canada","20121","CA","City",Active
1473
- "1002265","Flamborough","Flamborough,Ontario,Canada","20121","CA","Neighborhood",Active
1474
- "1002266","Fonthill","Fonthill,Ontario,Canada","20121","CA","Neighborhood",Active
1475
- "1002267","Forest","Forest,Ontario,Canada","20121","CA","Neighborhood",Active
1476
- "1002268","Frankford","Frankford,Ontario,Canada","20121","CA","Neighborhood",Active
1477
- "1002269","Fort Erie","Fort Erie,Ontario,Canada","20121","CA","City",Active
1478
- "1002270","Fort Frances","Fort Frances,Ontario,Canada","20121","CA","City",Active
1479
- "1002271","Fort Severn","Fort Severn,Ontario,Canada","20121","CA","City",Active
1480
- "1002272","Gananoque","Gananoque,Ontario,Canada","20121","CA","City",Active
1481
- "1002273","Georgetown","Georgetown,Ontario,Canada","20121","CA","City",Active
1482
- "1002274","Geraldton","Geraldton,Ontario,Canada","20121","CA","City",Active
1483
- "1002275","Glencoe","Glencoe,Ontario,Canada","20121","CA","City",Active
1484
- "1002276","Gloucester","Gloucester,Ontario,Canada","20121","CA","Neighborhood",Active
1485
- "1002277","Goderich","Goderich,Ontario,Canada","20121","CA","City",Active
1486
- "1002278","Gormley","Gormley,Ontario,Canada","20121","CA","City",Active
1487
- "1002279","Grand Valley","Grand Valley,Ontario,Canada","20121","CA","City",Active
1488
- "1002280","Gravenhurst","Gravenhurst,Ontario,Canada","20121","CA","City",Active
1489
- "1002281","Green Valley","Green Valley,Ontario,Canada","20121","CA","City",Active
1490
- "1002282","Grimsby","Grimsby,Ontario,Canada","20121","CA","City",Active
1491
- "1002283","Guelph","Guelph,Ontario,Canada","20121","CA","City",Active
1492
- "1002284","Hagersville","Hagersville,Ontario,Canada","20121","CA","City",Active
1493
- "1002285","Haley Station","Haley Station,Ontario,Canada","20121","CA","City",Active
1494
- "1002286","Haliburton","Haliburton,Ontario,Canada","20121","CA","City",Active
1495
- "1002287","Hamilton","Hamilton,Ontario,Canada","20121","CA","City",Active
1496
- "1002288","Hanmer","Hanmer,Ontario,Canada","20121","CA","Neighborhood",Active
1497
- "1002289","Hanover","Hanover,Ontario,Canada","20121","CA","City",Active
1498
- "1002290","Harrow","Harrow,Ontario,Canada","20121","CA","Neighborhood",Active
1499
- "1002291","Hawkesbury","Hawkesbury,Ontario,Canada","20121","CA","City",Active
1500
- "1002292","Hearst","Hearst,Ontario,Canada","20121","CA","City",Active
1501
- "1002293","Heron Bay","Heron Bay,Ontario,Canada","20121","CA","City",Active
1502
- "1002294","Holland Landing","Holland Landing,Ontario,Canada","20121","CA","Neighborhood",Active
1503
- "1002295","Huntsville","Huntsville,Ontario,Canada","20121","CA","City",Active
1504
- "1002296","Ingersoll","Ingersoll,Ontario,Canada","20121","CA","City",Active
1505
- "1002297","Inglewood","Inglewood,Ontario,Canada","20121","CA","Neighborhood",Active
1506
- "1002298","Innisfil","Innisfil,Ontario,Canada","20121","CA","City",Active
1507
- "1002299","Iroquois Falls","Iroquois Falls,Ontario,Canada","20121","CA","City",Active
1508
- "1002300","Islington","Islington,Ontario,Canada","20121","CA","Neighborhood",Active
1509
- "1002301","Kanata","Kanata,Ontario,Canada","20121","CA","Neighborhood",Active
1510
- "1002302","Kapuskasing","Kapuskasing,Ontario,Canada","20121","CA","City",Active
1511
- "1002303","Keewatin","Keewatin,Ontario,Canada","20121","CA","Neighborhood",Active
1512
- "1002304","Kemptville","Kemptville,Ontario,Canada","20121","CA","City",Active
1513
- "1002305","Kenora","Kenora,Ontario,Canada","20121","CA","City",Active
1514
- "1002306","Keswick","Keswick,Ontario,Canada","20121","CA","Neighborhood",Active
1515
- "1002307","Kincardine","Kincardine,Ontario,Canada","20121","CA","City",Active
1516
- "1002308","King City","King City,Ontario,Canada","20121","CA","City",Active
1517
- "1002309","Kingfisher Lake","Kingfisher Lake,Ontario,Canada","20121","CA","City",Active
1518
- "1002310","Kingston","Kingston,Ontario,Canada","20121","CA","City",Active
1519
- "1002311","Kirkland Lake","Kirkland Lake,Ontario,Canada","20121","CA","Municipality",Active
1520
- "1002312","Kitchener","Kitchener,Ontario,Canada","20121","CA","City",Active
1521
- "1002313","Komoka","Komoka,Ontario,Canada","20121","CA","City",Active
1522
- "1002314","L'Orignal","L'Orignal,Ontario,Canada","20121","CA","City",Active
1523
- "1002315","Lakefield","Lakefield,Ontario,Canada","20121","CA","City",Active
1524
- "1002316","London Borough of Lambeth","London Borough of Lambeth,England,United Kingdom","20339","GB","Municipality",Active
1525
- "1002317","Lanark","Lanark,Ontario,Canada","20121","CA","Neighborhood",Active
1526
- "1002318","Leamington","Leamington,Ontario,Canada","20121","CA","City",Active
1527
- "1002319","Lindsay","Lindsay,Ontario,Canada","20121","CA","City",Active
1528
- "1002320","Listowel","Listowel,Ontario,Canada","20121","CA","City",Active
1529
- "1002321","Little Current","Little Current,Ontario,Canada","20121","CA","City",Active
1530
- "1002322","Lively","Lively,Ontario,Canada","20121","CA","Neighborhood",Active
1531
- "1002323","Kawartha Lakes","Kawartha Lakes,Ontario,Canada","20121","CA","City",Active
1532
- "1002324","Lombardy","Lombardy,Ontario,Canada","20121","CA","City",Active
1533
- "1002325","London","London,Ontario,Canada","20121","CA","City",Active
1534
- "1002326","Madoc","Madoc,Ontario,Canada","20121","CA","City",Active
1535
- "1002327","Malton","Malton,Ontario,Canada","20121","CA","Neighborhood",Active
1536
- "1002328","Manitouwadge","Manitouwadge,Ontario,Canada","20121","CA","City",Active
1537
- "1002329","Manotick","Manotick,Ontario,Canada","20121","CA","Neighborhood",Active
1538
- "1002330","Maple","Maple,Ontario,Canada","20121","CA","Neighborhood",Active
1539
- "1002331","Mar","Mar,Ontario,Canada","20121","CA","City",Active
1540
- "1002332","Marathon","Marathon,Ontario,Canada","20121","CA","City",Active
1541
- "1002333","Markdale","Markdale,Ontario,Canada","20121","CA","City",Active
1542
- "1002334","Markham","Markham,Ontario,Canada","20121","CA","City",Active
1543
- "1002335","Matachewan","Matachewan,Ontario,Canada","20121","CA","City",Active
1544
- "1002336","Mattagami","Mattagami,Ontario,Canada","20121","CA","City",Active
1545
- "1002337","Mattawa","Mattawa,Ontario,Canada","20121","CA","City",Active
1546
- "1002338","Mattice","Mattice,Ontario,Canada","20121","CA","City",Active
1547
- "1002339","Maynooth","Maynooth,Ontario,Canada","20121","CA","City",Active
1548
- "1002340","McKellar","McKellar,Ontario,Canada","20121","CA","City",Active
1549
- "1002341","Merrickville-Wolford","Merrickville-Wolford,Ontario,Canada","20121","CA","City",Active
1550
- "1002342","Metcalfe","Metcalfe,Ontario,Canada","20121","CA","Neighborhood",Active
1551
- "1002343","Midhurst","Midhurst,Ontario,Canada","20121","CA","City",Active
1552
- "1002344","Midland","Midland,Ontario,Canada","20121","CA","City",Active
1553
- "1002345","Millbrook","Millbrook,Ontario,Canada","20121","CA","City",Active
1554
- "1002346","Millhaven","Millhaven,Ontario,Canada","20121","CA","City",Active
1555
- "1002347","Milton","Milton,Ontario,Canada","20121","CA","City",Active
1556
- "1002348","Milverton","Milverton,Ontario,Canada","20121","CA","City",Active
1557
- "1002349","Minnitaki","Minnitaki,Ontario,Canada","20121","CA","City",Active
1558
- "1002350","Mississauga","Mississauga,Ontario,Canada","20121","CA","City",Active
1559
- "1002351","Monkland","Monkland,Ontario,Canada","20121","CA","City",Active
1560
- "1002352","Moose Creek","Moose Creek,Ontario,Canada","20121","CA","City",Active
1561
- "1002353","Morrisburg","Morrisburg,Ontario,Canada","20121","CA","City",Active
1562
- "1002354","Mount Albert","Mount Albert,Ontario,Canada","20121","CA","City",Active
1563
- "1002355","Mount Hope","Mount Hope,Ontario,Canada","20121","CA","Neighborhood",Active
1564
- "1002356","Greater Napanee","Greater Napanee,Ontario,Canada","20121","CA","City",Active
1565
- "1002357","Nepean","Nepean,Ontario,Canada","20121","CA","Neighborhood",Active
1566
- "1002358","New Dundee","New Dundee,Ontario,Canada","20121","CA","City",Active
1567
- "1002359","New Hamburg","New Hamburg,Ontario,Canada","20121","CA","City",Active
1568
- "1002360","New Liskeard","New Liskeard,Ontario,Canada","20121","CA","Neighborhood",Active
1569
- "1002361","Newcastle","Newcastle,Ontario,Canada","20121","CA","City",Active
1570
- "1002362","Newmarket","Newmarket,Ontario,Canada","20121","CA","City",Active
1571
- "1002363","Niagara Falls","Niagara Falls,Ontario,Canada","20121","CA","City",Active
1572
- "1002364","Nipigon","Nipigon,Ontario,Canada","20121","CA","City",Active
1573
- "1002365","Nobleton","Nobleton,Ontario,Canada","20121","CA","City",Active
1574
- "1002366","Noelville","Noelville,Ontario,Canada","20121","CA","City",Active
1575
- "1002367","North Bay","North Bay,Ontario,Canada","20121","CA","City",Active
1576
- "1002368","North York","North York,Ontario,Canada","20121","CA","Neighborhood",Active
1577
- "1002369","Norval","Norval,Ontario,Canada","20121","CA","Neighborhood",Active
1578
- "1002370","Norwich","Norwich,Ontario,Canada","20121","CA","City",Active
1579
- "1002371","Oakville","Oakville,Ontario,Canada","20121","CA","City",Active
1580
- "1002372","Orangeville","Orangeville,Ontario,Canada","20121","CA","City",Active
1581
- "1002373","Orillia","Orillia,Ontario,Canada","20121","CA","City",Active
1582
- "1002374","Orleans","Orleans,Ontario,Canada","20121","CA","Neighborhood",Active
1583
- "1002375","Oshawa","Oshawa,Ontario,Canada","20121","CA","City",Active
1584
- "1002376","Ottawa","Ottawa,Ontario,Canada","20121","CA","City",Active
1585
- "1002377","Owen Sound","Owen Sound,Ontario,Canada","20121","CA","City",Active
1586
- "1002378","Paris","Paris,Ontario,Canada","20121","CA","Neighborhood",Active
1587
- "1002379","Parry Sound","Parry Sound,Ontario,Canada","20121","CA","City",Active
1588
- "1002380","Pawitik","Pawitik,Ontario,Canada","20121","CA","City",Active
1589
- "1002381","Pembroke","Pembroke,Ontario,Canada","20121","CA","City",Active
1590
- "1002382","Penetanguishene","Penetanguishene,Ontario,Canada","20121","CA","City",Active
1591
- "1002383","Perth","Perth,Ontario,Canada","20121","CA","City",Active
1592
- "1002384","Peterborough","Peterborough,Ontario,Canada","20121","CA","City",Active
1593
- "1002385","Pickering","Pickering,Ontario,Canada","20121","CA","City",Active
1594
- "1002386","Picton","Picton,Ontario,Canada","20121","CA","City",Active
1595
- "1002387","Point Edward","Point Edward,Ontario,Canada","20121","CA","City",Active
1596
- "1002388","Pontypool","Pontypool,Ontario,Canada","20121","CA","Neighborhood",Active
1597
- "1002389","Poplar Hill","Poplar Hill,Ontario,Canada","20121","CA","City",Active
1598
- "1002390","Port Colborne","Port Colborne,Ontario,Canada","20121","CA","City",Active
1599
- "1002391","Port Credit","Port Credit,Ontario,Canada","20121","CA","Neighborhood",Active
1600
- "1002392","Port Elgin","Port Elgin,Ontario,Canada","20121","CA","Neighborhood",Active
1601
- "1002393","Port Hope","Port Hope,Ontario,Canada","20121","CA","City",Active
1602
- "1002394","Port McNicoll","Port McNicoll,Ontario,Canada","20121","CA","City",Active
1603
- "1002395","Port Perry","Port Perry,Ontario,Canada","20121","CA","City",Active
1604
- "1002396","Powassan","Powassan,Ontario,Canada","20121","CA","Municipality",Active
1605
- "1002397","Prescott","Prescott,Ontario,Canada","20121","CA","City",Active
1606
- "1002398","Rainy River","Rainy River,Ontario,Canada","20121","CA","City",Active
1607
- "1002399","Raith","Raith,Ontario,Canada","20121","CA","City",Active
1608
- "1002400","Ramara","Ramara,Ontario,Canada","20121","CA","Municipality",Active
1609
- "1002401","Red Lake","Red Lake,Ontario,Canada","20121","CA","City",Active
1610
- "1002402","Renfrew","Renfrew,Ontario,Canada","20121","CA","City",Active
1611
- "1002403","Thistletown","Thistletown,Ontario,Canada","20121","CA","Neighborhood",Active
1612
- "1002404","Richmond","Richmond,Ontario,Canada","20121","CA","Neighborhood",Active
1613
- "1002405","Richmond Hill","Richmond Hill,Ontario,Canada","20121","CA","City",Active
1614
- "1002406","Ridgetown","Ridgetown,Ontario,Canada","20121","CA","Neighborhood",Active
1615
- "1002407","Ripley","Ripley,Ontario,Canada","20121","CA","City",Active
1616
- "1002408","Rockcliffe - Manor Park","Rockcliffe - Manor Park,Ontario,Canada","20121","CA","Neighborhood",Active
1617
- "1002409","Rockland","Rockland,Ontario,Canada","20121","CA","Neighborhood",Active
1618
- "1002410","Rossport","Rossport,Ontario,Canada","20121","CA","City",Active
1619
- "1002411","Russell","Russell,Ontario,Canada","20121","CA","City",Active
1620
- "1002412","Sandy Lake","Sandy Lake,Ontario,Canada","20121","CA","City",Active
1621
- "1002413","Sarnia","Sarnia,Ontario,Canada","20121","CA","City",Active
1622
- "1002414","Sault Ste. Marie","Sault Ste. Marie,Ontario,Canada","20121","CA","City",Active
1623
- "1002416","Scarborough","Scarborough,Ontario,Canada","20121","CA","Neighborhood",Active
1624
- "1002417","Schomberg","Schomberg,Ontario,Canada","20121","CA","City",Active
1625
- "1002418","Schumacher","Schumacher,Ontario,Canada","20121","CA","Neighborhood",Active
1626
- "1002419","Shelburne","Shelburne,Ontario,Canada","20121","CA","City",Active
1627
- "1002420","Simcoe","Simcoe,Ontario,Canada","20121","CA","City",Active
1628
- "1002421","Sioux Lookout","Sioux Lookout,Ontario,Canada","20121","CA","City",Active
1629
- "1002422","Smiths Falls","Smiths Falls,Ontario,Canada","20121","CA","City",Active
1630
- "1002423","Smithville","Smithville,Ontario,Canada","20121","CA","City",Active
1631
- "1002424","Smooth Rock Falls","Smooth Rock Falls,Ontario,Canada","20121","CA","City",Active
1632
- "1002425","South Lancaster","South Lancaster,Ontario,Canada","20121","CA","City",Active
1633
- "1002426","South Porcupine","South Porcupine,Ontario,Canada","20121","CA","Neighborhood",Active
1634
- "1002427","South River","South River,Ontario,Canada","20121","CA","City",Active
1635
- "1002428","St. Catharines","St. Catharines,Ontario,Canada","20121","CA","City",Active
1636
- "1002429","St. Jacobs","St. Jacobs,Ontario,Canada","20121","CA","City",Active
1637
- "1002430","Saint Marys","Saint Marys,Ontario,Canada","20121","CA","City",Active
1638
- "1002431","St. Thomas","St. Thomas,Ontario,Canada","20121","CA","City",Active
1639
- "1002432","Stevensville","Stevensville,Ontario,Canada","20121","CA","Neighborhood",Active
1640
- "1002433","Stirling","Stirling,Ontario,Canada","20121","CA","City",Active
1641
- "1002434","Stittsville","Stittsville,Ontario,Canada","20121","CA","City",Active
1642
- "1002435","Stoney Creek","Stoney Creek,Ontario,Canada","20121","CA","Neighborhood",Active
1643
- "1002436","Stouffville","Stouffville,Ontario,Canada","20121","CA","Neighborhood",Active
1644
- "1002437","Stratford","Stratford,Ontario,Canada","20121","CA","City",Active
1645
- "1002438","Strathroy","Strathroy,Ontario,Canada","20121","CA","City",Active
1646
- "1002439","Streetsville","Streetsville,Ontario,Canada","20121","CA","Neighborhood",Active
1647
- "1002440","West Nipissing","West Nipissing,Ontario,Canada","20121","CA","City",Active
1648
- "1002441","Greater Sudbury","Greater Sudbury,Ontario,Canada","20121","CA","City",Active
1649
- "1002442","Tecumseh","Tecumseh,Ontario,Canada","20121","CA","City",Active
1650
- "1002443","Terrace Bay","Terrace Bay,Ontario,Canada","20121","CA","City",Active
1651
- "1002444","Thessalon","Thessalon,Ontario,Canada","20121","CA","City",Active
1652
- "1002445","Thornbury","Thornbury,Ontario,Canada","20121","CA","Neighborhood",Active
1653
- "1002446","Thornhill","Thornhill,Ontario,Canada","20121","CA","Neighborhood",Active
1654
- "1002447","Thorold","Thorold,Ontario,Canada","20121","CA","City",Active
1655
- "1002448","Thunder Bay","Thunder Bay,Ontario,Canada","20121","CA","City",Active
1656
- "1002449","Tillsonburg","Tillsonburg,Ontario,Canada","20121","CA","City",Active
1657
- "1002450","Timmins","Timmins,Ontario,Canada","20121","CA","City",Active
1658
- "1002451","Toronto","Toronto,Ontario,Canada","20121","CA","City",Active
1659
- "1002452","Tottenham","Tottenham,Ontario,Canada","20121","CA","Neighborhood",Active
1660
- "1002453","Trenton","Trenton,Ontario,Canada","20121","CA","Neighborhood",Active
1661
- "1002454","Unionville","Unionville,Ontario,Canada","20121","CA","Neighborhood",Active
1662
- "1002455","Utica","Utica,Ontario,Canada","20121","CA","City",Active
1663
- "1002456","Val Caron","Val Caron,Ontario,Canada","20121","CA","Neighborhood",Active
1664
- "1002457","Vanier","Vanier,Ontario,Canada","20121","CA","City",Active
1665
- "1002458","Vankleek Hill","Vankleek Hill,Ontario,Canada","20121","CA","City",Active
1666
- "1002459","Vaughan","Vaughan,Ontario,Canada","20121","CA","City",Active
1667
- "1002460","Wainfleet","Wainfleet,Ontario,Canada","20121","CA","City",Active
1668
- "1002461","Wallaceburg","Wallaceburg,Ontario,Canada","20121","CA","Neighborhood",Active
1669
- "1002462","Waterdown","Waterdown,Ontario,Canada","20121","CA","Neighborhood",Active
1670
- "1002463","Waterford","Waterford,Ontario,Canada","20121","CA","City",Active
1671
- "1002464","Waterloo","Waterloo,Ontario,Canada","20121","CA","City",Active
1672
- "1002465","Wawa","Wawa,Ontario,Canada","20121","CA","City",Active
1673
- "1002466","Webequie","Webequie,Ontario,Canada","20121","CA","City",Active
1674
- "1002467","Welland","Welland,Ontario,Canada","20121","CA","City",Active
1675
- "1002468","West Hill","West Hill,Ontario,Canada","20121","CA","Neighborhood",Active
1676
- "1002469","Pelham Park","Pelham Park,Ontario,Canada","20121","CA","Neighborhood",Active
1677
- "1002470","Whitby","Whitby,Ontario,Canada","20121","CA","City",Active
1678
- "1002471","Whitchurch-Stouffville","Whitchurch-Stouffville,Ontario,Canada","20121","CA","City",Active
1679
- "1002472","Willowdale","Willowdale,Ontario,Canada","20121","CA","Neighborhood",Active
1680
- "1002473","Windsor","Windsor,Ontario,Canada","20121","CA","City",Active
1681
- "1002474","Wingham","Wingham,Ontario,Canada","20121","CA","City",Active
1682
- "1002475","Winona","Winona,Ontario,Canada","20121","CA","Neighborhood",Active
1683
- "1002476","Wolfe Island","Wolfe Island,Ontario,Canada","20121","CA","City",Active
1684
- "1002477","Woodbridge","Woodbridge,Ontario,Canada","20121","CA","Neighborhood",Active
1685
- "1002478","Woodstock","Woodstock,Ontario,Canada","20121","CA","City",Active
1686
- "1002479","Wunnummin Lake","Wunnummin Lake,Ontario,Canada","20121","CA","City",Active
1687
- "1002480","Wyoming","Wyoming,Ontario,Canada","20121","CA","Neighborhood",Active
1688
- "1002481","York","York,Ontario,Canada","20121","CA","City",Active
1689
- "1002482","Bonshaw","Bonshaw,Prince Edward Island,Canada","20122","CA","City",Active
1690
- "1002483","Charlottetown","Charlottetown,Prince Edward Island,Canada","20122","CA","City",Active
1691
- "1002484","Georgetown","Georgetown,Prince Edward Island,Canada","20122","CA","City",Active
1692
- "1002485","Summerside","Summerside,Prince Edward Island,Canada","20122","CA","City",Active
1693
- "1002486","Tignish","Tignish,Prince Edward Island,Canada","20122","CA","City",Active
1694
- "1002487","Acton Vale","Acton Vale,Quebec,Canada","20123","CA","City",Active
1695
- "1002488","Alma","Alma,Quebec,Canada","20123","CA","City",Active
1696
- "1002489","Amos","Amos,Quebec,Canada","20123","CA","City",Active
1697
- "1002490","L'Ancienne-Lorette","L'Ancienne-Lorette,Quebec,Canada","20123","CA","City",Active
1698
- "1002491","Anjou","Anjou,Quebec,Canada","20123","CA","Neighborhood",Active
1699
- "1002492","Asbestos","Asbestos,Quebec,Canada","20123","CA","City",Active
1700
- "1002493","Aylmer","Aylmer,Quebec,Canada","20123","CA","Neighborhood",Active
1701
- "1002494","Baie-Comeau","Baie-Comeau,Quebec,Canada","20123","CA","City",Active
1702
- "1002495","Baie-D'Urfe","Baie-D'Urfe,Quebec,Canada","20123","CA","City",Active
1703
- "1002496","Baie-Saint-Paul","Baie-Saint-Paul,Quebec,Canada","20123","CA","City",Active
1704
- "1002497","Beaconsfield","Beaconsfield,Quebec,Canada","20123","CA","City",Active
1705
- "1002498","Beauport","Beauport,Quebec,Canada","20123","CA","Neighborhood",Active
1706
- "1002499","Beaupre","Beaupre,Quebec,Canada","20123","CA","City",Active
1707
- "1002500","Becancour","Becancour,Quebec,Canada","20123","CA","City",Active
1708
- "1002501","Bedford","Bedford,Quebec,Canada","20123","CA","City",Active
1709
- "1002502","Bellefeuille","Bellefeuille,Quebec,Canada","20123","CA","Neighborhood",Active
1710
- "1002503","Berthierville","Berthierville,Quebec,Canada","20123","CA","City",Active
1711
- "1002504","Blainville","Blainville,Quebec,Canada","20123","CA","City",Active
1712
- "1002505","Bois-des-Filion","Bois-des-Filion,Quebec,Canada","20123","CA","City",Active
1713
- "1002506","Boisbriand","Boisbriand,Quebec,Canada","20123","CA","City",Active
1714
- "1002507","Boischatel","Boischatel,Quebec,Canada","20123","CA","Municipality",Active
1715
- "1002508","Bonaventure","Bonaventure,Quebec,Canada","20123","CA","City",Active
1716
- "1002509","Boucherville","Boucherville,Quebec,Canada","20123","CA","City",Active
1717
- "1002510","Brome","Brome,Quebec,Canada","20123","CA","City",Active
1718
- "1002511","Bromont","Bromont,Quebec,Canada","20123","CA","City",Active
1719
- "1002512","Brompton","Brompton,Quebec,Canada","20123","CA","Neighborhood",Active
1720
- "1002513","Brossard","Brossard,Quebec,Canada","20123","CA","City",Active
1721
- "1002514","Buckingham","Buckingham,Quebec,Canada","20123","CA","Neighborhood",Active
1722
- "1002515","Cabano","Cabano,Quebec,Canada","20123","CA","Neighborhood",Active
1723
- "1002516","Candiac","Candiac,Quebec,Canada","20123","CA","City",Active
1724
- "1002517","Cap-de-la-Madeleine","Cap-de-la-Madeleine,Quebec,Canada","20123","CA","Neighborhood",Active
1725
- "1002518","Caplan","Caplan,Quebec,Canada","20123","CA","City",Active
1726
- "1002519","Carignan","Carignan,Quebec,Canada","20123","CA","City",Active
1727
- "1002520","Carleton","Carleton,Quebec,Canada","20123","CA","Neighborhood",Active
1728
- "1002521","Chambly","Chambly,Quebec,Canada","20123","CA","City",Active
1729
- "1002522","Charlesbourg","Charlesbourg,Quebec,Canada","20123","CA","Neighborhood",Active
1730
- "1002523","Charny","Charny,Quebec,Canada","20123","CA","Neighborhood",Active
1731
- "1002524","Chateauguay","Chateauguay,Quebec,Canada","20123","CA","City",Active
1732
- "1002525","Chelsea","Chelsea,Quebec,Canada","20123","CA","City",Active
1733
- "1002526","Chibougamau","Chibougamau,Quebec,Canada","20123","CA","City",Active
1734
- "1002527","Chicoutimi","Chicoutimi,Quebec,Canada","20123","CA","Neighborhood",Active
1735
- "1002528","Coaticook","Coaticook,Quebec,Canada","20123","CA","City",Active
1736
- "1002529","Cookshire","Cookshire,Quebec,Canada","20123","CA","Neighborhood",Active
1737
- "1002530","Cote Saint-Luc","Cote Saint-Luc,Quebec,Canada","20123","CA","City",Active
1738
- "1002531","Cowansville","Cowansville,Quebec,Canada","20123","CA","City",Active
1739
- "1002532","Degelis","Degelis,Quebec,Canada","20123","CA","City",Active
1740
- "1002533","Delson","Delson,Quebec,Canada","20123","CA","City",Active
1741
- "1002534","Deschambault","Deschambault,Quebec,Canada","20123","CA","City",Active
1742
- "1002535","Deux-Montagnes","Deux-Montagnes,Quebec,Canada","20123","CA","City",Active
1743
- "1002536","Dolbeau","Dolbeau,Quebec,Canada","20123","CA","Neighborhood",Active
1744
- "1002537","Dolbeau-Mistassini","Dolbeau-Mistassini,Quebec,Canada","20123","CA","City",Active
1745
- "1002538","Dollard-Des Ormeaux","Dollard-Des Ormeaux,Quebec,Canada","20123","CA","City",Active
1746
- "1002539","Donnacona","Donnacona,Quebec,Canada","20123","CA","City",Active
1747
- "1002540","Dorion","Dorion,Quebec,Canada","20123","CA","Neighborhood",Active
1748
- "1002541","Dorval","Dorval,Quebec,Canada","20123","CA","City",Active
1749
- "1002542","Drummondville","Drummondville,Quebec,Canada","20123","CA","City",Active
1750
- "1002543","Duvernay","Duvernay,Quebec,Canada","20123","CA","Neighborhood",Active
1751
- "1002544","Fabreville","Fabreville,Quebec,Canada","20123","CA","Neighborhood",Active
1752
- "1002545","Farnham","Farnham,Quebec,Canada","20123","CA","City",Active
1753
- "1002546","Fatima","Fatima,Quebec,Canada","20123","CA","City",Active
1754
- "1002547","Fleurimont","Fleurimont,Quebec,Canada","20123","CA","Neighborhood",Active
1755
- "1002548","Gaspe","Gaspe,Quebec,Canada","20123","CA","City",Active
1756
- "1002549","Gatineau","Gatineau,Quebec,Canada","20123","CA","City",Active
1757
- "1002550","Granby","Granby,Quebec,Canada","20123","CA","City",Active
1758
- "1002551","Grande-Riviere","Grande-Riviere,Quebec,Canada","20123","CA","City",Active
1759
- "1002552","Greenfield Park","Greenfield Park,Quebec,Canada","20123","CA","Neighborhood",Active
1760
- "1002553","Hudson","Hudson,Quebec,Canada","20123","CA","City",Active
1761
- "1002554","Hull","Hull,Quebec,Canada","20123","CA","Neighborhood",Active
1762
- "1002555","Iberville","Iberville,Quebec,Canada","20123","CA","Neighborhood",Active
1763
- "1002556","Joliette","Joliette,Quebec,Canada","20123","CA","City",Active
1764
- "1002557","Jonquiere","Jonquiere,Quebec,Canada","20123","CA","Neighborhood",Active
1765
- "1002558","Kahnawake","Kahnawake,Quebec,Canada","20123","CA","Neighborhood",Active
1766
- "1002559","Kirkland","Kirkland,Quebec,Canada","20123","CA","City",Active
1767
- "1002560","Kuujjuaq","Kuujjuaq,Quebec,Canada","20123","CA","City",Active
1768
- "1002561","L'Annonciation","L'Annonciation,Quebec,Canada","20123","CA","Neighborhood",Active
1769
- "1002562","L'Assomption","L'Assomption,Quebec,Canada","20123","CA","City",Active
1770
- "1002563","La Baie","La Baie,Quebec,Canada","20123","CA","Neighborhood",Active
1771
- "1002564","La Malbaie","La Malbaie,Quebec,Canada","20123","CA","City",Active
1772
- "1002565","La Prairie","La Prairie,Quebec,Canada","20123","CA","City",Active
1773
- "1002566","La Romaine","La Romaine,Quebec,Canada","20123","CA","City",Active
1774
- "1002568","La Tuque","La Tuque,Quebec,Canada","20123","CA","City",Active
1775
- "1002569","Lac-Etchemin","Lac-Etchemin,Quebec,Canada","20123","CA","City",Active
1776
- "1002570","Lac-Megantic","Lac-Megantic,Quebec,Canada","20123","CA","City",Active
1777
- "1002571","Lachine","Lachine,Quebec,Canada","20123","CA","Neighborhood",Active
1778
- "1002572","Lachute","Lachute,Quebec,Canada","20123","CA","City",Active
1779
- "1002573","Lambton","Lambton,Quebec,Canada","20123","CA","City",Active
1780
- "1002574","Larochelle","Larochelle,Quebec,Canada","20123","CA","Neighborhood",Active
1781
- "1002575","Lasalle","Lasalle,Quebec,Canada","20123","CA","Neighborhood",Active
1782
- "1002576","Laterriere","Laterriere,Quebec,Canada","20123","CA","Neighborhood",Active
1783
- "1002577","Laurentiens","Laurentiens,Quebec,Canada","20123","CA","Neighborhood",Active
1784
- "1002578","Laurier-Station","Laurier-Station,Quebec,Canada","20123","CA","City",Active
1785
- "1002579","Laval","Laval,Quebec,Canada","20123","CA","City",Active
1786
- "1002580","Le Gardeur","Le Gardeur,Quebec,Canada","20123","CA","Neighborhood",Active
1787
- "1002581","Lennoxville","Lennoxville,Quebec,Canada","20123","CA","Neighborhood",Active
1788
- "1002582","Les Cedres","Les Cedres,Quebec,Canada","20123","CA","City",Active
1789
- "1002583","Levis","Levis,Quebec,Canada","20123","CA","City",Active
1790
- "1002584","Listuguj","Listuguj,Quebec,Canada","20123","CA","City",Active
1791
- "1002585","Longueuil","Longueuil,Quebec,Canada","20123","CA","City",Active
1792
- "1002586","Loretteville","Loretteville,Quebec,Canada","20123","CA","Neighborhood",Active
1793
- "1002587","Lorraine","Lorraine,Quebec,Canada","20123","CA","City",Active
1794
- "1002589","Magog","Magog,Quebec,Canada","20123","CA","City",Active
1795
- "1002590","Maniwaki","Maniwaki,Quebec,Canada","20123","CA","City",Active
1796
- "1002591","Maria","Maria,Quebec,Canada","20123","CA","City",Active
1797
- "1002592","Mascouche","Mascouche,Quebec,Canada","20123","CA","City",Active
1798
- "1002593","Masson","Masson,Quebec,Canada","20123","CA","Neighborhood",Active
1799
- "1002594","Matane","Matane,Quebec,Canada","20123","CA","City",Active
1800
- "1002595","Mercier","Mercier,Quebec,Canada","20123","CA","City",Active
1801
- "1002596","Mirabel","Mirabel,Quebec,Canada","20123","CA","City",Active
1802
- "1002597","Mont-Joli","Mont-Joli,Quebec,Canada","20123","CA","City",Active
1803
- "1002598","Mont-Laurier","Mont-Laurier,Quebec,Canada","20123","CA","City",Active
1804
- "1002599","Mount Royal","Mount Royal,Quebec,Canada","20123","CA","City",Active
1805
- "1002600","Mont-Saint-Hilaire","Mont-Saint-Hilaire,Quebec,Canada","20123","CA","City",Active
1806
- "1002601","Mont-Tremblant","Mont-Tremblant,Quebec,Canada","20123","CA","City",Active
1807
- "1002602","Montebello","Montebello,Quebec,Canada","20123","CA","City",Active
1808
- "1002603","Montmagny","Montmagny,Quebec,Canada","20123","CA","City",Active
1809
- "1002604","Montreal","Montreal,Quebec,Canada","20123","CA","City",Active
1810
- "1002605","Napierville","Napierville,Quebec,Canada","20123","CA","City",Active
1811
- "1002606","Neufchatel","Neufchatel,Quebec,Canada","20123","CA","Neighborhood",Active
1812
- "1002607","New Carlisle","New Carlisle,Quebec,Canada","20123","CA","City",Active
1813
- "1002608","New Richmond","New Richmond,Quebec,Canada","20123","CA","City",Active
1814
- "1002609","Nicolet","Nicolet,Quebec,Canada","20123","CA","City",Active
1815
- "1002610","Noranda","Noranda,Quebec,Canada","20123","CA","Neighborhood",Active
1816
- "1002611","Omerville","Omerville,Quebec,Canada","20123","CA","Neighborhood",Active
1817
- "1002612","Outremont","Outremont,Quebec,Canada","20123","CA","Neighborhood",Active
1818
- "1002613","Papineauville","Papineauville,Quebec,Canada","20123","CA","City",Active
1819
- "1002614","Piedmont","Piedmont,Quebec,Canada","20123","CA","City",Active
1820
- "1002615","Pierrefonds-Roxboro","Pierrefonds-Roxboro,Quebec,Canada","20123","CA","Neighborhood",Active
1821
- "1002616","Pohenegamook","Pohenegamook,Quebec,Canada","20123","CA","City",Active
1822
- "1002617","Pointe-a-la-Croix","Pointe-a-la-Croix,Quebec,Canada","20123","CA","Neighborhood",Active
1823
- "1002618","Pointe-aux-Outardes","Pointe-aux-Outardes,Quebec,Canada","20123","CA","City",Active
1824
- "1002619","Pointe-aux-Trembles","Pointe-aux-Trembles,Quebec,Canada","20123","CA","Neighborhood",Active
1825
- "1002620","Pointe-Claire","Pointe-Claire,Quebec,Canada","20123","CA","City",Active
1826
- "1002621","Pont-Rouge","Pont-Rouge,Quebec,Canada","20123","CA","City",Active
1827
- "1002622","Port-Cartier","Port-Cartier,Quebec,Canada","20123","CA","City",Active
1828
- "1002623","Portneuf","Portneuf,Quebec,Canada","20123","CA","City",Active
1829
- "1002624","Quebec City","Quebec City,Quebec,Canada","20123","CA","City",Active
1830
- "1002625","Repentigny","Repentigny,Quebec,Canada","20123","CA","City",Active
1831
- "1002626","Richelieu","Richelieu,Quebec,Canada","20123","CA","City",Active
1832
- "1002627","Richmond","Richmond,Quebec,Canada","20123","CA","City",Active
1833
- "1002628","Rimouski","Rimouski,Quebec,Canada","20123","CA","City",Active
1834
- "1002629","Riviere-du-Loup","Riviere-du-Loup,Quebec,Canada","20123","CA","City",Active
1835
- "1002630","Robertsonville","Robertsonville,Quebec,Canada","20123","CA","Neighborhood",Active
1836
- "1002631","Roberval","Roberval,Quebec,Canada","20123","CA","City",Active
1837
- "1002632","Rock Forest-Saint-Elie-Deauville","Rock Forest-Saint-Elie-Deauville,Quebec,Canada","20123","CA","Neighborhood",Active
1838
- "1002633","Rosemere","Rosemere,Quebec,Canada","20123","CA","City",Active
1839
- "1002634","Rouyn-Noranda","Rouyn-Noranda,Quebec,Canada","20123","CA","City",Active
1840
- "1002635","Roxboro","Roxboro,Quebec,Canada","20123","CA","Neighborhood",Active
1841
- "1002636","Sainte-Agathe-de-Lotbiniere","Sainte-Agathe-de-Lotbiniere,Quebec,Canada","20123","CA","Municipality",Active
1842
- "1002637","Sainte-Agathe-des-Monts","Sainte-Agathe-des-Monts,Quebec,Canada","20123","CA","City",Active
1843
- "1002638","Salaberry-de-Valleyfield","Salaberry-de-Valleyfield,Quebec,Canada","20123","CA","City",Active
1844
- "1002639","Sault-au-Mouton","Sault-au-Mouton,Quebec,Canada","20123","CA","City",Active
1845
- "1002640","Scott","Scott,Quebec,Canada","20123","CA","City",Active
1846
- "1002641","Sept-Iles","Sept-Iles,Quebec,Canada","20123","CA","City",Active
1847
- "1002642","Shawinigan","Shawinigan,Quebec,Canada","20123","CA","City",Active
1848
- "1002643","Sherbrooke","Sherbrooke,Quebec,Canada","20123","CA","City",Active
1849
- "1002644","Sillery","Sillery,Quebec,Canada","20123","CA","Neighborhood",Active
1850
- "1002645","Sorel-Tracy","Sorel-Tracy,Quebec,Canada","20123","CA","City",Active
1851
- "1002646","Saint-Bruno","Saint-Bruno,Quebec,Canada","20123","CA","Municipality",Active
1852
- "1002647","Saint-Georges","Saint-Georges,Quebec,Canada","20123","CA","City",Active
1853
- "1002648","Saint-Alphonse-de-Granby","Saint-Alphonse-de-Granby,Quebec,Canada","20123","CA","City",Active
1854
- "1002649","Sainte-Anne-des-Monts--Tourelle","Sainte-Anne-des-Monts--Tourelle,Quebec,Canada","20123","CA","City",Active
1855
- "1002650","Saint-Anselme","Saint-Anselme,Quebec,Canada","20123","CA","Municipality",Active
1856
- "1002651","Saint-Augustin","Saint-Augustin,Quebec,Canada","20123","CA","City",Active
1857
- "1002652","Saint-Basile-le-Grand","Saint-Basile-le-Grand,Quebec,Canada","20123","CA","City",Active
1858
- "1002653","St-Bruno-de-Montarville","St-Bruno-de-Montarville,Quebec,Canada","20123","CA","City",Active
1859
- "1002654","Saint-Constant","Saint-Constant,Quebec,Canada","20123","CA","City",Active
1860
- "1002655","Saint-Cyrille-de-Wendover","Saint-Cyrille-de-Wendover,Quebec,Canada","20123","CA","Neighborhood",Active
1861
- "1002656","Saint-Elzear","Saint-Elzear,Quebec,Canada","20123","CA","City",Active
1862
- "1002657","Saint-Eustache","Saint-Eustache,Quebec,Canada","20123","CA","City",Active
1863
- "1002658","Saint-Felicien","Saint-Felicien,Quebec,Canada","20123","CA","City",Active
1864
- "1002659","Saint-Felix-de-Valois","Saint-Felix-de-Valois,Quebec,Canada","20123","CA","Municipality",Active
1865
- "1002661","Saint-Hubert","Saint-Hubert,Quebec,Canada","20123","CA","Neighborhood",Active
1866
- "1002662","Saint-Hyacinthe","Saint-Hyacinthe,Quebec,Canada","20123","CA","City",Active
1867
- "1002663","Saint-Janvier","Saint-Janvier,Quebec,Canada","20123","CA","Neighborhood",Active
1868
- "1002664","Saint-Jean-de-l'Ile-d'Orleans","Saint-Jean-de-l'Ile-d'Orleans,Quebec,Canada","20123","CA","City",Active
1869
- "1002665","Saint-Jean-Chrysostome","Saint-Jean-Chrysostome,Quebec,Canada","20123","CA","City",Active
1870
- "1002666","Saint-Jean-sur-Richelieu","Saint-Jean-sur-Richelieu,Quebec,Canada","20123","CA","City",Active
1871
- "1002667","Saint-Jerome","Saint-Jerome,Quebec,Canada","20123","CA","City",Active
1872
- "1002668","Saint-Jovite","Saint-Jovite,Quebec,Canada","20123","CA","Neighborhood",Active
1873
- "1002669","Saint-Justin","Saint-Justin,Quebec,Canada","20123","CA","Municipality",Active
1874
- "1002670","Saint-Lambert","Saint-Lambert,Quebec,Canada","20123","CA","City",Active
1875
- "1002671","Saint-Laurent","Saint-Laurent,Quebec,Canada","20123","CA","Neighborhood",Active
1876
- "1002672","Saint Leonard","Saint Leonard,Quebec,Canada","20123","CA","Neighborhood",Active
1877
- "1002673","Saint-Louis-de-France","Saint-Louis-de-France,Quebec,Canada","20123","CA","Neighborhood",Active
1878
- "1002674","Saint-Malo","Saint-Malo,Quebec,Canada","20123","CA","City",Active
1879
- "1002675","Saint-Mathieu-de-Beloeil","Saint-Mathieu-de-Beloeil,Quebec,Canada","20123","CA","City",Active
1880
- "1002676","Saint-Nicolas","Saint-Nicolas,Quebec,Canada","20123","CA","Neighborhood",Active
1881
- "1002677","Saint-Pascal","Saint-Pascal,Quebec,Canada","20123","CA","City",Active
1882
- "1002678","Saint-Pie","Saint-Pie,Quebec,Canada","20123","CA","City",Active
1883
- "1002679","Saint-Pierre","Saint-Pierre,Quebec,Canada","20123","CA","City",Active
1884
- "1002680","Saint-Pierre-de-l'Ile-d'Orleans","Saint-Pierre-de-l'Île-d'Orléans,Quebec,Canada","20123","CA","City",Active
1885
- "1002681","St-Raymond","St-Raymond,Quebec,Canada","20123","CA","City",Active
1886
- "1002682","Saint-Remi","Saint-Remi,Quebec,Canada","20123","CA","City",Active
1887
- "1002683","St-Romuald","St-Romuald,Quebec,Canada","20123","CA","Neighborhood",Active
1888
- "1002684","Saint-Sauveur-des-Monts","Saint-Sauveur-des-Monts,Quebec,Canada","20123","CA","Neighborhood",Active
1889
- "1002685","Saint-Sylvestre","Saint-Sylvestre,Quebec,Canada","20123","CA","Municipality",Active
1890
- "1002686","Saint-Timothee","Saint-Timothee,Quebec,Canada","20123","CA","Neighborhood",Active
1891
- "1002687","St-Tite","St-Tite,Quebec,Canada","20123","CA","City",Active
1892
- "1002688","Saint-Victor","Saint-Victor,Quebec,Canada","20123","CA","Municipality",Active
1893
- "1002689","Stanstead","Stanstead,Quebec,Canada","20123","CA","City",Active
1894
- "1002690","Sainte-Catherine","Sainte-Catherine,Quebec,Canada","20123","CA","City",Active
1895
- "1002691","Sainte-Adele","Sainte-Adele,Quebec,Canada","20123","CA","City",Active
1896
- "1002692","Sainte-Anne-de-Bellevue","Sainte-Anne-de-Bellevue,Quebec,Canada","20123","CA","City",Active
1897
- "1002693","Sainte-Claire","Sainte-Claire,Quebec,Canada","20123","CA","City",Active
1898
- "1002694","St-Croix","St-Croix,Quebec,Canada","20123","CA","City",Active
1899
- "1002695","Sainte-Dorothee","Sainte-Dorothee,Quebec,Canada","20123","CA","City",Active
1900
- "1002696","L'Aeroport","L'Aeroport,Quebec,Canada","20123","CA","Neighborhood",Active
1901
- "1002697","Sainte-Genevieve","Sainte-Genevieve,Quebec,Canada","20123","CA","Neighborhood",Active
1902
- "1002698","Sainte-Julie","Sainte-Julie,Quebec,Canada","20123","CA","City",Active
1903
- "1002699","Sainte-Marguerite-du-Lac-Masson","Sainte-Marguerite-du-Lac-Masson,Quebec,Canada","20123","CA","City",Active
1904
- "1002700","Sainte-Marie","Sainte-Marie,Quebec,Canada","20123","CA","City",Active
1905
- "1002701","Sainte-Rosalie","Sainte-Rosalie,Quebec,Canada","20123","CA","Neighborhood",Active
1906
- "1002702","Sainte-Therese","Sainte-Therese,Quebec,Canada","20123","CA","City",Active
1907
- "1002703","Sutton","Sutton,Quebec,Canada","20123","CA","City",Active
1908
- "1002704","Temiscaming","Temiscaming,Quebec,Canada","20123","CA","City",Active
1909
- "1002705","Terrebonne","Terrebonne,Quebec,Canada","20123","CA","City",Active
1910
- "1002706","Thetford Mines","Thetford Mines,Quebec,Canada","20123","CA","City",Active
1911
- "1002707","Tracy","Tracy,Quebec,Canada","20123","CA","Neighborhood",Active
1912
- "1002708","Trois-Rivieres","Trois-Rivieres,Quebec,Canada","20123","CA","City",Active
1913
- "1002709","Val-Belair","Val-Belair,Quebec,Canada","20123","CA","Neighborhood",Active
1914
- "1002710","Val-d'Or","Val-d'Or,Quebec,Canada","20123","CA","City",Active
1915
- "1002711","Val-Morin","Val-Morin,Quebec,Canada","20123","CA","City",Active
1916
- "1002712","Valcourt","Valcourt,Quebec,Canada","20123","CA","City",Active
1917
- "1002713","Vallee-Jonction","Vallee-Jonction,Quebec,Canada","20123","CA","City",Active
1918
- "1002715","Vanier","Vanier,Quebec,Canada","20123","CA","Neighborhood",Active
1919
- "1002716","Varennes","Varennes,Quebec,Canada","20123","CA","City",Active
1920
- "1002717","Vaudreuil-Dorion","Vaudreuil-Dorion,Quebec,Canada","20123","CA","City",Active
1921
- "1002718","Verdun","Verdun,Quebec,Canada","20123","CA","Neighborhood",Active
1922
- "1002719","Victoriaville","Victoriaville,Quebec,Canada","20123","CA","City",Active
1923
- "1002720","Warwick","Warwick,Quebec,Canada","20123","CA","City",Active
1924
- "1002721","Waswanipi","Waswanipi,Quebec,Canada","20123","CA","City",Active
1925
- "1002722","Waterloo","Waterloo,Quebec,Canada","20123","CA","City",Active
1926
- "1002723","Waterville","Waterville,Quebec,Canada","20123","CA","City",Active
1927
- "1002724","Westmount","Westmount,Quebec,Canada","20123","CA","City",Active
1928
- "1002725","Windsor","Windsor,Quebec,Canada","20123","CA","City",Active
1929
- "1002726","Yamachiche","Yamachiche,Quebec,Canada","20123","CA","City",Active
1930
- "1002727","Aberdeen","Aberdeen,Saskatchewan,Canada","20124","CA","City",Active
1931
- "1002728","Allan","Allan,Saskatchewan,Canada","20124","CA","City",Active
1932
- "1002729","Annaheim","Annaheim,Saskatchewan,Canada","20124","CA","City",Active
1933
- "1002730","Assiniboia","Assiniboia,Saskatchewan,Canada","20124","CA","City",Active
1934
- "1002731","Balcarres","Balcarres,Saskatchewan,Canada","20124","CA","City",Active
1935
- "1002732","Beauval","Beauval,Saskatchewan,Canada","20124","CA","City",Active
1936
- "1002733","Big River","Big River,Saskatchewan,Canada","20124","CA","City",Active
1937
- "1002734","Biggar","Biggar,Saskatchewan,Canada","20124","CA","City",Active
1938
- "1002735","Bruno","Bruno,Saskatchewan,Canada","20124","CA","City",Active
1939
- "1002736","Buffalo Narrows","Buffalo Narrows,Saskatchewan,Canada","20124","CA","City",Active
1940
- "1002737","Cabri","Cabri,Saskatchewan,Canada","20124","CA","City",Active
1941
- "1002738","Canwood","Canwood,Saskatchewan,Canada","20124","CA","City",Active
1942
- "1002739","Carlyle","Carlyle,Saskatchewan,Canada","20124","CA","City",Active
1943
- "1002740","Caronport","Caronport,Saskatchewan,Canada","20124","CA","City",Active
1944
- "1002741","Clavet","Clavet,Saskatchewan,Canada","20124","CA","City",Active
1945
- "1002742","Colonsay","Colonsay,Saskatchewan,Canada","20124","CA","City",Active
1946
- "1002743","Consul","Consul,Saskatchewan,Canada","20124","CA","City",Active
1947
- "1002744","Cote","Cote,Saskatchewan,Canada","20124","CA","City",Active
1948
- "1002745","Craik","Craik,Saskatchewan,Canada","20124","CA","City",Active
1949
- "1002746","Creighton","Creighton,Saskatchewan,Canada","20124","CA","City",Active
1950
- "1002747","Debden","Debden,Saskatchewan,Canada","20124","CA","City",Active
1951
- "1002748","Dillon","Dillon,Saskatchewan,Canada","20124","CA","City",Active
1952
- "1002749","Dundurn","Dundurn,Saskatchewan,Canada","20124","CA","City",Active
1953
- "1002750","Edam","Edam,Saskatchewan,Canada","20124","CA","City",Active
1954
- "1002751","Elfros","Elfros,Saskatchewan,Canada","20124","CA","City",Active
1955
- "1002752","Esterhazy","Esterhazy,Saskatchewan,Canada","20124","CA","City",Active
1956
- "1002753","Estevan","Estevan,Saskatchewan,Canada","20124","CA","City",Active
1957
- "1002754","Eston","Eston,Saskatchewan,Canada","20124","CA","City",Active
1958
- "1002755","Fillmore","Fillmore,Saskatchewan,Canada","20124","CA","City",Active
1959
- "1002756","Frontier","Frontier,Saskatchewan,Canada","20124","CA","City",Active
1960
- "1002757","Gravelbourg","Gravelbourg,Saskatchewan,Canada","20124","CA","City",Active
1961
- "1002758","Griffin","Griffin,Saskatchewan,Canada","20124","CA","City",Active
1962
- "1002759","Gull Lake","Gull Lake,Saskatchewan,Canada","20124","CA","City",Active
1963
- "1002760","Hanley","Hanley,Saskatchewan,Canada","20124","CA","City",Active
1964
- "1002761","Hudson Bay","Hudson Bay,Saskatchewan,Canada","20124","CA","City",Active
1965
- "1002762","Humboldt","Humboldt,Saskatchewan,Canada","20124","CA","City",Active
1966
- "1002763","Ile-a-la-Crosse","Ile-a-la-Crosse,Saskatchewan,Canada","20124","CA","City",Active
1967
- "1002764","Indian Head","Indian Head,Saskatchewan,Canada","20124","CA","City",Active
1968
- "1002765","Kamsack","Kamsack,Saskatchewan,Canada","20124","CA","City",Active
1969
- "1002766","Kindersley","Kindersley,Saskatchewan,Canada","20124","CA","City",Active
1970
- "1002767","La Loche","La Loche,Saskatchewan,Canada","20124","CA","City",Active
1971
- "1002768","La Ronge","La Ronge,Saskatchewan,Canada","20124","CA","City",Active
1972
- "1002769","Lampman","Lampman,Saskatchewan,Canada","20124","CA","City",Active
1973
- "1002770","Lemberg","Lemberg,Saskatchewan,Canada","20124","CA","City",Active
1974
- "1002772","Maple Creek","Maple Creek,Saskatchewan,Canada","20124","CA","City",Active
1975
- "1002773","Maymont","Maymont,Saskatchewan,Canada","20124","CA","City",Active
1976
- "1002774","Meadow Lake","Meadow Lake,Saskatchewan,Canada","20124","CA","City",Active
1977
- "1002775","Melfort","Melfort,Saskatchewan,Canada","20124","CA","City",Active
1978
- "1002776","Melville","Melville,Saskatchewan,Canada","20124","CA","City",Active
1979
- "1002777","Moose Jaw","Moose Jaw,Saskatchewan,Canada","20124","CA","City",Active
1980
- "1002778","Moosomin","Moosomin,Saskatchewan,Canada","20124","CA","City",Active
1981
- "1002779","Muenster","Muenster,Saskatchewan,Canada","20124","CA","City",Active
1982
- "1002780","Nipawin","Nipawin,Saskatchewan,Canada","20124","CA","City",Active
1983
- "1002781","Norquay","Norquay,Saskatchewan,Canada","20124","CA","City",Active
1984
- "1002782","North Battleford","North Battleford,Saskatchewan,Canada","20124","CA","City",Active
1985
- "1002783","North Portal","North Portal,Saskatchewan,Canada","20124","CA","City",Active
1986
- "1002784","Outlook","Outlook,Saskatchewan,Canada","20124","CA","City",Active
1987
- "1002785","Prince Albert","Prince Albert,Saskatchewan,Canada","20124","CA","City",Active
1988
- "1002786","Radville","Radville,Saskatchewan,Canada","20124","CA","City",Active
1989
- "1002787","Regina","Regina,Saskatchewan,Canada","20124","CA","City",Active
1990
- "1002788","Rocanville","Rocanville,Saskatchewan,Canada","20124","CA","City",Active
1991
- "1002789","Rockglen","Rockglen,Saskatchewan,Canada","20124","CA","City",Active
1992
- "1002790","Rosetown","Rosetown,Saskatchewan,Canada","20124","CA","City",Active
1993
- "1002791","Saskatoon","Saskatoon,Saskatchewan,Canada","20124","CA","City",Active
1994
- "1002792","Shaunavon","Shaunavon,Saskatchewan,Canada","20124","CA","City",Active
1995
- "1002793","Shellbrook","Shellbrook,Saskatchewan,Canada","20124","CA","City",Active
1996
- "1002794","Swift Current","Swift Current,Saskatchewan,Canada","20124","CA","City",Active
1997
- "1002795","Tisdale","Tisdale,Saskatchewan,Canada","20124","CA","City",Active
1998
- "1002796","Unity","Unity,Saskatchewan,Canada","20124","CA","City",Active
1999
- "1002797","Wadena","Wadena,Saskatchewan,Canada","20124","CA","City",Active
2000
- "1002798","Warman","Warman,Saskatchewan,Canada","20124","CA","City",Active
2001
- "1002799","Weekes","Weekes,Saskatchewan,Canada","20124","CA","City",Active
2002
- "1002800","Weyburn","Weyburn,Saskatchewan,Canada","20124","CA","City",Active
2003
- "1002801","Whitewood","Whitewood,Saskatchewan,Canada","20124","CA","City",Active
2004
- "1002802","Wilcox","Wilcox,Saskatchewan,Canada","20124","CA","City",Active
2005
- "1002803","Wilkie","Wilkie,Saskatchewan,Canada","20124","CA","City",Active
2006
- "1002804","Wynyard","Wynyard,Saskatchewan,Canada","20124","CA","City",Active
2007
- "1002805","Yorkton","Yorkton,Saskatchewan,Canada","20124","CA","City",Active
2008
- "1002806","Whitehorse","Whitehorse,Yukon,Canada","20125","CA","City",Active
2009
- "1002807","Aarau","Aarau,Aargau,Switzerland","20126","CH","City",Active
2010
- "1002808","Aarburg","Aarburg,Aargau,Switzerland","20126","CH","City",Active
2011
- "1002809","Baden","Baden,Aargau,Switzerland","20126","CH","City",Active
2012
- "1002810","Brittnau","Brittnau,Aargau,Switzerland","20126","CH","City",Active
2013
- "1002811","Brugg","Brugg,Aargau,Switzerland","20126","CH","City",Active
2014
- "1002812","Remetschwil","Remetschwil,Aargau,Switzerland","20126","CH","City",Active
2015
- "1002813","Frick","Frick,Aargau,Switzerland","20126","CH","City",Active
2016
- "1002814","Granichen","Granichen,Aargau,Switzerland","20126","CH","City",Active
2017
- "1002815","Hirschthal","Hirschthal,Aargau,Switzerland","20126","CH","City",Active
2018
- "1002816","Holderbank","Holderbank,Aargau,Switzerland","20126","CH","City",Active
2019
- "1002817","Hunzenschwil","Hunzenschwil,Aargau,Switzerland","20126","CH","City",Active
2020
- "1002818","Kaiseraugst","Kaiseraugst,Aargau,Switzerland","20126","CH","City",Active
2021
- "1002820","Bottstein","Bottstein,Aargau,Switzerland","20126","CH","City",Active
2022
- "1002821","Kolliken","Kolliken,Aargau,Switzerland","20126","CH","City",Active
2023
- "1002822","Laufenburg","Laufenburg,Aargau,Switzerland","20126","CH","City",Active
2024
- "1002823","Leibstadt","Leibstadt,Aargau,Switzerland","20126","CH","City",Active
2025
- "1002824","Lenzburg","Lenzburg,Aargau,Switzerland","20126","CH","City",Active
2026
- "1002825","Leuggern","Leuggern,Aargau,Switzerland","20126","CH","City",Active
2027
- "1002826","Lupfig","Lupfig,Aargau,Switzerland","20126","CH","City",Active
2028
- "1002827","Mellingen","Mellingen,Aargau,Switzerland","20126","CH","City",Active
2029
- "1002828","Menziken","Menziken,Aargau,Switzerland","20126","CH","City",Active
2030
- "1002829","Mohlin","Mohlin,Aargau,Switzerland","20126","CH","City",Active
2031
- "1002830","Muhen","Muhen,Aargau,Switzerland","20126","CH","City",Active
2032
- "1002831","Neuenhof","Neuenhof,Aargau,Switzerland","20126","CH","City",Active
2033
- "1002832","Niederlenz","Niederlenz,Aargau,Switzerland","20126","CH","City",Active
2034
- "1002833","Niederrohrdorf","Niederrohrdorf,Aargau,Switzerland","20126","CH","City",Active
2035
- "1002834","Oberentfelden","Oberentfelden,Aargau,Switzerland","20126","CH","City",Active
2036
- "1002835","Oberrohrdorf","Oberrohrdorf,Aargau,Switzerland","20126","CH","City",Active
2037
- "1002836","Oftringen","Oftringen,Aargau,Switzerland","20126","CH","City",Active
2038
- "1002837","Rheinfelden","Rheinfelden,Aargau,Switzerland","20126","CH","City",Active
2039
- "1002839","Rothrist","Rothrist,Aargau,Switzerland","20126","CH","City",Active
2040
- "1002840","Rudolfstetten-Friedlisberg","Rudolfstetten-Friedlisberg,Aargau,Switzerland","20126","CH","City",Active
2041
- "1002841","Rupperswil","Rupperswil,Aargau,Switzerland","20126","CH","City",Active
2042
- "1002842","Safenwil","Safenwil,Aargau,Switzerland","20126","CH","City",Active
2043
- "1002844","Siglistorf","Siglistorf,Aargau,Switzerland","20126","CH","City",Active
2044
- "1002845","Sins","Sins,Aargau,Switzerland","20126","CH","City",Active
2045
- "1002846","Spreitenbach","Spreitenbach,Aargau,Switzerland","20126","CH","City",Active
2046
- "1002847","Staufen","Staufen,Aargau,Switzerland","20126","CH","City",Active
2047
- "1002848","Stein","Stein,Aargau,Switzerland","20126","CH","City",Active
2048
- "1002849","Stetten","Stetten,Aargau,Switzerland","20126","CH","City",Active
2049
- "1002850","Suhr","Suhr,Aargau,Switzerland","20126","CH","City",Active
2050
- "1002852","Turgi","Turgi,Aargau,Switzerland","20126","CH","City",Active
2051
- "1002853","Unterentfelden","Unterentfelden,Aargau,Switzerland","20126","CH","City",Active
2052
- "1002854","Unterkulm","Unterkulm,Aargau,Switzerland","20126","CH","City",Active
2053
- "1002855","Villigen","Villigen,Aargau,Switzerland","20126","CH","City",Active
2054
- "1002856","Vordemwald","Vordemwald,Aargau,Switzerland","20126","CH","City",Active
2055
- "1002857","Wettingen","Wettingen,Aargau,Switzerland","20126","CH","City",Active
2056
- "1002858","Moriken-Wildegg","Moriken-Wildegg,Aargau,Switzerland","20126","CH","City",Active
2057
- "1002859","Windisch","Windisch,Aargau,Switzerland","20126","CH","City",Active
2058
- "1002860","Wohlen","Wohlen,Aargau,Switzerland","20126","CH","City",Active
2059
- "1002861","Wurenlos","Wurenlos,Aargau,Switzerland","20126","CH","City",Active
2060
- "1002862","Zofingen","Zofingen,Aargau,Switzerland","20126","CH","City",Active
2061
- "1002863","Zufikon","Zufikon,Aargau,Switzerland","20126","CH","City",Active
2062
- "1002864","Bad Zurzach","Bad Zurzach,Aargau,Switzerland","20126","CH","City",Active
2063
- "1002865","Appenzell District","Appenzell District,Appenzell Innerrhoden,Switzerland","20127","CH","City",Active
2064
- "1002866","Gais","Gais,Appenzell Ausserrhoden,Switzerland","20128","CH","City",Active
2065
- "1002867","Heiden","Heiden,Appenzell Ausserrhoden,Switzerland","20128","CH","City",Active
2066
- "1002868","Herisau","Herisau,Appenzell Ausserrhoden,Switzerland","20128","CH","City",Active
2067
- "1002869","Teufen","Teufen,Appenzell Ausserrhoden,Switzerland","20128","CH","City",Active
2068
- "1002870","Waldstatt","Waldstatt,Appenzell Ausserrhoden,Switzerland","20128","CH","City",Active
2069
- "1002871","Aarberg","Aarberg,Canton of Bern,Switzerland","20129","CH","City",Active
2070
- "1002872","Aarwangen","Aarwangen,Canton of Bern,Switzerland","20129","CH","City",Active
2071
- "1002873","Amsoldingen","Amsoldingen,Canton of Bern,Switzerland","20129","CH","City",Active
2072
- "1002874","Belp","Belp,Canton of Bern,Switzerland","20129","CH","City",Active
2073
- "1002875","Bern","Bern,Canton of Bern,Switzerland","20129","CH","City",Active
2074
- "1002876","Biel/Bienne","Biel/Bienne,Canton of Bern,Switzerland","20129","CH","City",Active
2075
- "1002877","Brienz","Brienz,Canton of Bern,Switzerland","20129","CH","City",Active
2076
- "1002879","Burgdorf","Burgdorf,Canton of Bern,Switzerland","20129","CH","City",Active
2077
- "1002880","Ersigen","Ersigen,Canton of Bern,Switzerland","20129","CH","City",Active
2078
- "1002881","Farnern","Farnern,Canton of Bern,Switzerland","20129","CH","City",Active
2079
- "1002882","Grindelwald","Grindelwald,Canton of Bern,Switzerland","20129","CH","City",Active
2080
- "1002884","Muri bei Bern","Muri bei Bern,Canton of Bern,Switzerland","20129","CH","City",Active
2081
- "1002887","Kirchlindach","Kirchlindach,Canton of Bern,Switzerland","20129","CH","City",Active
2082
- "1002888","Herzogenbuchsee","Herzogenbuchsee,Canton of Bern,Switzerland","20129","CH","City",Active
2083
- "1002889","Hilterfingen","Hilterfingen,Canton of Bern,Switzerland","20129","CH","City",Active
2084
- "1002890","Interlaken","Interlaken,Canton of Bern,Switzerland","20129","CH","City",Active
2085
- "1002891","Ipsach","Ipsach,Canton of Bern,Switzerland","20129","CH","City",Active
2086
- "1002892","Ittigen","Ittigen,Canton of Bern,Switzerland","20129","CH","City",Active
2087
- "1002893","Jegenstorf","Jegenstorf,Canton of Bern,Switzerland","20129","CH","City",Active
2088
- "1002894","Kehrsatz","Kehrsatz,Canton of Bern,Switzerland","20129","CH","City",Active
2089
- "1002895","Kirchberg","Kirchberg,Canton of Bern,Switzerland","20129","CH","City",Active
2090
- "1002896","Konolfingen","Konolfingen,Canton of Bern,Switzerland","20129","CH","City",Active
2091
- "1002897","Langenthal","Langenthal,Canton of Bern,Switzerland","20129","CH","City",Active
2092
- "1002898","Laufen","Laufen,Basel-Landschaft,Switzerland","20130","CH","City",Active
2093
- "1002900","Lignieres","Lignieres,Neuchatel,Switzerland","20138","CH","City",Active
2094
- "1002901","Lyss","Lyss,Canton of Bern,Switzerland","20129","CH","City",Active
2095
- "1002902","Lyssach","Lyssach,Canton of Bern,Switzerland","20129","CH","City",Active
2096
- "1002903","Madiswil","Madiswil,Canton of Bern,Switzerland","20129","CH","City",Active
2097
- "1002904","Malleray","Malleray,Canton of Bern,Switzerland","20129","CH","City",Active
2098
- "1002906","Meiringen","Meiringen,Canton of Bern,Switzerland","20129","CH","City",Active
2099
- "1002907","Moosseedorf","Moosseedorf,Canton of Bern,Switzerland","20129","CH","City",Active
2100
- "1002908","Munsingen","Munsingen,Canton of Bern,Switzerland","20129","CH","City",Active
2101
- "1002909","Murten","Murten,Fribourg,Switzerland","20132","CH","City",Active
2102
- "1002910","Nidau","Nidau,Canton of Bern,Switzerland","20129","CH","City",Active
2103
- "1002913","Oberhofen","Oberhofen,Canton of Bern,Switzerland","20129","CH","City",Active
2104
- "1002916","Orpund","Orpund,Canton of Bern,Switzerland","20129","CH","City",Active
2105
- "1002917","Orvin","Orvin,Canton of Bern,Switzerland","20129","CH","City",Active
2106
- "1002918","Ostermundigen","Ostermundigen,Canton of Bern,Switzerland","20129","CH","City",Active
2107
- "1002919","Pery","Pery,Canton of Bern,Switzerland","20129","CH","City",Active
2108
- "1002920","Pieterlen","Pieterlen,Canton of Bern,Switzerland","20129","CH","City",Active
2109
- "1002921","Schlosswil","Schlosswil,Canton of Bern,Switzerland","20129","CH","City",Active
2110
- "1002922","Urtenen-Schonbuhl","Urtenen-Schonbuhl,Canton of Bern,Switzerland","20129","CH","City",Active
2111
- "1002923","Schwadernau","Schwadernau,Canton of Bern,Switzerland","20129","CH","City",Active
2112
- "1002924","Wahlern","Wahlern,Canton of Bern,Switzerland","20129","CH","City",Active
2113
- "1002925","Seedorf","Seedorf,Canton of Bern,Switzerland","20129","CH","City",Active
2114
- "1002926","Spiez","Spiez,Canton of Bern,Switzerland","20129","CH","City",Active
2115
- "1002927","St-Imier","St-Imier,Canton of Bern,Switzerland","20129","CH","City",Active
2116
- "1002928","Tavannes","Tavannes,Canton of Bern,Switzerland","20129","CH","City",Active
2117
- "1002930","Thun","Thun,Canton of Bern,Switzerland","20129","CH","City",Active
2118
- "1002931","Toffen","Toffen,Canton of Bern,Switzerland","20129","CH","City",Active
2119
- "1002932","Tramelan","Tramelan,Canton of Bern,Switzerland","20129","CH","City",Active
2120
- "1002933","Trubschachen","Trubschachen,Canton of Bern,Switzerland","20129","CH","City",Active
2121
- "1002934","Uetendorf","Uetendorf,Canton of Bern,Switzerland","20129","CH","City",Active
2122
- "1002935","Utzenstorf","Utzenstorf,Canton of Bern,Switzerland","20129","CH","City",Active
2123
- "1002939","Worb","Worb,Canton of Bern,Switzerland","20129","CH","City",Active
2124
- "1002940","Zollikofen","Zollikofen,Canton of Bern,Switzerland","20129","CH","City",Active
2125
- "1002941","Aesch","Aesch,Basel-Landschaft,Switzerland","20130","CH","City",Active
2126
- "1002942","Allschwil","Allschwil,Basel-Landschaft,Switzerland","20130","CH","City",Active
2127
- "1002943","Arlesheim","Arlesheim,Basel-Landschaft,Switzerland","20130","CH","City",Active
2128
- "1002944","Augst","Augst,Basel-Landschaft,Switzerland","20130","CH","City",Active
2129
- "1002945","Binningen","Binningen,Basel-Landschaft,Switzerland","20130","CH","City",Active
2130
- "1002946","Birsfelden","Birsfelden,Basel-Landschaft,Switzerland","20130","CH","City",Active
2131
- "1002947","Blauen","Blauen,Basel-Landschaft,Switzerland","20130","CH","City",Active
2132
- "1002948","Bockten","Bockten,Basel-Landschaft,Switzerland","20130","CH","City",Active
2133
- "1002950","Giebenach","Giebenach,Basel-Landschaft,Switzerland","20130","CH","City",Active
2134
- "1002951","Hersberg","Hersberg,Basel-Landschaft,Switzerland","20130","CH","City",Active
2135
- "1002952","Holstein","Holstein,Basel-Landschaft,Switzerland","20130","CH","City",Active
2136
- "1002953","Laufelfingen","Laufelfingen,Basel-Landschaft,Switzerland","20130","CH","City",Active
2137
- "1002954","Liesberg","Liesberg,Basel-Landschaft,Switzerland","20130","CH","City",Active
2138
- "1002955","Liestal","Liestal,Basel-Landschaft,Switzerland","20130","CH","City",Active
2139
- "1002956","Munchenstein","Munchenstein,Basel-Landschaft,Switzerland","20130","CH","City",Active
2140
- "1002957","Muttenz","Muttenz,Basel-Landschaft,Switzerland","20130","CH","City",Active
2141
- "1002958","Oberwil","Oberwil,Basel-Landschaft,Switzerland","20130","CH","City",Active
2142
- "1002959","Pratteln","Pratteln,Basel-Landschaft,Switzerland","20130","CH","City",Active
2143
- "1002960","Reinach","Reinach,Basel-Landschaft,Switzerland","20130","CH","City",Active
2144
- "1002961","Riehen","Riehen,Basel City,Switzerland","20131","CH","City",Active
2145
- "1002962","Sissach","Sissach,Basel-Landschaft,Switzerland","20130","CH","City",Active
2146
- "1002963","Waldenburg","Waldenburg,Basel-Landschaft,Switzerland","20130","CH","City",Active
2147
- "1002964","Basel","Basel,Basel City,Switzerland","20131","CH","City",Active
2148
- "1002965","Bettingen","Bettingen,Basel City,Switzerland","20131","CH","City",Active
2149
- "1002967","Charmey","Charmey,Fribourg,Switzerland","20132","CH","City",Active
2150
- "1002968","Chatel-Saint-Denis","Chatel-Saint-Denis,Fribourg,Switzerland","20132","CH","City",Active
2151
- "1002969","Dudingen","Dudingen,Fribourg,Switzerland","20132","CH","City",Active
2152
- "1002970","Wunnewil-Flamatt","Wunnewil-Flamatt,Fribourg,Switzerland","20132","CH","City",Active
2153
- "1002971","Fribourg","Fribourg,Fribourg,Switzerland","20132","CH","City",Active
2154
- "1002972","Givisiez","Givisiez,Fribourg,Switzerland","20132","CH","City",Active
2155
- "1002973","Granges-Paccot","Granges-Paccot,Fribourg,Switzerland","20132","CH","City",Active
2156
- "1002974","Marly","Marly,Fribourg,Switzerland","20132","CH","City",Active
2157
- "1002975","Matran","Matran,Fribourg,Switzerland","20132","CH","City",Active
2158
- "1002976","Neyruz","Neyruz,Fribourg,Switzerland","20132","CH","City",Active
2159
- "1002977","Noreaz","Noreaz,Fribourg,Switzerland","20132","CH","City",Active
2160
- "1002978","Payerne","Payerne,Vaud,Switzerland","20148","CH","City",Active
2161
- "1002979","Tentlingen","Tentlingen,Fribourg,Switzerland","20132","CH","City",Active
2162
- "1002980","Villars-sur-Glane","Villars-sur-Glane,Fribourg,Switzerland","20132","CH","City",Active
2163
- "1002982","Bellevue","Bellevue,Geneva,Switzerland","20133","CH","City",Active
2164
- "1002983","Carouge","Carouge,Geneva,Switzerland","20133","CH","City",Active
2165
- "1002984","Pregny-Chambesy","Pregny-Chambesy,Geneva,Switzerland","20133","CH","City",Active
2166
- "1002986","Chene-Bougeries","Chene-Bougeries,Geneva,Switzerland","20133","CH","City",Active
2167
- "1002987","Chene-Bourg","Chene-Bourg,Geneva,Switzerland","20133","CH","City",Active
2168
- "1002989","Collonge-Bellerive","Collonge-Bellerive,Geneva,Switzerland","20133","CH","City",Active
2169
- "1002990","Cologny","Cologny,Geneva,Switzerland","20133","CH","City",Active
2170
- "1002992","Geneva","Geneva,Geneva,Switzerland","20133","CH","City",Active
2171
- "1002993","Grand-Saconnex","Grand-Saconnex,Geneva,Switzerland","20133","CH","City",Active
2172
- "1002995","Jussy","Jussy,Geneva,Switzerland","20133","CH","City",Active
2173
- "1002996","Lancy","Lancy,Geneva,Switzerland","20133","CH","City",Active
2174
- "1002998","Meyrin","Meyrin,Geneva,Switzerland","20133","CH","City",Active
2175
- "1002999","Perly","Perly,Geneva,Switzerland","20133","CH","City",Active
2176
- "1003001","Plan-les-Ouates","Plan-les-Ouates,Geneva,Switzerland","20133","CH","City",Active
2177
- "1003002","Presinge","Presinge,Geneva,Switzerland","20133","CH","City",Active
2178
- "1003003","Thonex","Thonex,Geneva,Switzerland","20133","CH","City",Active
2179
- "1003004","Vernier","Vernier,Geneva,Switzerland","20133","CH","City",Active
2180
- "1003005","Versoix","Versoix,Geneva,Switzerland","20133","CH","City",Active
2181
- "1003007","Veyrier","Veyrier,Geneva,Switzerland","20133","CH","City",Active
2182
- "1003008","Bilten","Bilten,Glarus,Switzerland","20134","CH","City",Active
2183
- "1003009","Ennenda","Ennenda,Glarus,Switzerland","20134","CH","City",Active
2184
- "1003010","Glarus","Glarus,Glarus,Switzerland","20134","CH","City",Active
2185
- "1003011","Mitlodi","Mitlodi,Glarus,Switzerland","20134","CH","Neighborhood",Active
2186
- "1003012","Mollis","Mollis,Glarus,Switzerland","20134","CH","City",Active
2187
- "1003013","Nafels","Nafels,Glarus,Switzerland","20134","CH","City",Active
2188
- "1003014","Oberurnen","Oberurnen,Glarus,Switzerland","20134","CH","City",Active
2189
- "1003015","Obstalden","Obstalden,Glarus,Switzerland","20134","CH","City",Active
2190
- "1003016","Arosa","Arosa,Grisons,Switzerland","20135","CH","City",Active
2191
- "1003017","Bonaduz","Bonaduz,Grisons,Switzerland","20135","CH","City",Active
2192
- "1003018","Chur","Chur,Grisons,Switzerland","20135","CH","City",Active
2193
- "1003019","Davos","Davos,Grisons,Switzerland","20135","CH","City",Active
2194
- "1003022","Domat/Ems","Domat/Ems,Grisons,Switzerland","20135","CH","City",Active
2195
- "1003023","Flims","Flims,Grisons,Switzerland","20135","CH","City",Active
2196
- "1003024","Ilanz","Ilanz,Grisons,Switzerland","20135","CH","City",Active
2197
- "1003025","Klosters-Serneus","Klosters-Serneus,Grisons,Switzerland","20135","CH","City",Active
2198
- "1003026","Laax","Laax,Grisons,Switzerland","20135","CH","City",Active
2199
- "1003028","Samedan","Samedan,Grisons,Switzerland","20135","CH","City",Active
2200
- "1003030","Scuol","Scuol,Grisons,Switzerland","20135","CH","City",Active
2201
- "1003031","Saint Moritz","Saint Moritz,Grisons,Switzerland","20135","CH","City",Active
2202
- "1003032","Thusis","Thusis,Grisons,Switzerland","20135","CH","City",Active
2203
- "1003033","Zizers","Zizers,Grisons,Switzerland","20135","CH","City",Active
2204
- "1003034","Zuoz","Zuoz,Grisons,Switzerland","20135","CH","City",Active
2205
- "1003036","Delemont","Delemont,Jura,Switzerland","20136","CH","City",Active
2206
- "1003037","Le Noirmont","Le Noirmont,Jura,Switzerland","20136","CH","City",Active
2207
- "1003038","Porrentruy","Porrentruy,Jura,Switzerland","20136","CH","City",Active
2208
- "1003039","Rossemaison","Rossemaison,Jura,Switzerland","20136","CH","City",Active
2209
- "1003040","Saignelegier","Saignelegier,Jura,Switzerland","20136","CH","City",Active
2210
- "1003041","Adligenswil","Adligenswil,Lucerne,Switzerland","20137","CH","City",Active
2211
- "1003042","Altishofen","Altishofen,Lucerne,Switzerland","20137","CH","City",Active
2212
- "1003043","Ballwil","Ballwil,Lucerne,Switzerland","20137","CH","City",Active
2213
- "1003044","Ebikon","Ebikon,Lucerne,Switzerland","20137","CH","City",Active
2214
- "1003045","Emmen","Emmen,Lucerne,Switzerland","20137","CH","City",Active
2215
- "1003047","Entlebuch","Entlebuch,Lucerne,Switzerland","20137","CH","City",Active
2216
- "1003048","Gisikon","Gisikon,Lucerne,Switzerland","20137","CH","City",Active
2217
- "1003049","Grosswangen","Grosswangen,Lucerne,Switzerland","20137","CH","City",Active
2218
- "1003050","Hergiswil","Hergiswil,Nidwalden,Switzerland","20139","CH","City",Active
2219
- "1003051","Hitzkirch","Hitzkirch,Lucerne,Switzerland","20137","CH","City",Active
2220
- "1003052","Hochdorf","Hochdorf,Lucerne,Switzerland","20137","CH","City",Active
2221
- "1003054","Kriens","Kriens,Lucerne,Switzerland","20137","CH","City",Active
2222
- "1003055","Littau","Littau,Lucerne,Switzerland","20137","CH","City",Active
2223
- "1003056","Lucerne","Lucerne,Lucerne,Switzerland","20137","CH","City",Active
2224
- "1003057","Malters","Malters,Lucerne,Switzerland","20137","CH","City",Active
2225
- "1003058","Marbach","Marbach,Lucerne,Switzerland","20137","CH","City",Active
2226
- "1003059","Meggen","Meggen,Lucerne,Switzerland","20137","CH","City",Active
2227
- "1003060","Menznau","Menznau,Lucerne,Switzerland","20137","CH","City",Active
2228
- "1003061","Nottwil","Nottwil,Lucerne,Switzerland","20137","CH","City",Active
2229
- "1003062","Reiden","Reiden,Lucerne,Switzerland","20137","CH","City",Active
2230
- "1003063","Rickenbach","Rickenbach,Lucerne,Switzerland","20137","CH","City",Active
2231
- "1003064","Root","Root,Lucerne,Switzerland","20137","CH","City",Active
2232
- "1003065","Rothenburg","Rothenburg,Lucerne,Switzerland","20137","CH","City",Active
2233
- "1003066","Ruswil","Ruswil,Lucerne,Switzerland","20137","CH","City",Active
2234
- "1003069","Schupfheim","Schupfheim,Lucerne,Switzerland","20137","CH","City",Active
2235
- "1003070","Sempach","Sempach,Lucerne,Switzerland","20137","CH","City",Active
2236
- "1003071","Sursee","Sursee,Lucerne,Switzerland","20137","CH","City",Active
2237
- "1003072","Triengen","Triengen,Lucerne,Switzerland","20137","CH","City",Active
2238
- "1003073","Willisau","Willisau,Lucerne,Switzerland","20137","CH","City",Active
2239
- "1003074","Wolhusen","Wolhusen,Lucerne,Switzerland","20137","CH","City",Active
2240
- "1003075","Bevaix","Bevaix,Neuchatel,Switzerland","20138","CH","City",Active
2241
- "1003076","Colombier","Colombier,Neuchatel,Switzerland","20138","CH","City",Active
2242
- "1003078","Cortaillod","Cortaillod,Neuchatel,Switzerland","20138","CH","City",Active
2243
- "1003079","Couvet","Couvet,Neuchatel,Switzerland","20138","CH","City",Active
2244
- "1003080","Cressier","Cressier,Neuchatel,Switzerland","20138","CH","City",Active
2245
- "1003082","La Chaux-de-Fonds","La Chaux-de-Fonds,Neuchatel,Switzerland","20138","CH","City",Active
2246
- "1003083","La Neuveville","La Neuveville,Canton of Bern,Switzerland","20129","CH","City",Active
2247
- "1003084","Le Locle","Le Locle,Neuchatel,Switzerland","20138","CH","City",Active
2248
- "1003085","Les Brenets","Les Brenets,Neuchatel,Switzerland","20138","CH","City",Active
2249
- "1003086","Les Geneveys-sur-Coffrane","Les Geneveys-sur-Coffrane,Neuchatel,Switzerland","20138","CH","City",Active
2250
- "1003088","Neuchatel","Neuchatel,Neuchatel,Switzerland","20138","CH","City",Active
2251
- "1003089","Saint-Blaise","Saint-Blaise,Neuchatel,Switzerland","20138","CH","City",Active
2252
- "1003090","Buochs","Buochs,Nidwalden,Switzerland","20139","CH","City",Active
2253
- "1003091","Ennetburgen","Ennetburgen,Nidwalden,Switzerland","20139","CH","City",Active
2254
- "1003092","Stans","Stans,Nidwalden,Switzerland","20139","CH","City",Active
2255
- "1003094","Stansstad","Stansstad,Nidwalden,Switzerland","20139","CH","City",Active
2256
- "1003095","Engelberg","Engelberg,Obwalden,Switzerland","20140","CH","City",Active
2257
- "1003096","Kerns","Kerns,Obwalden,Switzerland","20140","CH","City",Active
2258
- "1003097","Au","Au,St. Gallen,Switzerland","20141","CH","City",Active
2259
- "1003098","Buchs","Buchs,St. Gallen,Switzerland","20141","CH","City",Active
2260
- "1003099","Flawil","Flawil,St. Gallen,Switzerland","20141","CH","City",Active
2261
- "1003100","Gams","Gams,St. Gallen,Switzerland","20141","CH","City",Active
2262
- "1003101","Gossau","Gossau,St. Gallen,Switzerland","20141","CH","City",Active
2263
- "1003104","Lichtensteig","Lichtensteig,St. Gallen,Switzerland","20141","CH","City",Active
2264
- "1003105","Mels","Mels,St. Gallen,Switzerland","20141","CH","City",Active
2265
- "1003106","Nesslau-Krummenau","Nesslau-Krummenau,St. Gallen,Switzerland","20141","CH","City",Active
2266
- "1003107","Oberriet","Oberriet,St. Gallen,Switzerland","20141","CH","City",Active
2267
- "1003109","Rorschach","Rorschach,St. Gallen,Switzerland","20141","CH","City",Active
2268
- "1003110","Sargans","Sargans,St. Gallen,Switzerland","20141","CH","City",Active
2269
- "1003111","Schwerzenbach","Schwerzenbach,Zurich,Switzerland","20151","CH","City",Active
2270
- "1003112","Sennwald","Sennwald,St. Gallen,Switzerland","20141","CH","City",Active
2271
- "1003113","St. Gallen","St. Gallen,St. Gallen,Switzerland","20141","CH","City",Active
2272
- "1003114","Uznach","Uznach,St. Gallen,Switzerland","20141","CH","City",Active
2273
- "1003115","Wattwil","Wattwil,St. Gallen,Switzerland","20141","CH","City",Active
2274
- "1003116","Wil","Wil,St. Gallen,Switzerland","20141","CH","City",Active
2275
- "1003117","Beringen","Beringen,Schaffhausen,Switzerland","20142","CH","City",Active
2276
- "1003119","Ramsen","Ramsen,Schaffhausen,Switzerland","20142","CH","City",Active
2277
- "1003120","Schaffhausen","Schaffhausen,Schaffhausen,Switzerland","20142","CH","City",Active
2278
- "1003121","Thayngen","Thayngen,Schaffhausen,Switzerland","20142","CH","City",Active
2279
- "1003122","Balsthal","Balsthal,Solothurn,Switzerland","20143","CH","City",Active
2280
- "1003123","Battwil","Battwil,Solothurn,Switzerland","20143","CH","City",Active
2281
- "1003124","Bellach","Bellach,Solothurn,Switzerland","20143","CH","City",Active
2282
- "1003125","Bettlach","Bettlach,Solothurn,Switzerland","20143","CH","City",Active
2283
- "1003126","Biberist","Biberist,Solothurn,Switzerland","20143","CH","City",Active
2284
- "1003127","Breitenbach","Breitenbach,Solothurn,Switzerland","20143","CH","City",Active
2285
- "1003128","Daniken","Daniken,Solothurn,Switzerland","20143","CH","City",Active
2286
- "1003129","Dornach","Dornach,Solothurn,Switzerland","20143","CH","City",Active
2287
- "1003130","Dulliken","Dulliken,Solothurn,Switzerland","20143","CH","City",Active
2288
- "1003131","Egerkingen","Egerkingen,Solothurn,Switzerland","20143","CH","City",Active
2289
- "1003132","Grenchen","Grenchen,Solothurn,Switzerland","20143","CH","City",Active
2290
- "1003133","Gretzenbach","Gretzenbach,Solothurn,Switzerland","20143","CH","City",Active
2291
- "1003134","Hagendorf","Hagendorf,Solothurn,Switzerland","20143","CH","City",Active
2292
- "1003135","Kleinlutzel","Kleinlutzel,Solothurn,Switzerland","20143","CH","City",Active
2293
- "1003136","Lengnau","Lengnau,Canton of Bern,Switzerland","20129","CH","City",Active
2294
- "1003137","Oberbuchsiten","Oberbuchsiten,Solothurn,Switzerland","20143","CH","City",Active
2295
- "1003138","Oberdorf","Oberdorf,Solothurn,Switzerland","20143","CH","City",Active
2296
- "1003139","Oensingen","Oensingen,Solothurn,Switzerland","20143","CH","City",Active
2297
- "1003140","Schonenwerd","Schonenwerd,Solothurn,Switzerland","20143","CH","City",Active
2298
- "1003141","Solothurn","Solothurn,Solothurn,Switzerland","20143","CH","City",Active
2299
- "1003142","Zuchwil","Zuchwil,Solothurn,Switzerland","20143","CH","City",Active
2300
- "1003143","Einsiedeln","Einsiedeln,Schwyz,Switzerland","20144","CH","City",Active
2301
- "1003144","Freienbach","Freienbach,Schwyz,Switzerland","20144","CH","City",Active
2302
- "1003145","Galgenen","Galgenen,Schwyz,Switzerland","20144","CH","City",Active
2303
- "1003146","Gersau","Gersau,Schwyz,Switzerland","20144","CH","City",Active
2304
- "1003148","Kussnacht","Kussnacht,Schwyz,Switzerland","20144","CH","City",Active
2305
- "1003149","Schwyz","Schwyz,Schwyz,Switzerland","20144","CH","City",Active
2306
- "1003151","Wollerau","Wollerau,Schwyz,Switzerland","20144","CH","City",Active
2307
- "1003152","Amriswil","Amriswil,Thurgau,Switzerland","20145","CH","City",Active
2308
- "1003153","Arbon","Arbon,Thurgau,Switzerland","20145","CH","City",Active
2309
- "1003154","Bischofszell","Bischofszell,Thurgau,Switzerland","20145","CH","City",Active
2310
- "1003155","Frauenfeld","Frauenfeld,Thurgau,Switzerland","20145","CH","City",Active
2311
- "1003156","Gottlieben","Gottlieben,Thurgau,Switzerland","20145","CH","City",Active
2312
- "1003157","Gachnang","Gachnang,Thurgau,Switzerland","20145","CH","City",Active
2313
- "1003158","Matzingen","Matzingen,Thurgau,Switzerland","20145","CH","City",Active
2314
- "1003159","Pfyn","Pfyn,Thurgau,Switzerland","20145","CH","City",Active
2315
- "1003160","Roggwil","Roggwil,Thurgau,Switzerland","20145","CH","City",Active
2316
- "1003161","Romanshorn","Romanshorn,Thurgau,Switzerland","20145","CH","City",Active
2317
- "1003162","Sirnach","Sirnach,Thurgau,Switzerland","20145","CH","City",Active
2318
- "1003163","Steckborn","Steckborn,Thurgau,Switzerland","20145","CH","City",Active
2319
- "1003164","Wangi","Wangi,Thurgau,Switzerland","20145","CH","City",Active
2320
- "1003165","Weinfelden","Weinfelden,Thurgau,Switzerland","20145","CH","City",Active
2321
- "1003166","Agno","Agno,Ticino,Switzerland","20146","CH","City",Active
2322
- "1003167","Ascona","Ascona,Ticino,Switzerland","20146","CH","City",Active
2323
- "1003168","Balerna","Balerna,Ticino,Switzerland","20146","CH","City",Active
2324
- "1003169","Bellinzona","Bellinzona,Ticino,Switzerland","20146","CH","City",Active
2325
- "1003170","Chiasso","Chiasso,Ticino,Switzerland","20146","CH","City",Active
2326
- "1003171","Giubiasco","Giubiasco,Ticino,Switzerland","20146","CH","City",Active
2327
- "1003172","Ligornetto","Ligornetto,Ticino,Switzerland","20146","CH","City",Active
2328
- "1003173","Losone","Losone,Ticino,Switzerland","20146","CH","City",Active
2329
- "1003174","Lugano","Lugano,Ticino,Switzerland","20146","CH","City",Active
2330
- "1003175","Manno","Manno,Ticino,Switzerland","20146","CH","City",Active
2331
- "1003176","Melide","Melide,Ticino,Switzerland","20146","CH","City",Active
2332
- "1003177","Mendrisio","Mendrisio,Ticino,Switzerland","20146","CH","City",Active
2333
- "1003178","Muralto","Muralto,Ticino,Switzerland","20146","CH","City",Active
2334
- "1003181","Aigle","Aigle,Vaud,Switzerland","20148","CH","City",Active
2335
- "1003182","Aubonne","Aubonne,Vaud,Switzerland","20148","CH","City",Active
2336
- "1003183","Bex","Bex,Vaud,Switzerland","20148","CH","City",Active
2337
- "1003184","Bursins","Bursins,Vaud,Switzerland","20148","CH","City",Active
2338
- "1003185","Chateau-d'Oex","Chateau-d'Oex,Vaud,Switzerland","20148","CH","City",Active
2339
- "1003186","Chavannes-de-Bogis","Chavannes-de-Bogis,Vaud,Switzerland","20148","CH","City",Active
2340
- "1003187","Coppet","Coppet,Vaud,Switzerland","20148","CH","City",Active
2341
- "1003188","Cossonay","Cossonay,Vaud,Switzerland","20148","CH","City",Active
2342
- "1003189","Crissier","Crissier,Vaud,Switzerland","20148","CH","City",Active
2343
- "1003190","Denens","Denens,Vaud,Switzerland","20148","CH","City",Active
2344
- "1003191","Ecublens","Ecublens,Vaud,Switzerland","20148","CH","City",Active
2345
- "1003192","Epalinges","Epalinges,Vaud,Switzerland","20148","CH","City",Active
2346
- "1003193","Founex","Founex,Vaud,Switzerland","20148","CH","City",Active
2347
- "1003194","Gland","Gland,Vaud,Switzerland","20148","CH","City",Active
2348
- "1003195","Henniez","Henniez,Vaud,Switzerland","20148","CH","City",Active
2349
- "1003196","Lausanne","Lausanne,Vaud,Switzerland","20148","CH","City",Active
2350
- "1003197","Le Mont-sur-Lausanne","Le Mont-sur-Lausanne,Vaud,Switzerland","20148","CH","City",Active
2351
- "1003199","Leysin","Leysin,Vaud,Switzerland","20148","CH","City",Active
2352
- "1003200","Lucens","Lucens,Vaud,Switzerland","20148","CH","City",Active
2353
- "1003201","Mies","Mies,Vaud,Switzerland","20148","CH","City",Active
2354
- "1003202","Montreux","Montreux,Vaud,Switzerland","20148","CH","City",Active
2355
- "1003203","Morges","Morges,Vaud,Switzerland","20148","CH","City",Active
2356
- "1003204","Moudon","Moudon,Vaud,Switzerland","20148","CH","City",Active
2357
- "1003205","Nyon","Nyon,Vaud,Switzerland","20148","CH","City",Active
2358
- "1003206","Oron-la-Ville","Oron-la-Ville,Vaud,Switzerland","20148","CH","City",Active
2359
- "1003207","Penthalaz","Penthalaz,Vaud,Switzerland","20148","CH","City",Active
2360
- "1003208","Pompaples","Pompaples,Vaud,Switzerland","20148","CH","City",Active
2361
- "1003209","Prangins","Prangins,Vaud,Switzerland","20148","CH","City",Active
2362
- "1003210","Preverenges","Preverenges,Vaud,Switzerland","20148","CH","City",Active
2363
- "1003211","Prilly","Prilly,Vaud,Switzerland","20148","CH","City",Active
2364
- "1003212","Pully","Pully,Vaud,Switzerland","20148","CH","City",Active
2365
- "1003213","Renens","Renens,Vaud,Switzerland","20148","CH","City",Active
2366
- "1003215","Saint-Sulpice","Saint-Sulpice,Vaud,Switzerland","20148","CH","City",Active
2367
- "1003217","Vevey","Vevey,Vaud,Switzerland","20148","CH","City",Active
2368
- "1003219","Yverdon-les-Bains","Yverdon-les-Bains,Vaud,Switzerland","20148","CH","City",Active
2369
- "1003220","Brig","Brig,Valais,Switzerland","20149","CH","City",Active
2370
- "1003221","Collombey","Collombey,Valais,Switzerland","20149","CH","City",Active
2371
- "1003222","Martigny","Martigny,Valais,Switzerland","20149","CH","City",Active
2372
- "1003223","Crans-Montana","Crans-Montana,Valais,Switzerland","20149","CH","City",Active
2373
- "1003224","Naters","Naters,Valais,Switzerland","20149","CH","City",Active
2374
- "1003225","Saas Fee","Saas Fee,Valais,Switzerland","20149","CH","City",Active
2375
- "1003226","Sierre","Sierre,Valais,Switzerland","20149","CH","City",Active
2376
- "1003227","Sion","Sion,Valais,Switzerland","20149","CH","City",Active
2377
- "1003229","Zermatt","Zermatt,Valais,Switzerland","20149","CH","City",Active
2378
- "1003230","Baar","Baar,Canton of Zug,Switzerland","20150","CH","City",Active
2379
- "1003231","Cham","Cham,Canton of Zug,Switzerland","20150","CH","City",Active
2380
- "1003232","Neuheim","Neuheim,Canton of Zug,Switzerland","20150","CH","City",Active
2381
- "1003233","Risch-Rotkreuz","Risch-Rotkreuz,Canton of Zug,Switzerland","20150","CH","City",Active
2382
- "1003234","Steinhausen","Steinhausen,Canton of Zug,Switzerland","20150","CH","City",Active
2383
- "1003235","Zug","Zug,Canton of Zug,Switzerland","20150","CH","City",Active
2384
- "1003236","Aadorf","Aadorf,Thurgau,Switzerland","20145","CH","City",Active
2385
- "1003237","Adliswil","Adliswil,Zurich,Switzerland","20151","CH","City",Active
2386
- "1003238","Bachenbulach","Bachenbulach,Zurich,Switzerland","20151","CH","City",Active
2387
- "1003239","Bassersdorf","Bassersdorf,Zurich,Switzerland","20151","CH","City",Active
2388
- "1003241","Bonstetten","Bonstetten,Zurich,Switzerland","20151","CH","City",Active
2389
- "1003242","Bremgarten","Bremgarten,Aargau,Switzerland","20126","CH","City",Active
2390
- "1003243","Wangen-Bruttisellen","Wangen-Bruttisellen,Zurich,Switzerland","20151","CH","City",Active
2391
- "1003244","Bubikon","Bubikon,Zurich,Switzerland","20151","CH","City",Active
2392
- "1003245","Bulach","Bulach,Zurich,Switzerland","20151","CH","City",Active
2393
- "1003246","Dielsdorf","Dielsdorf,Zurich,Switzerland","20151","CH","City",Active
2394
- "1003247","Dietikon","Dietikon,Zurich,Switzerland","20151","CH","City",Active
2395
- "1003248","Dubendorf","Dubendorf,Zurich,Switzerland","20151","CH","City",Active
2396
- "1003249","Maur","Maur,Zurich,Switzerland","20151","CH","City",Active
2397
- "1003250","Effretikon","Effretikon,Zurich,Switzerland","20151","CH","City",Active
2398
- "1003251","Egg","Egg,Zurich,Switzerland","20151","CH","City",Active
2399
- "1003252","Eglisau","Eglisau,Switzerland","2756","CH","City",Active
2400
- "1003253","Embrach","Embrach,Zurich,Switzerland","20151","CH","City",Active
2401
- "1003254","Erlenbach","Erlenbach,Zurich,Switzerland","20151","CH","City",Active
2402
- "1003257","Geroldswil","Geroldswil,Zurich,Switzerland","20151","CH","City",Active
2403
- "1003258","Glattfelden","Glattfelden,Zurich,Switzerland","20151","CH","City",Active
2404
- "1003259","Greifensee","Greifensee,Zurich,Switzerland","20151","CH","City",Active
2405
- "1003260","Hedingen","Hedingen,Zurich,Switzerland","20151","CH","City",Active
2406
- "1003261","Hinwil","Hinwil,Zurich,Switzerland","20151","CH","City",Active
2407
- "1003262","Hombrechtikon","Hombrechtikon,Zurich,Switzerland","20151","CH","City",Active
2408
- "1003263","Horgen","Horgen,Zurich,Switzerland","20151","CH","City",Active
2409
- "1003264","Kilchberg","Kilchberg,Zurich,Switzerland","20151","CH","City",Active
2410
- "1003265","Kloten","Kloten,Zurich,Switzerland","20151","CH","City",Active
2411
- "1003267","Mannedorf","Mannedorf,Zurich,Switzerland","20151","CH","City",Active
2412
- "1003269","Meilen","Meilen,Zurich,Switzerland","20151","CH","City",Active
2413
- "1003270","Monchaltorf","Monchaltorf,Zurich,Switzerland","20151","CH","City",Active
2414
- "1003271","Neuhausen am Rheinfall","Neuhausen am Rheinfall,Schaffhausen,Switzerland","20142","CH","City",Active
2415
- "1003273","Opfikon","Opfikon,Zurich,Switzerland","20151","CH","City",Active
2416
- "1003274","Otelfingen","Otelfingen,Zurich,Switzerland","20151","CH","City",Active
2417
- "1003275","Pfaffikon","Pfaffikon,Zurich,Switzerland","20151","CH","City",Active
2418
- "1003276","Regensdorf","Regensdorf,Zurich,Switzerland","20151","CH","City",Active
2419
- "1003277","Richterswil","Richterswil,Zurich,Switzerland","20151","CH","City",Active
2420
- "1003278","Rumlang","Rumlang,Zurich,Switzerland","20151","CH","City",Active
2421
- "1003279","Ruschlikon","Ruschlikon,Zurich,Switzerland","20151","CH","City",Active
2422
- "1003280","Ruti","Ruti,Switzerland","2756","CH","City",Active
2423
- "1003281","Schlieren","Schlieren,Zurich,Switzerland","20151","CH","City",Active
2424
- "1003282","Seuzach","Seuzach,Zurich,Switzerland","20151","CH","City",Active
2425
- "1003283","Stafa","Stafa,Zurich,Switzerland","20151","CH","City",Active
2426
- "1003284","Thalwil","Thalwil,Zurich,Switzerland","20151","CH","City",Active
2427
- "1003285","Turbenthal","Turbenthal,Zurich,Switzerland","20151","CH","City",Active
2428
- "1003286","Uetikon","Uetikon,Zurich,Switzerland","20151","CH","City",Active
2429
- "1003287","Urdorf","Urdorf,Zurich,Switzerland","20151","CH","City",Active
2430
- "1003288","Uster","Uster,Zurich,Switzerland","20151","CH","City",Active
2431
- "1003289","Wadenswil","Wadenswil,Zurich,Switzerland","20151","CH","City",Active
2432
- "1003290","Wallisellen","Wallisellen,Zurich,Switzerland","20151","CH","City",Active
2433
- "1003291","Weisslingen","Weisslingen,Zurich,Switzerland","20151","CH","City",Active
2434
- "1003292","Wetzikon","Wetzikon,Zurich,Switzerland","20151","CH","City",Active
2435
- "1003293","Winterthur","Winterthur,Zurich,Switzerland","20151","CH","City",Active
2436
- "1003294","Zollikon","Zollikon,Zurich,Switzerland","20151","CH","City",Active
2437
- "1003296","Zumikon","Zumikon,Zurich,Switzerland","20151","CH","City",Active
2438
- "1003297","Zurich","Zurich,Zurich,Switzerland","20151","CH","City",Active
2439
- "1003298","Antofagasta","Antofagasta,Antofagasta,Chile","20152","CL","City",Active
2440
- "1003299","Chuquicamata","Chuquicamata,Antofagasta,Chile","20152","CL","Neighborhood",Active
2441
- "1003300","Temuco","Temuco,Araucania,Chile","20153","CL","City",Active
2442
- "1003301","Victoria","Victoria,Araucania,Chile","20153","CL","City",Active
2443
- "1003302","Concepcion","Concepcion,Bio Bio,Chile","20154","CL","City",Active
2444
- "1003303","Los Angeles","Los Angeles,Bio Bio,Chile","20154","CL","City",Active
2445
- "1003304","Talcahuano","Talcahuano,Bio Bio,Chile","20154","CL","City",Active
2446
- "1003305","Algarrobo","Algarrobo,Coquimbo,Chile","20155","CL","Neighborhood",Active
2447
- "1003306","La Serena","La Serena,Coquimbo,Chile","20155","CL","City",Active
2448
- "1003307","Rancagua","Rancagua,O'Higgins,Chile","20156","CL","City",Active
2449
- "1003308","Osorno","Osorno,Los Lagos,Chile","20157","CL","City",Active
2450
- "1003309","Puerto Varas","Puerto Varas,Los Lagos,Chile","20157","CL","City",Active
2451
- "1003310","Valdivia","Valdivia,Los Rios,Chile","9047105","CL","Municipality",Active
2452
- "1003311","Punta Arenas","Punta Arenas,Magallanes and Chilean Antarctica,Chile","20158","CL","City",Active
2453
- "1003312","Curico","Curico,Maule,Chile","20159","CL","City",Active
2454
- "1003313","Talca","Talca,Maule,Chile","20159","CL","City",Active
2455
- "1003314","Conchali","Conchali,Santiago Metropolitan Region,Chile","20160","CL","City",Active
2456
- "1003315","La Cisterna","La Cisterna,Santiago Metropolitan Region,Chile","20160","CL","City",Active
2457
- "1003316","La Florida","La Florida,Santiago Metropolitan Region,Chile","20160","CL","City",Active
2458
- "1003317","Las Condes","Las Condes,Santiago Metropolitan Region,Chile","20160","CL","City",Active
2459
- "1003318","Macul","Macul,Santiago Metropolitan Region,Chile","20160","CL","Municipality",Active
2460
- "1003319","Maipu","Maipu,Santiago Metropolitan Region,Chile","20160","CL","Municipality",Active
2461
- "1003320","Nunoa","Nunoa,Santiago Metropolitan Region,Chile","20160","CL","Municipality",Active
2462
- "1003321","Providencia","Providencia,Santiago Metropolitan Region,Chile","20160","CL","Municipality",Active
2463
- "1003322","Quilicura","Quilicura,Santiago Metropolitan Region,Chile","20160","CL","City",Active
2464
- "1003323","Quinta Normal","Quinta Normal,Santiago Metropolitan Region,Chile","20160","CL","Municipality",Active
2465
- "1003324","San Miguel","San Miguel,Santiago Metropolitan Region,Chile","20160","CL","Municipality",Active
2466
- "1003325","Santiago","Santiago,Santiago Metropolitan Region,Chile","20160","CL","City",Active
2467
- "1003326","Vitacura","Vitacura,Santiago Metropolitan Region,Chile","20160","CL","Municipality",Active
2468
- "1003327","Iquique","Iquique,Tarapaca,Chile","20161","CL","City",Active
2469
- "1003328","Los Andes","Los Andes,Valparaiso,Chile","20162","CL","City",Active
2470
- "1003329","Quillota","Quillota,Valparaiso,Chile","20162","CL","City",Active
2471
- "1003330","San Antonio","San Antonio,Valparaiso,Chile","20162","CL","City",Active
2472
- "1003331","San Fernando","San Fernando,O'Higgins,Chile","20156","CL","City",Active
2473
- "1003332","Valparaiso","Valparaiso,Valparaiso,Chile","20162","CL","City",Active
2474
- "1003333","Vina del Mar","Vina del Mar,Valparaiso,Chile","20162","CL","Municipality",Active
2475
- "1003334","Beijing","Beijing,Beijing,China","20163","CN","City",Active
2476
- "1003338","Tianjin","Tianjin,Tianjin,China","20164","CN","City",Active
2477
- "1003339","Chengde","Chengde,Hebei,China","20165","CN","City",Active
2478
- "1003341","Handan","Handan,Hebei,China","20165","CN","City",Active
2479
- "1003342","Hengshui","Hengshui,Hebei,China","20165","CN","City",Active
2480
- "1003343","Langfang","Langfang,Hebei,China","20165","CN","City",Active
2481
- "1003345","Qinhuangdao","Qinhuangdao,Hebei,China","20165","CN","City",Active
2482
- "1003347","Shijiazhuang","Shijiazhuang,Hebei,China","20165","CN","City",Active
2483
- "1003350","Zhangjiakou","Zhangjiakou,Hebei,China","20165","CN","City",Active
2484
- "1003351","Ankang","Ankang,Shaanxi,China","20189","CN","City",Active
2485
- "1003354","Hanzhong","Hanzhong,Shaanxi,China","20189","CN","City",Active
2486
- "1003355","Jincheng","Jincheng,Shanxi,China","20166","CN","City",Active
2487
- "1003356","Linfen","Linfen,Shanxi,China","20166","CN","City",Active
2488
- "1003358","Sanmenxia","Sanmenxia,Henan,China","20178","CN","City",Active
2489
- "1003362","Taiyuan","Taiyuan,Shanxi,China","20166","CN","City",Active
2490
- "1003363","Tongchuan","Tongchuan,Shaanxi,China","20189","CN","City",Active
2491
- "1003365","Baotou","Baotou,Inner Mongolia,China","20167","CN","City",Active
2492
- "1003366","Chifeng","Chifeng,Inner Mongolia,China","20167","CN","City",Active
2493
- "1003367","Hohhot","Hohhot,Inner Mongolia,China","20167","CN","City",Active
2494
- "1003368","Anshan","Anshan,Liaoning,China","20168","CN","City",Active
2495
- "1003369","Benxi","Benxi,Liaoning,China","20168","CN","City",Active
2496
- "1003370","Chaoyang, Liaoning","Chaoyang, Liaoning,Liaoning,China","20168","CN","City",Active
2497
- "1003371","Dalian","Dalian,Liaoning,China","20168","CN","City",Active
2498
- "1003372","Dandong","Dandong,Liaoning,China","20168","CN","City",Active
2499
- "1003373","Fushun","Fushun,Liaoning,China","20168","CN","City",Active
2500
- "1003374","Fuxin","Fuxin,Liaoning,China","20168","CN","City",Active
2501
- "1003376","Jinzhou","Jinzhou,Liaoning,China","20168","CN","City",Active
2502
- "1003377","Liaoyang","Liaoyang,Liaoning,China","20168","CN","City",Active
2503
- "1003378","Shenyang","Shenyang,Liaoning,China","20168","CN","City",Active
2504
- "1003379","Tieling","Tieling,Liaoning,China","20168","CN","City",Active
2505
- "1003380","Yingkou","Yingkou,Liaoning,China","20168","CN","City",Active
2506
- "1003381","Baicheng","Baicheng,Jilin,China","20169","CN","City",Active
2507
- "1003382","Changchun","Changchun,Jilin,China","20169","CN","City",Active
2508
- "1003384","Jilin City","Jilin City,Jilin,China","20169","CN","City",Active
2509
- "1003385","Liaoyuan","Liaoyuan,Jilin,China","20169","CN","City",Active
2510
- "1003386","Siping","Siping,Jilin,China","20169","CN","City",Active
2511
- "1003387","Tonghua","Tonghua,Jilin,China","20169","CN","City",Active
2512
- "1003390","Harbin","Harbin,Heilongjiang,China","20170","CN","City",Active
2513
- "1003391","Heihe","Heihe,Heilongjiang,China","20170","CN","City",Active
2514
- "1003392","Jiamusi","Jiamusi,Heilongjiang,China","20170","CN","City",Active
2515
- "1003393","Jixi","Jixi,Heilongjiang,China","20170","CN","City",Active
2516
- "1003396","Mudanjiang","Mudanjiang,Heilongjiang,China","20170","CN","City",Active
2517
- "1003397","Qiqihar","Qiqihar,Heilongjiang,China","20170","CN","City",Active
2518
- "1003398","Suihua","Suihua,Heilongjiang,China","20170","CN","City",Active
2519
- "1003401","Shanghai","Shanghai,Shanghai,China","20171","CN","City",Active
2520
- "1003404","Changzhou","Changzhou,Jiangsu,China","20172","CN","City",Active
2521
- "1003405","Huai'an","Huai'an,Jiangsu,China","20172","CN","City",Active
2522
- "1003406","Lianyungang","Lianyungang,Jiangsu,China","20172","CN","City",Active
2523
- "1003407","Nanjing","Nanjing,Jiangsu,China","20172","CN","City",Active
2524
- "1003408","Nantong","Nantong,Jiangsu,China","20172","CN","City",Active
2525
- "1003410","Suqian","Suqian,Jiangsu,China","20172","CN","City",Active
2526
- "1003411","Suzhou","Suzhou,Jiangsu,China","20172","CN","City",Active
2527
- "1003413","Wuxi","Wuxi,Jiangsu,China","20172","CN","City",Active
2528
- "1003414","Xuzhou","Xuzhou,Jiangsu,China","20172","CN","City",Active
2529
- "1003415","Yancheng","Yancheng,Jiangsu,China","20172","CN","City",Active
2530
- "1003416","Yangzhou","Yangzhou,Jiangsu,China","20172","CN","City",Active
2531
- "1003420","Hangzhou","Hangzhou,Zhejiang,China","20173","CN","City",Active
2532
- "1003421","Huzhou","Huzhou,Zhejiang,China","20173","CN","City",Active
2533
- "1003423","Jiaxing","Jiaxing,Zhejiang,China","20173","CN","City",Active
2534
- "1003424","Jinhua","Jinhua,Zhejiang,China","20173","CN","City",Active
2535
- "1003426","Lishui","Lishui,Zhejiang,China","20173","CN","City",Active
2536
- "1003427","Ningbo","Ningbo,Zhejiang,China","20173","CN","City",Active
2537
- "1003429","Shaoxing","Shaoxing,Zhejiang,China","20173","CN","City",Active
2538
- "1003430","Taizhou","Taizhou,Zhejiang,China","20173","CN","City",Active
2539
- "1003431","Wenzhou","Wenzhou,Zhejiang,China","20173","CN","City",Active
2540
- "1003433","Zhoushan","Zhoushan,Zhejiang,China","20173","CN","City",Active
2541
- "1003434","Anqing","Anqing,Anhui,China","20174","CN","City",Active
2542
- "1003435","Bengbu","Bengbu,Anhui,China","20174","CN","City",Active
2543
- "1003436","Chaohu","Chaohu,Anhui,China","20174","CN","City",Active
2544
- "1003437","Chuzhou","Chuzhou,Anhui,China","20174","CN","City",Active
2545
- "1003439","Fuyang","Fuyang,Anhui,China","20174","CN","City",Active
2546
- "1003441","Hefei","Hefei,Anhui,China","20174","CN","City",Active
2547
- "1003442","Huaibei","Huaibei,Anhui,China","20174","CN","City",Active
2548
- "1003443","Huainan","Huainan,Anhui,China","20174","CN","City",Active
2549
- "1003444","Lu'an","Lu'an,Anhui,China","20174","CN","City",Active
2550
- "1003445","Tongling","Tongling,Anhui,China","20174","CN","City",Active
2551
- "1003446","Wuhu","Wuhu,Anhui,China","20174","CN","City",Active
2552
- "1003447","Xuancheng","Xuancheng,Anhui,China","20174","CN","City",Active
2553
- "1003449","Fuzhou","Fuzhou,Fujian,China","20175","CN","City",Active
2554
- "1003450","Longyan","Longyan,Fujian,China","20175","CN","City",Active
2555
- "1003452","Nanping","Nanping,Fujian,China","20175","CN","City",Active
2556
- "1003453","Ningde","Ningde,Fujian,China","20175","CN","City",Active
2557
- "1003455","Putian","Putian,Fujian,China","20175","CN","City",Active
2558
- "1003456","Quanzhou","Quanzhou,Fujian,China","20175","CN","City",Active
2559
- "1003457","Sanming","Sanming,Fujian,China","20175","CN","City",Active
2560
- "1003459","Xiamen","Xiamen,Fujian,China","20175","CN","City",Active
2561
- "1003461","Zhangzhou","Zhangzhou,Fujian,China","20175","CN","City",Active
2562
- "1003464","Ganzhou","Ganzhou,Jiangxi,China","20176","CN","City",Active
2563
- "1003466","Jingdezhen","Jingdezhen,Jiangxi,China","20176","CN","City",Active
2564
- "1003467","Jiujiang","Jiujiang,Jiangxi,China","20176","CN","City",Active
2565
- "1003468","Fuzhou","Fuzhou,Jiangxi,China","20176","CN","City",Active
2566
- "1003469","Nanchang","Nanchang,Jiangxi,China","20176","CN","City",Active
2567
- "1003470","Shangrao","Shangrao,Jiangxi,China","20176","CN","City",Active
2568
- "1003471","Xinyu","Xinyu,Jiangxi,China","20176","CN","City",Active
2569
- "1003472","Yichun","Yichun,Jiangxi,China","20176","CN","City",Active
2570
- "1003473","Yingtan","Yingtan,Jiangxi,China","20176","CN","City",Active
2571
- "1003474","Changzhi","Changzhi,Shanxi,China","20166","CN","City",Active
2572
- "1003475","Dezhou","Dezhou,Shandong,China","20177","CN","City",Active
2573
- "1003476","Dongying","Dongying,Shandong,China","20177","CN","City",Active
2574
- "1003478","Heze","Heze,Shandong,China","20177","CN","City",Active
2575
- "1003480","Jiaozhou City","Jiaozhou City,Shandong,China","20177","CN","City",Active
2576
- "1003481","Jinan","Jinan,Shandong,China","20177","CN","City",Active
2577
- "1003482","Laiwu","Laiwu,Shandong,China","20177","CN","City",Active
2578
- "1003484","Liaocheng","Liaocheng,Shandong,China","20177","CN","City",Active
2579
- "1003485","Linyi","Linyi,Shandong,China","20177","CN","City",Active
2580
- "1003487","Qingdao","Qingdao,Shandong,China","20177","CN","City",Active
2581
- "1003488","Rizhao","Rizhao,Shandong,China","20177","CN","City",Active
2582
- "1003489","Weifang","Weifang,Shandong,China","20177","CN","City",Active
2583
- "1003490","Weihai","Weihai,Shandong,China","20177","CN","City",Active
2584
- "1003491","Yantai","Yantai,Shandong,China","20177","CN","City",Active
2585
- "1003493","Zaozhuang","Zaozhuang,Shandong,China","20177","CN","City",Active
2586
- "1003495","Zibo","Zibo,Shandong,China","20177","CN","City",Active
2587
- "1003496","Anyang","Anyang,Henan,China","20178","CN","City",Active
2588
- "1003497","Hebi","Hebi,Henan,China","20178","CN","City",Active
2589
- "1003499","Jiaozuo","Jiaozuo,Henan,China","20178","CN","City",Active
2590
- "1003501","Kaifeng","Kaifeng,Henan,China","20178","CN","City",Active
2591
- "1003502","Luohe","Luohe,Henan,China","20178","CN","City",Active
2592
- "1003503","Luoyang","Luoyang,Henan,China","20178","CN","City",Active
2593
- "1003504","Nanyang","Nanyang,Henan,China","20178","CN","City",Active
2594
- "1003505","Pingdingshan","Pingdingshan,Henan,China","20178","CN","City",Active
2595
- "1003506","Puyang","Puyang,Henan,China","20178","CN","City",Active
2596
- "1003507","Shangqiu","Shangqiu,Henan,China","20178","CN","City",Active
2597
- "1003508","Xinxiang","Xinxiang,Henan,China","20178","CN","City",Active
2598
- "1003509","Xinyang","Xinyang,Henan,China","20178","CN","City",Active
2599
- "1003510","Xuchang","Xuchang,Henan,China","20178","CN","City",Active
2600
- "1003511","Zhengzhou","Zhengzhou,Henan,China","20178","CN","City",Active
2601
- "1003512","Zhoukou","Zhoukou,Henan,China","20178","CN","City",Active
2602
- "1003513","Zhumadian","Zhumadian,Henan,China","20178","CN","City",Active
2603
- "1003515","Baoding","Baoding,Hebei,China","20165","CN","City",Active
2604
- "1003517","Enshi City","Enshi City,Hubei,China","20179","CN","City",Active
2605
- "1003520","Huanggang","Huanggang,Hubei,China","20179","CN","City",Active
2606
- "1003521","Huangshi","Huangshi,Hubei,China","20179","CN","City",Active
2607
- "1003522","Jingmen","Jingmen,Hubei,China","20179","CN","City",Active
2608
- "1003530","Shiyan","Shiyan,Hubei,China","20179","CN","City",Active
2609
- "1003533","Wuhan","Wuhan,Hubei,China","20179","CN","City",Active
2610
- "1003534","Xiangyang","Xiangyang,Hubei,China","20179","CN","City",Active
2611
- "1003535","Xianning","Xianning,Hubei,China","20179","CN","City",Active
2612
- "1003537","Xiaogan","Xiaogan,Hubei,China","20179","CN","City",Active
2613
- "1003538","Yichang","Yichang,Hubei,China","20179","CN","City",Active
2614
- "1003540","Changde","Changde,Hunan,China","20180","CN","City",Active
2615
- "1003541","Changsha","Changsha,Hunan,China","20180","CN","City",Active
2616
- "1003542","Chenzho