CTX Feed – WooCommerce Product Feed Manager Plugin - Version 4.4.39

Version Description

(2021-11-26) = * Updated: Facebook new attribute added. * Added: Currency attribute has been added. * Fixed: Price suffix changing issue has been solved.

Download this release

Release Info

Developer wahid0003
Plugin Icon 128x128 CTX Feed – WooCommerce Product Feed Manager Plugin
Version 4.4.39
Comparing to
See all releases

Code changes from version 4.4.38 to 4.4.39

README.txt CHANGED
@@ -5,7 +5,7 @@ Tags: Product Feed, WooCommerce, Google Shopping, Google Merchant, Facebook Cata
5
  Requires at least: 4.4
6
  Tested Up To: 5.8.2
7
  Requires PHP: 5.6
8
- Stable tag: 4.4.38
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -517,6 +517,11 @@ Using pro version:
517
 
518
  == Changelog ==
519
 
 
 
 
 
 
520
  = 4.4.38 (2021-11-19) =
521
  * Fixed: Loyalty point attribute for Google shopping template not working issue fixed.
522
  * Fixed: Product sale price override in schema issue fixed.
5
  Requires at least: 4.4
6
  Tested Up To: 5.8.2
7
  Requires PHP: 5.6
8
+ Stable tag: 4.4.39
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
517
 
518
  == Changelog ==
519
 
520
+ = 4.4.39 (2021-11-26) =
521
+ * Updated: Facebook new attribute added.
522
+ * Added: Currency attribute has been added.
523
+ * Fixed: Price suffix changing issue has been solved.
524
+
525
  = 4.4.38 (2021-11-19) =
526
  * Fixed: Loyalty point attribute for Google shopping template not working issue fixed.
527
  * Fixed: Product sale price override in schema issue fixed.
admin/class-woo-feed-admin.php CHANGED
@@ -133,10 +133,21 @@ class Woo_Feed_Admin {
133
  ];
134
 
135
  wp_register_script( $this->woo_feed, plugin_dir_url( __FILE__ ) . 'js/woo-feed-admin' . $ext, $feedScriptDependency, $this->version, false );
136
-
 
 
 
 
 
 
 
 
 
 
137
  $js_opts = array(
138
  'wpf_ajax_url' => admin_url( 'admin-ajax.php' ),
139
  'wpf_debug' => woo_feed_is_debugging_enabled(),
 
140
  'pages' => [
141
  'list' => [
142
  'feed' => esc_url( admin_url( 'admin.php?page=webappick-manage-feeds' ) ),
133
  ];
134
 
135
  wp_register_script( $this->woo_feed, plugin_dir_url( __FILE__ ) . 'js/woo-feed-admin' . $ext, $feedScriptDependency, $this->version, false );
136
+
137
+ //get feed options with which feed is previously generated
138
+ $feed_rules = "";
139
+ if (isset($_GET['feed'])) {
140
+ $filename = str_replace('wf_feed_', '', wp_unslash($_GET['feed']));
141
+ $feed_options = maybe_unserialize(get_option('wf_feed_' . $filename));
142
+ if( isset($feed_options['feedrules']) ) {
143
+ $feed_rules = $feed_options['feedrules'];
144
+ }
145
+ }
146
+
147
  $js_opts = array(
148
  'wpf_ajax_url' => admin_url( 'admin-ajax.php' ),
149
  'wpf_debug' => woo_feed_is_debugging_enabled(),
150
+ "feed_rules" => $feed_rules,
151
  'pages' => [
152
  'list' => [
153
  'feed' => esc_url( admin_url( 'admin.php?page=webappick-manage-feeds' ) ),
admin/css/woo-feed-admin.css CHANGED
File without changes
admin/css/woo-feed-admin.min.css CHANGED
File without changes
admin/css/woo-feed-admin.scss CHANGED
File without changes
admin/js/woo-feed-admin.js CHANGED
@@ -133,9 +133,64 @@
133
  }
134
  }
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  let $copyBtn,
137
  clipboard,
138
  googleCategories,
 
139
  helper = {
140
  in_array: (needle, haystack) => {
141
  try {
@@ -804,6 +859,7 @@
804
  var fancyOption = $(this).parents('tr').find('.fancy-picker-content .fancy-picker-option');
805
  var fancyDataPicker = $(this).parents('tr').find('.fancy-picker-data span');
806
  var selectIf, selectKey;
 
807
 
808
  // when any attribute is selected, pick the key
809
  if( price_attributes.includes(current_attribute_value) ) {
@@ -826,7 +882,6 @@
826
 
827
  // when value dropdown is selected as price or any custom taxonomy
828
  if( selectIf === 'for_custom_taxo' || selectIf === 'for_price' ) {
829
-
830
  // update "Option Type" when select key matches
831
  fancyOption.each(function() {
832
  if( selectKey === $(this).text() ) {
@@ -836,8 +891,20 @@
836
  outputSelect.find("option").val( $(this).data('value') );
837
  }
838
  });
839
- } else if( selectIf === 'for_all' ){
840
 
 
 
 
 
 
 
 
 
 
 
 
 
 
841
  fancyOption.each(function(){
842
  if( selectKey === $(this).text() ){
843
  $(this).addClass('selected');
@@ -847,6 +914,7 @@
847
  }
848
  });
849
 
 
850
  }
851
 
852
  })
@@ -1108,7 +1176,7 @@
1108
  // noinspection JSUnresolvedVariable
1109
  valueColumn.append(`<span style="font-size:x-small;"><a style="color: red" href="https://webappick.com/docs/woo-feed/feed-configuration/how-to-map-store-category-with-merchant-category/" target="_blank">${opts.learn_more}</a></span>`);
1110
 
1111
- if (!googleCategories) {
1112
  valueColumn.append('<span class="spinner is-active" style="margin: 0;"></span>');
1113
  }
1114
 
@@ -1134,11 +1202,29 @@
1134
  } else {
1135
  cb(googleCategories);
1136
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1137
  }
1138
  });
1139
  }
1140
  } else {
1141
- if (attribute.val() !== 'current_category' && valueColumn.find('input.wf_default').length === 0) {
1142
  valueColumn.find('span').remove();
1143
  valueColumn.append('<input autocomplete="off" class="wf_default wf_attributes" type="text" name="default[]" value="">');
1144
 
@@ -1243,7 +1329,14 @@
1243
  $('input[id*="cat_mapping_"]').css('display', 'none');
1244
  $('.wf_default.wf_attributes').css('display', 'block').css('width', '100%');
1245
 
1246
- } else {
 
 
 
 
 
 
 
1247
  $('input[id*="cat_mapping_"]').css('display', 'block');
1248
  $('.wf_default.wf_attributes').css('display', 'none').css('width', '100%');
1249
  }
@@ -1273,30 +1366,15 @@
1273
 
1274
  });
1275
 
1276
- $(document).ready(function (){
1277
-
1278
- wpAjax.send('get_google_categories', {
1279
- type: 'GET',
1280
- data: {
1281
- _ajax_nonce: opts.nonce,
1282
- action: "get_google_categories",
1283
- // provider: provider
1284
- }
1285
- }).then(function (response) {
1286
- $('.selectize-google-category').selectize({
1287
- valueField: 'value',
1288
- labelField: 'text',
1289
- placeholder: 'Select a category',
1290
- searchField: ['value', 'text'],
1291
- options: response,
1292
- render: {
1293
- option: (data, escape) => `<div class="item wapk-selectize-item">${escape(data.value + ' - ' + data.text)}</div>`,
1294
- item: (data, escape) => `<div class="item wapk-selectize-item">${escape(data.value + ' - ' + data.text)}</div>`
1295
- }
1296
- });
1297
- }).fail(helper.ajax_fail);
1298
-
1299
 
 
 
 
 
 
1300
 
1301
  });
1302
 
@@ -1351,6 +1429,16 @@
1351
 
1352
  };
1353
 
 
 
 
 
 
 
 
 
 
 
1354
  $( '.wf_attr.wf_attributes' ).each( function( key, value){
1355
 
1356
  var attribute_value = $(value).val();
@@ -1366,11 +1454,14 @@
1366
 
1367
  $.each(attribute_list, function (_key, _value){
1368
  if( attribute_value === _key ){
1369
- if( $( 'input[name^="suffix"]' ).eq( parseInt( key ) ).val() === '' ){
 
 
1370
  $( 'input[name^="suffix"]' ).eq( parseInt( key ) ).val( ' ' + _value );
 
 
1371
  }
1372
 
1373
-
1374
  }
1375
  });
1376
  } );
133
  }
134
  }
135
 
136
+ /*
137
+ * Handles product categories
138
+ *
139
+ * @since 4.4.39
140
+ * */
141
+ class WooFeedFeedCategories {
142
+ wooFeed_get_google_categories () {
143
+ wpAjax.send('get_google_categories', {
144
+ type: 'GET',
145
+ data: {
146
+ _ajax_nonce: opts.nonce,
147
+ action: "get_google_categories",
148
+ // provider: provider
149
+ }
150
+ }).then(function (response) {
151
+ $('.selectize-google-category').selectize({
152
+ valueField: 'value',
153
+ labelField: 'text',
154
+ placeholder: 'Select a category',
155
+ searchField: ['value', 'text'],
156
+ options: response,
157
+ render: {
158
+ option: (data, escape) => `<div class="item wapk-selectize-item">${escape(data.value + ' - ' + data.text)}</div>`,
159
+ item: (data, escape) => `<div class="item wapk-selectize-item">${escape(data.value + ' - ' + data.text)}</div>`
160
+ }
161
+ });
162
+ }).fail(helper.ajax_fail);
163
+ }
164
+
165
+ wooFeed_get_facebook_categories() {
166
+ // get facebook categories
167
+ wpAjax.send('get_facebook_categories', {
168
+ type: 'GET',
169
+ data: {
170
+ _ajax_nonce: opts.nonce,
171
+ action: "get_facebook_categories",
172
+ // provider: provider
173
+ }
174
+ }).then(function (response) {
175
+ $('.selectize-google-category').selectize({
176
+ valueField: 'value',
177
+ labelField: 'text',
178
+ placeholder: 'Select a Facebook category',
179
+ searchField: ['value', 'text'],
180
+ options: response,
181
+ render: {
182
+ option: (data, escape) => `<div class="item wapk-selectize-item">${escape(data.value + ' - ' + data.text)}</div>`,
183
+ item: (data, escape) => `<div class="item wapk-selectize-item">${escape(data.value + ' - ' + data.text)}</div>`
184
+ }
185
+ });
186
+ }).fail(helper.ajax_fail);
187
+ }
188
+ }
189
+
190
  let $copyBtn,
191
  clipboard,
192
  googleCategories,
193
+ facebookCategories,
194
  helper = {
195
  in_array: (needle, haystack) => {
196
  try {
859
  var fancyOption = $(this).parents('tr').find('.fancy-picker-content .fancy-picker-option');
860
  var fancyDataPicker = $(this).parents('tr').find('.fancy-picker-data span');
861
  var selectIf, selectKey;
862
+ var currency;
863
 
864
  // when any attribute is selected, pick the key
865
  if( price_attributes.includes(current_attribute_value) ) {
882
 
883
  // when value dropdown is selected as price or any custom taxonomy
884
  if( selectIf === 'for_custom_taxo' || selectIf === 'for_price' ) {
 
885
  // update "Option Type" when select key matches
886
  fancyOption.each(function() {
887
  if( selectKey === $(this).text() ) {
891
  outputSelect.find("option").val( $(this).data('value') );
892
  }
893
  });
 
894
 
895
+ if( "for_price" === selectIf ) {
896
+ var feedCurrency = $('#feedCurrency').val();
897
+ if( "undefined" !== typeof feedCurrency && null !== feedCurrency ) {
898
+ currency = feedCurrency;
899
+ }else {
900
+ currency = wpf_ajax_obj.woocommerce.currency;
901
+ }
902
+
903
+ //for price add currency to the suffix
904
+ $(this).closest("tr").find("td:eq(5) input").val(" " + currency);
905
+ }
906
+
907
+ } else {
908
  fancyOption.each(function(){
909
  if( selectKey === $(this).text() ){
910
  $(this).addClass('selected');
914
  }
915
  });
916
 
917
+ $(this).closest("tr").find("td:eq(5) input").val("");
918
  }
919
 
920
  })
1176
  // noinspection JSUnresolvedVariable
1177
  valueColumn.append(`<span style="font-size:x-small;"><a style="color: red" href="https://webappick.com/docs/woo-feed/feed-configuration/how-to-map-store-category-with-merchant-category/" target="_blank">${opts.learn_more}</a></span>`);
1178
 
1179
+ if (!googleCategories || !facebookCategories) {
1180
  valueColumn.append('<span class="spinner is-active" style="margin: 0;"></span>');
1181
  }
1182
 
1202
  } else {
1203
  cb(googleCategories);
1204
  }
1205
+
1206
+ //for facebook product category merchant attribute
1207
+ if (!facebookCategories && "facebook" === provider && "fb_product_category" === attribute.val()) {
1208
+ wpAjax.send('get_facebook_categories', {
1209
+ type: 'GET',
1210
+ data: {
1211
+ _ajax_nonce: opts.nonce,
1212
+ action: "get_facebook_categories",
1213
+ provider: provider
1214
+ }
1215
+ }).then(function (r) {
1216
+ facebookCategories = r;
1217
+ cb(facebookCategories);
1218
+ valueColumn.find('.spinner').remove();
1219
+ }).fail(helper.ajax_fail);
1220
+ } else {
1221
+ cb(facebookCategories);
1222
+ }
1223
  }
1224
  });
1225
  }
1226
  } else {
1227
+ if ( attribute.val() !== 'current_category' && valueColumn.find('input.wf_default').length === 0) {
1228
  valueColumn.find('span').remove();
1229
  valueColumn.append('<input autocomplete="off" class="wf_default wf_attributes" type="text" name="default[]" value="">');
1230
 
1329
  $('input[id*="cat_mapping_"]').css('display', 'none');
1330
  $('.wf_default.wf_attributes').css('display', 'block').css('width', '100%');
1331
 
1332
+ var cat_init = new WooFeedFeedCategories();
1333
+ if( "facebook" === provider ) {
1334
+ cat_init.wooFeed_get_facebook_categories();
1335
+ }else {
1336
+ cat_init.wooFeed_get_google_categories();
1337
+ }
1338
+
1339
+ } else {
1340
  $('input[id*="cat_mapping_"]').css('display', 'block');
1341
  $('.wf_default.wf_attributes').css('display', 'none').css('width', '100%');
1342
  }
1366
 
1367
  });
1368
 
1369
+ $(document).ready(function () {
1370
+ var provider = $("#providers").val();
1371
+ var cat_init = new WooFeedFeedCategories();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1372
 
1373
+ if( "facebook" === provider ) {
1374
+ cat_init.wooFeed_get_facebook_categories();
1375
+ } else {
1376
+ cat_init.wooFeed_get_google_categories();
1377
+ }
1378
 
1379
  });
1380
 
1429
 
1430
  };
1431
 
1432
+ if (typeof wpf_ajax_obj.feed_rules !== 'undefined' && wpf_ajax_obj.feed_rules !== null) {
1433
+ var feed_rules = wpf_ajax_obj.feed_rules;
1434
+ var current_feed_currency = feed_rules.feedCurrency;
1435
+ }
1436
+
1437
+ //get current action name of the page
1438
+ var queryString = window.location.search;
1439
+ var urlParams = new URLSearchParams(queryString);
1440
+ var action = urlParams.get('action');
1441
+
1442
  $( '.wf_attr.wf_attributes' ).each( function( key, value){
1443
 
1444
  var attribute_value = $(value).val();
1454
 
1455
  $.each(attribute_list, function (_key, _value){
1456
  if( attribute_value === _key ){
1457
+ _value = null !== current_feed_currency && "undefined" !== typeof current_feed_currency ? current_feed_currency : _value;
1458
+
1459
+ if( "undefined" !== action && "edit-feed" !== action ) {
1460
  $( 'input[name^="suffix"]' ).eq( parseInt( key ) ).val( ' ' + _value );
1461
+ } else {
1462
+ $( 'input[name^="suffix"]' ).eq( parseInt( key ) ).val( current_Value );
1463
  }
1464
 
 
1465
  }
1466
  });
1467
  } );
admin/js/woo-feed-admin.min.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var o=0;o<t.length;o++){var a=t[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _createClass(e,t,o){return t&&_defineProperties(e.prototype,t),o&&_defineProperties(e,o),e}!function(s,a,c,l,f){s.fn.disabled=function(o){return s(this).each(function(){var e=s(this),t="disabled";void 0!==e.prop(t)?e.prop(t,void 0===o||!0===o):!0===o?e.addClass(t):e.removeClass(t)}),self},s.fn.isDisabled=function(){var e=s(this),t="disabled";return void 0!==e.prop(t)?e.prop(t):e.hasClass(t)};function e(e){s(e.currentTarget).removeClass(function(e,t){return(t.match(/\btooltipped-\S+/g)||[]).join(" ")}).removeClass("tooltipped").removeAttr("aria-label")}function o(e,t){s(e).addClass("tooltipped tooltipped-s").attr("aria-label",t)}function r(e,t){return s.extend(!0,{},e,t)}function t(){n=s(".toClipboard"),!ClipboardJS.isSupported()||/iPhone|iPad/i.test(navigator.userAgent)?n.find("img").hide(0):(n.each(function(){s(this).on("mouseleave",e).on("blur",e)}),new ClipboardJS(".toClipboard").on("error",function(e){var t;o(e.trigger,(t=e.action,e="cut"===t?"X":"C",t=/iPhone|iPad/i.test(navigator.userAgent)?"No support :(":/Mac/i.test(navigator.userAgent)?"Press ⌘-"+e+" to "+t:"Press Ctrl-"+e+" to "+t))}).on("success",function(e){o(e.trigger,"Copied")}))}var n,i,d=function(){function a(e,t,o){_classCallCheck(this,a),this.productCustomFields(e,t,o)}return _createClass(a,[{key:"cacheClear",value:function(){var e={action:"woo_feed_product_attribute_cache_remove",nonce:wpf_ajax_obj.ajax.nonce};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:e})}},{key:"productCustomFields",value:function(t){var o=this,e={action:"woo_feed_custom_fields_status_change",nonce:wpf_ajax_obj.ajax.nonce,field:t,status:1<arguments.length&&void 0!==arguments[1]&&arguments[1],isTaxonomy:2<arguments.length?arguments[2]:void 0};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:e,success:function(e){e.success?o.cacheClear():console.log(e),s("#"+t+"-switcher").closest("td").find(".switch-loader").hide()}})}}]),a}(),_={in_array:function(e,t){try{return-1!==t.indexOf(e)}catch(e){return!1}},selectize_render_item:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.text),"</div>")},ajax_fail:function(e){console.warn(e),alert(e.hasOwnProperty("statusText")&&e.hasOwnProperty("status")?f.ajax.error+"\n"+e.statusText+" ("+e.status+")":e)},sortable:function(e,o,a,n){return(e||s(".sorted_table")).each(function(){var e=s(this),t=e.find("tbody > tr:eq(0) > td").length||a||9;e.wf_sortable(r({containerSelector:"table",itemPath:"> tbody",itemSelector:"tr",handle:"i.wf_sortedtable",placeholder:'<tr class="placeholder"><td colspan="'.concat(t,'"></td></tr>'),onDrop:function(e,t,o,a){e.removeClass(t.group.options.draggedClass).removeAttr("style"),s("body").removeClass(t.group.options.bodyClass),n&&"function"==typeof n&&n(e,t,o,a)}},o))})},selectize:function(e,t){return(e||s("select.selectize")).not(".selectized").not(".selectize-google-category").each(function(){var e=s(this);e.selectize(r({create:e.data("create")||!1,plugins:e.data("plugins")?e.data("plugins").split(",").map(function(e){return e.trim()}):[],render:{item:_.selectize_render_item}},t))})},fancySelect:function(e,t){return(e||s("select.fancySelect")).not(".FancySelectInit").each(function(){s(this).fancySelect(r({maxItemShow:3},t))})},reindex_config_table:function(){s("#table-1").find("tbody tr").each(function(o,e){s(e).find("[name]").each(function(e,t){s(t).attr("name",s(t).attr("name").replace(/(\[\d\])/g,"[".concat(o,"]")))})})},common:function(){_.sortable(s(".sorted_table"),{},9,_.reindex_config_table),_.selectize(),_.fancySelect(s(".outputType"))}},u={form:null,init:function(){this.form=s(".generateFeed"),this.form.length&&(_.common(),s(c).trigger("feed_editor_init"),s(c).trigger(new jQuery.Event("feedEditor.init",{target:this.form})))},renderMerchantInfo:function(o,a,n){for(var e in n)!function(e){var t;n.hasOwnProperty(e)&&(o.find(".merchant-info-section."+e+" .data").html(n[e]),"feed_file_type"===e&&((t=n[e].split(",").map(function(e){return e.trim().toLowerCase()}).filter(function(e){return""!==e&&e!==f.na.toLowerCase()})).length?(a.find("option").removeAttr("selected").each(function(){var e=s(this);e.val()&&!_.in_array(e.val(),t)?e.disabled(!0):e.disabled(!1)}),1===t.length&&a.find('option[value="'+t[0]+'"]').attr("selected","selected")):a.find("option").disabled(!1)))}(e);o.find(".spinner").removeClass("is-active"),a.disabled(!1),a.trigger("change"),s(c).trigger("woo_feed_config_loaded"),a.parent().find(".spinner").removeClass("is-active")},renderMerchantTemplate:function(o,a){for(var e in a)!function(t){var e;a.hasOwnProperty(t)&&("tabs"===t?o.html(a[t]):(e=s('[name="'+t+'"]')).length&&e.each(function(){var e=s(this);e.is("select")?e.find('[value="'+a[t]+'"]').prop("selected",!0):(e.is("[type=checkbox]")||e.is("[type=radio]"))&&e.val()===a[t]?e.prop("checked",!0):e.val(a[t])}).trigger("change"))}(e);u.init()}},p=[],h=[],g=function(){function e(){_classCallCheck(this,e),this._feed=f.generator.feed,this._limit=f.generator.limit,this._progress=0,this._timer=null,this._color=!1,this._total_batch=0,this._current_batch=0,this._product_ids=[],this._progress_per_batch=0,this._refresh=!0,this._regenerate=f.generator.regenerate,a.isRegenerating=!1,this._all_btn=s(".wpf_regenerate"),this._current_btn=s("#".concat(this._feed.replace("wf_config","wf_feed_"))),this._current_btn_label=""}return _createClass(e,[{key:"init",value:function(){var t=this;""!==this._feed&&this._regenerate&&!1===a.isRegenerating&&this.generate();var e=a.location.search;return"webappick-manage-feeds"===new URLSearchParams(e).get("page")&&s("body").addClass("woo-import-popup-body"),s(c).on("click",".woo-feed-campaign-close-button",function(e){e.preventDefault(),s(this).parent(".woo-feed-promotion").hide();e=s(this).data("condition");1===e&&l.post("woo_feed_hide_promotion",{_ajax_nonce:f.nonce,condition:e}).then(function(e){t._log(e)}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red"})}),s(c).on("click",".wpf_regenerate",function(e){e.preventDefault(),t._current_btn=s(this),t._current_btn.hasClass("disabled")||!0===a.isRegenerating||(t._feed=t._current_btn.attr("id").replace("wf_feed_","wf_config"),""!==t._feed&&t.generate())}),this}},{key:"_block_button",value:function(){this._all_btn.length&&this._all_btn.addClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").addClass("wpf_spin reverse_spin"),this._current_btn_label=this._current_btn.attr("title"),this._current_btn.attr("aria-label",f.regenerate).attr("title",f.regenerate))}},{key:"_unblock_button",value:function(){this._all_btn.length&&this._all_btn.removeClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").removeClass("wpf_spin"),this._current_btn.find("span").removeClass("reverse_spin"),this._current_btn.attr("aria-label",this._current_btn_label).attr("title",this._current_btn_label))}},{key:"generate",value:function(){var t=this,o=this;a.isRegenerating=!0,this._block_button(),this._resetProgressBar(),this._progressBarActive(),this._log("Counting Total Products"),this._updateProgressStatus("Fetching products."),this._get_product_ids().then(function(e){t._progress=10,o._log({response:e}),e.success?(o._log("Total ".concat(e.total," Products found.")),o._product_ids=e.product,o._total_batch=t._product_ids.length,o._current_batch=0,o._progress_per_batch=(90-t._progress)/t._total_batch,o._process_batch(),o._updateProgressStatus("Processing Products...")):o._updateProgressStatus(e.data.message)}).fail(function(e){o._log(e),o._updateProgressStatus(e.message),o._color="red",setTimeout(function(){o._stopProgressBar(),o._unblock_button()},1500)})}},{key:"_get_product_ids",value:function(){return this._progress=5,l.post("get_product_information",{_ajax_nonce:f.nonce,feed:this._feed,limit:this._limit})}},{key:"_process_batch",value:function(){var t=this,e="Processing Batch ".concat(this._current_batch+1," of ").concat(this._total_batch);this._updateProgressStatus(e),this._log(e),l.post("make_batch_feed",{_ajax_nonce:f.nonce,feed:this._feed,products:this._product_ids[this._current_batch],loop:this._current_batch}).then(function(e){t._current_batch++,t._log("Batch ".concat(t._current_batch," Completed")),t._log(e),t._current_batch<t._total_batch&&(t._process_batch(),t._progress+=t._progress_per_batch),t._current_batch===t._total_batch&&t._save_feed_file()}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_save_feed_file",value:function(){var t=this;this._log("Saving feed file"),this._updateProgressStatus("Saving feed file"),l.post("save_feed_file",{_ajax_nonce:f.nonce,feed:this._feed}).then(function(e){t._log(e),t._progress=100,t._refresh&&(a.location.href="".concat(f.pages.list.feed,"&link=").concat(e.url,"&cat=").concat(e.cat)),setTimeout(function(){t._stopProgressBar(),setTimeout(function(){t._resetProgressBar(!0),t._unblock_button()},3e3)},2500)}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_log",value:function(e){return f.wpf_debug&&console.log(e),this}},{key:"_progressBarActive",value:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0,t=this;return this._toggleProgressBar(!0),this._timer=setInterval(function(){t._updateProgressBar()},e||1e3),this}},{key:"_stopProgressBar",value:function(){return clearInterval(this._timer),this}},{key:"_resetProgressBar",value:function(e){return this._toggleProgressBar(!1),this._updateProgressStatus(""),clearInterval(this._timer),this._color=!1,this._timer=null,this._progress=0,e&&this._updateProgressBar(),this}},{key:"_toggleProgressBar",value:function(e){var t=s("#feed_progress_table");return e?t.show():t.hide(),this}},{key:"_updateProgressStatus",value:function(e){return s(".feed-progress-status").html(e),this}},{key:"_getErrorMessageByCode",value:function(e){s(".feed-progress-status").css({color:this._color}),s(".feed-progress-percentage").css({color:this._color}),s(".wpf_spin").css({color:this._color});var t=e.status+" : "+e.statusText+". ";500===e.status&&(t+="Please increase your PHP max_execution_time. Please <a target='_blank' href='https://webappick.com/docs/woo-feed/faq-for-woocommerce-product-feed/how-to-solve-processing-10-feed-generation-stuck-error/'>read this doc</a>."),this._updateProgressStatus(t)}},{key:"_updateProgressBar",value:function(){var e=s(".feed-progress-percentage"),t=s(".feed-progress-bar-fill"),o="".concat(Math.round(this._progress),"%");t.css({width:o}),e.text(o)}}]),e}();a.wf={helper:_,feedEditor:u,generator:g},s(a).on("load",function(){null!==s(location).attr("href").match(/webappick.*feed/g)&&s("#wpbody-content").addClass("woofeed-body-content"),t(),postboxes.add_postbox_toggles(pagenow),(new g).init(),""!==f.generator.feed&&f.generator.regenerate,u.init(),_.common(),s(".wfmasterTooltip").hover(function(){var e=s(this),t=e.attr("wftitle");e.data("tipText",t).removeAttr("wftitle"),s('<p class="wftooltip"></p>').text(t).appendTo("body").fadeIn("slow")},function(){var e=s(this);e.attr("wftitle",e.data("tipText")),s(".wftooltip").remove()}).mousemove(function(e){s(".wftooltip").css({top:e.pageY+10,left:e.pageX+20})}),s(".generateFeed").validate(),s(c).on("blur",'input[name="wfDAttributeName"]',function(e){e.preventDefault();e=s(this).val();e=(e=e.toLowerCase()).split(" ").join("_"),s("#wfDAttributeCode").val(e)}).on("click","[data-toggle_slide]",function(e){e.preventDefault(),s(s(this).data("toggle_slide")).slideToggle("fast")}).on("click","#wf_newRow",function(){var e=s("#table-1 tbody"),t=s("#feed_config_template").text().trim().replace(/__idx__/g,e.find("tr").length);e.append(t),_.fancySelect(s(".outputType"))}).on("click",".single-feed-delete",function(e){e.preventDefault(),confirm(f.form.del_confirm)&&(a.location.href=s(this).attr("val"))}).on("click",".wf_clean_cache_wrapper",function(e){e.preventDefault();var e=s(".woo-feed-clean-cache-nonce").val(),t=s(".woo-feed-cache-loader");t.show(),l.post("clear_cache_data",{_ajax_clean_nonce:e}).then(function(e){e.success&&(t.hide(),location.reload())}).fail(function(){console.log("something wrong")})}).on("click","#woo-feed-copy-status-btn",function(e){e.preventDefault();var t=s("#woo-feed-copy-status-btn"),e=s("#woo-feed-status-area");t.val("Copied"),e.css("visibility","visible"),e.select(),c.execCommand("copy")}).on("change",".wf_attr.wf_attributes",function(e){e.preventDefault(),s(".fancy-picker-picked").trigger("click");var t,o=s(this).val(),a=s(this).parents("tr").find(".outputType"),e=s(this).parents("tr").find(".fancy-picker-content .fancy-picker-option"),n=s(this).parents("tr").find(".fancy-picker-data span"),r=["price","current_price","sale_price","price_with_tax","current_price_with_tax","sale_price_with_tax","shipping_cost"].includes(o)?(t="for_price","Price"):""!==o&&-1!==o.indexOf("wf_taxo")?(t="for_custom_taxo","parent_if_empty"):(t="for_all","Default");e.removeClass("selected"),"for_custom_taxo"!==t&&"for_price"!==t&&"for_all"!==t||e.each(function(){r===s(this).text()&&(s(this).addClass("selected"),n.text(r),a.find("option").text(r),a.find("option").val(s(this).data("value")))})}).on("click","#doaction, #doaction2",function(){return confirm(f.form.del_confirm_multi)}).on("change",".dType",function(){var e=s(this),t=e.val(),e=e.closest("tr");"pattern"===t?(e.find(".value_attribute").hide(),e.find(".value_pattern").show()):"attribute"===t?(e.find(".value_attribute").show(),e.find(".value_pattern").hide()):"remove"===t&&(e.find(".value_attribute").hide(),e.find(".value_pattern").hide())}).on("click",".delRow",function(e){e.preventDefault(),s(this).closest("tr").remove(),_.reindex_config_table()}).on("submit","#generateFeed",function(){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(f.form.generate,"</b>"))}).on("submit","#updatefeed",function(e,t){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(t&&t.save?f.form.save:f.form.generate,"</b>"))}).on("ready woo_feed_config_loaded",function(){"0"===s("#ftpenabled").val()?(s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").attr("disabled","disabled")):("google"===s("#provider").val()?s(".google-merchant-message").show("slow"):s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").removeAttr("disabled")),s("#ftpenabled").on("change",function(){"0"===s("#ftpenabled").val()?(s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").attr("disabled","disabled")):(s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").removeAttr("disabled"),"google"===s("#provider").val()?s(".google-merchant-message").show("slow"):s(".google-merchant-message").hide("slow"))})}).on("change",".ftporsftp",function(){var e=s(this).val(),t=s(".ssh2_status");"sftp"===e?(t.show().css("color","dodgerblue").text(f.form.sftp_checking),l.post("get_ssh2_status",{_ajax_nonce:f.nonce,server:e}).then(function(e){"exists"===e?(t.css("color","#2CC185").text(f.form.sftp_available),setTimeout(function(){t.hide()},1500)):t.show().css("color","red").text(f.form.sftp_warning)}).fail(function(e){t.hide(),_.ajax_fail(e)})):t.hide()}).on("click",'[name="save_feed_config"]',function(e){e.preventDefault(),s("#updatefeed").trigger("submit",{save:!0})}).on("change","#provider",function(e){e.preventDefault();var t=s(this).val(),o=s(this).find(":selected").text(),a=s("#filename").val(),n=s("#feedType"),r=s("#providerPage"),i=s("#feed_merchant_info");r.html('<h3><span style="float:none;margin: -3px 0 0;" class="spinner is-active"></span> '+f.form.loading_tmpl+"</h3>"),i.find(".spinner").addClass("is-active"),n.disabled(!0),n.parent().find(".spinner").addClass("is-active"),i.find(".merchant-info-section .data").html(""),p.hasOwnProperty(t)?(u.renderMerchantInfo(i,n,p[t]),s(c).trigger("woo_feed_config_loaded")):l.send("woo_feed_get_merchant_info",{type:"GET",data:{nonce:f.nonce,provider:t,templateName:o}}).then(function(e){p[t]=e,u.renderMerchantInfo(i,n,e)}).then(function(){s(c).trigger("woo_feed_config_loaded")}).fail(_.ajax_fail),h.hasOwnProperty(t)?(u.renderMerchantTemplate(r,h[t]),s(c).trigger("woo_feed_config_loaded")):l.post("get_feed_merchant",{_ajax_nonce:f.nonce,merchant:t}).then(function(e){h[t]=e,u.renderMerchantTemplate(r,e),s("#utm_source").val(o),s("#utm_campaign").val(a),"bing"===t&&(s("#delimiter option").removeAttr("selected"),s('#delimiter option[value="tab"]').attr("selected","selected"),s("#enclosure option").removeAttr("selected"),s('#enclosure option[value=" "]').attr("selected","selected")),"google_product_review"!==t&&s('.wf_attributes option[value="reviewer_name"]').hide()}).then(function(){s(c).trigger("woo_feed_config_loaded")}).fail(_.ajax_fail)}).on("change",".woo_feed_status_input",function(){var e=s(this);l.post("update_feed_status",{_ajax_nonce:f.nonce,feedName:e.val(),status:e[0].checked?1:0})}),s(c).on("change",'[name="is_outOfStock"], [name="product_visibility"]',function(){var e=s(".out-of-stock-visibility");"n"===s('[name="is_outOfStock"]:checked').val()&&"1"===s('[name="product_visibility"]:checked').val()?e.show():e.hide()}).on("change",".attr_type",function(){var e=s(this),t=e.val(),e=e.closest("tr");"pattern"===t?(e.find(".wf_attr").hide(),e.find(".wf_attr").val(""),e.find(".wf_default").show()):(e.find(".wf_attr").show(),e.find(".wf_default").hide(),e.find(".wf_default").val(""))}).on("change",".wf_mattributes, .attr_type",function(){var e=s(this).closest("tr"),t=e.find(".wf_mattributes"),o=e.find(".attr_type"),a=e.find("td:eq(4)"),n=s("#provider").val();f.form.google_category.hasOwnProperty(t.val())&&"pattern"===o.val()&&_.in_array(n,f.form.google_category[t.val()])?0===a.find("select.selectize").length&&(a.find("input.wf_default").remove(),a.append('<span class="wf_default wf_attributes"><select name="default[]" class="selectize"></select></span>'),a.append('<span style="font-size:x-small;"><a style="color: red" href="https://webappick.com/docs/woo-feed/feed-configuration/how-to-map-store-category-with-merchant-category/" target="_blank">'.concat(f.learn_more,"</a></span>")),i||a.append('<span class="spinner is-active" style="margin: 0;"></span>'),e=a.find(".wf_attributes select"),_.selectize(e,{preload:!0,placeholder:f.form.select_category,load:function(e,t){i?t(i):l.send("get_google_categories",{type:"GET",data:{_ajax_nonce:f.nonce,action:"get_google_categories",provider:n}}).then(function(e){t(i=e),a.find(".spinner").remove()}).fail(_.ajax_fail)}})):"current_category"!==t.val()&&0===a.find("input.wf_default").length&&(a.find("span").remove(),a.append('<input autocomplete="off" class="wf_default wf_attributes" type="text" name="default[]" value="">'),"pattern"!==o.val()&&a.find("input.wf_default").hide())}).on("change","#feedType,#provider",function(e){var t=s("#feedType").val(),o=s("#provider").val(),a=s(".itemWrapper"),n=s(".wf_csvtxt");""!==t&&_.in_array(o,f.form.item_wrapper_hidden)&&a.hide(),"feedType"===e.target.id&&("csv"===t||"txt"===t||"tsv"===t?(n.show(),a.hide(),"tsv"===t?s("#delimiter option:last").prop("selected","selected"):"csv"===t&&s("#delimiter option:first").prop("selected","selected")):"xml"===t&&"custom"===o?(a.show(),n.hide()):"json"===t&&n.hide()),"custom"!==o&&a.hide()}).trigger("change"),s(c).on("click",'.woofeed-custom-fields [id*="-switcher"]',function(){s(this).closest("td").find(".switch-loader").show();var e=s(this).attr("id").split("-")[0],t=s(this).data("taxonomy"),o=s(this).prop("checked");new d(e,o,t)}).ready(function(){var e=s(".wapk-feed-buy-now-container");s(a).scroll(function(){s(a).scrollTop()<=5e3?e.addClass("fixed"):e.removeClass("fixed")})})}),s(c).on("click","#woo-feed-debug-log-download",function(e){e.preventDefault(),s("<a />",{download:new Date+".log",href:URL.createObjectURL(new Blob([s("#woo-feed-debug-log").val()],{type:"text/plain"}))}).appendTo("body")[0].click()}).on("keyup","#filename",function(){var e=s("#filename").val();s("#utm_campaign").val(e)}).on("click",".wf-tab-name",function(e){s(".wf-tab-name.activate").removeClass("activate"),s(this).addClass("activate");var t=s(this).attr("for");s(".wf_tabs li.active").removeClass("active"),s(".wf_tabs .wf-tab-content#"+t).parent().addClass("active")}).on("change","#category-mapping-form #providers",function(){var e=s(this).find(":selected").val();-1!==["google","facebook","pinterest","bing","bing_local_inventory","snapchat"].indexOf(e)?(s('input[id*="cat_mapping_"]').css("display","none"),s(".wf_default.wf_attributes").css("display","block").css("width","100%")):(s('input[id*="cat_mapping_"]').css("display","block"),s(".wf_default.wf_attributes").css("display","none").css("width","100%"))}).on("click",'span[id*="cat-map-"]',function(e){e.preventDefault();var o,t=s("#category-mapping-form #providers").val(),a=s(this).attr("id").replace(/[^\d.]/g,""),e="group-child-"+a;-1!==["google","facebook","pinterest","bing","bing_local_inventory","snapchat"].indexOf(t)?(o=s(this).parents("tr").find(".selectized").val())&&s("."+e).parents("tr").find("select").each(function(e,t){s(t).data("selectize").setValue(o)}):(a=s("#cat_mapping_"+a).val(),s("."+e).parents("tr").find("input").val(a))}),s(c).ready(function(){l.send("get_google_categories",{type:"GET",data:{_ajax_nonce:f.nonce,action:"get_google_categories"}}).then(function(e){s(".selectize-google-category").selectize({valueField:"value",labelField:"text",placeholder:"Select a category",searchField:["value","text"],options:e,render:{option:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.value+" - "+e.text),"</div>")},item:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.value+" - "+e.text),"</div>")}}})}).fail(_.ajax_fail)}),s(c).on("feed_editor_init",function(){var t=s(".merchant-info-section.feed_file_type .data").html().split(",").map(function(e){return e.trim().toLowerCase()}),e=s("#feedType");t.length?(e.find("option").each(function(){var e=s(this);e.val()&&!_.in_array(e.val(),t)?e.disabled(!0):e.disabled(!1)}),1===t.length&&e.find('option[value="'+t[0]+'"]').attr("selected","selected")):e.find("option").disabled(!1)}),s(c).on("ready",function(){s(c).on("feedEditor.init",function(){var t;t={price:wpf_ajax_obj.woocommerce.currency,current_price:wpf_ajax_obj.woocommerce.currency,sale_price:wpf_ajax_obj.woocommerce.currency,price_with_tax:wpf_ajax_obj.woocommerce.currency,current_price_with_tax:wpf_ajax_obj.woocommerce.currency,sale_price_with_tax:wpf_ajax_obj.woocommerce.currency,weight:wpf_ajax_obj.woocommerce.weight,weight_unit:wpf_ajax_obj.woocommerce.weight,height:wpf_ajax_obj.woocommerce.dimension,length:wpf_ajax_obj.woocommerce.dimension,width:wpf_ajax_obj.woocommerce.dimension},s(".wf_attr.wf_attributes").each(function(o,e){var a=s(e).val(),e=s('input[name^="suffix"]').eq(parseInt(o)).val();-1!==s.inArray(e,[" "+wpf_ajax_obj.woocommerce.currency," "+wpf_ajax_obj.woocommerce.weight," "+wpf_ajax_obj.woocommerce.dimension])&&s('input[name^="suffix"]').eq(parseInt(o)).val(""),s.each(t,function(e,t){a===e&&""===s('input[name^="suffix"]').eq(parseInt(o)).val()&&s('input[name^="suffix"]').eq(parseInt(o)).val(" "+t)})}),s(c).trigger("feedEditor.after.free.postfix.update")})})}(jQuery,window,document,wp.ajax,wpf_ajax_obj);
2
  //# sourceMappingURL=woo-feed-admin.min.js.map
1
+ "use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var o=0;o<t.length;o++){var a=t[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _createClass(e,t,o){return t&&_defineProperties(e.prototype,t),o&&_defineProperties(e,o),e}!function(s,a,c,l,f){s.fn.disabled=function(o){return s(this).each(function(){var e=s(this),t="disabled";void 0!==e.prop(t)?e.prop(t,void 0===o||!0===o):!0===o?e.addClass(t):e.removeClass(t)}),self},s.fn.isDisabled=function(){var e=s(this),t="disabled";return void 0!==e.prop(t)?e.prop(t):e.hasClass(t)};function e(e){s(e.currentTarget).removeClass(function(e,t){return(t.match(/\btooltipped-\S+/g)||[]).join(" ")}).removeClass("tooltipped").removeAttr("aria-label")}function o(e,t){s(e).addClass("tooltipped tooltipped-s").attr("aria-label",t)}function i(e,t){return s.extend(!0,{},e,t)}function t(){n=s(".toClipboard"),!ClipboardJS.isSupported()||/iPhone|iPad/i.test(navigator.userAgent)?n.find("img").hide(0):(n.each(function(){s(this).on("mouseleave",e).on("blur",e)}),new ClipboardJS(".toClipboard").on("error",function(e){var t;o(e.trigger,(t=e.action,e="cut"===t?"X":"C",t=/iPhone|iPad/i.test(navigator.userAgent)?"No support :(":/Mac/i.test(navigator.userAgent)?"Press ⌘-"+e+" to "+t:"Press Ctrl-"+e+" to "+t))}).on("success",function(e){o(e.trigger,"Copied")}))}var n,r,d,_=function(){function a(e,t,o){_classCallCheck(this,a),this.productCustomFields(e,t,o)}return _createClass(a,[{key:"cacheClear",value:function(){var e={action:"woo_feed_product_attribute_cache_remove",nonce:wpf_ajax_obj.ajax.nonce};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:e})}},{key:"productCustomFields",value:function(t){var o=this,e={action:"woo_feed_custom_fields_status_change",nonce:wpf_ajax_obj.ajax.nonce,field:t,status:1<arguments.length&&void 0!==arguments[1]&&arguments[1],isTaxonomy:2<arguments.length?arguments[2]:void 0};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:e,success:function(e){e.success?o.cacheClear():console.log(e),s("#"+t+"-switcher").closest("td").find(".switch-loader").hide()}})}}]),a}(),u=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:"wooFeed_get_google_categories",value:function(){l.send("get_google_categories",{type:"GET",data:{_ajax_nonce:f.nonce,action:"get_google_categories"}}).then(function(e){s(".selectize-google-category").selectize({valueField:"value",labelField:"text",placeholder:"Select a category",searchField:["value","text"],options:e,render:{option:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.value+" - "+e.text),"</div>")},item:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.value+" - "+e.text),"</div>")}}})}).fail(p.ajax_fail)}},{key:"wooFeed_get_facebook_categories",value:function(){l.send("get_facebook_categories",{type:"GET",data:{_ajax_nonce:f.nonce,action:"get_facebook_categories"}}).then(function(e){s(".selectize-google-category").selectize({valueField:"value",labelField:"text",placeholder:"Select a Facebook category",searchField:["value","text"],options:e,render:{option:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.value+" - "+e.text),"</div>")},item:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.value+" - "+e.text),"</div>")}}})}).fail(p.ajax_fail)}}]),e}(),p={in_array:function(e,t){try{return-1!==t.indexOf(e)}catch(e){return!1}},selectize_render_item:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.text),"</div>")},ajax_fail:function(e){console.warn(e),alert(e.hasOwnProperty("statusText")&&e.hasOwnProperty("status")?f.ajax.error+"\n"+e.statusText+" ("+e.status+")":e)},sortable:function(e,o,a,n){return(e||s(".sorted_table")).each(function(){var e=s(this),t=e.find("tbody > tr:eq(0) > td").length||a||9;e.wf_sortable(i({containerSelector:"table",itemPath:"> tbody",itemSelector:"tr",handle:"i.wf_sortedtable",placeholder:'<tr class="placeholder"><td colspan="'.concat(t,'"></td></tr>'),onDrop:function(e,t,o,a){e.removeClass(t.group.options.draggedClass).removeAttr("style"),s("body").removeClass(t.group.options.bodyClass),n&&"function"==typeof n&&n(e,t,o,a)}},o))})},selectize:function(e,t){return(e||s("select.selectize")).not(".selectized").not(".selectize-google-category").each(function(){var e=s(this);e.selectize(i({create:e.data("create")||!1,plugins:e.data("plugins")?e.data("plugins").split(",").map(function(e){return e.trim()}):[],render:{item:p.selectize_render_item}},t))})},fancySelect:function(e,t){return(e||s("select.fancySelect")).not(".FancySelectInit").each(function(){s(this).fancySelect(i({maxItemShow:3},t))})},reindex_config_table:function(){s("#table-1").find("tbody tr").each(function(o,e){s(e).find("[name]").each(function(e,t){s(t).attr("name",s(t).attr("name").replace(/(\[\d\])/g,"[".concat(o,"]")))})})},common:function(){p.sortable(s(".sorted_table"),{},9,p.reindex_config_table),p.selectize(),p.fancySelect(s(".outputType"))}},h={form:null,init:function(){this.form=s(".generateFeed"),this.form.length&&(p.common(),s(c).trigger("feed_editor_init"),s(c).trigger(new jQuery.Event("feedEditor.init",{target:this.form})))},renderMerchantInfo:function(o,a,n){for(var e in n)!function(e){var t;n.hasOwnProperty(e)&&(o.find(".merchant-info-section."+e+" .data").html(n[e]),"feed_file_type"===e&&((t=n[e].split(",").map(function(e){return e.trim().toLowerCase()}).filter(function(e){return""!==e&&e!==f.na.toLowerCase()})).length?(a.find("option").removeAttr("selected").each(function(){var e=s(this);e.val()&&!p.in_array(e.val(),t)?e.disabled(!0):e.disabled(!1)}),1===t.length&&a.find('option[value="'+t[0]+'"]').attr("selected","selected")):a.find("option").disabled(!1)))}(e);o.find(".spinner").removeClass("is-active"),a.disabled(!1),a.trigger("change"),s(c).trigger("woo_feed_config_loaded"),a.parent().find(".spinner").removeClass("is-active")},renderMerchantTemplate:function(o,a){for(var e in a)!function(t){var e;a.hasOwnProperty(t)&&("tabs"===t?o.html(a[t]):(e=s('[name="'+t+'"]')).length&&e.each(function(){var e=s(this);e.is("select")?e.find('[value="'+a[t]+'"]').prop("selected",!0):(e.is("[type=checkbox]")||e.is("[type=radio]"))&&e.val()===a[t]?e.prop("checked",!0):e.val(a[t])}).trigger("change"))}(e);h.init()}},g=[],v=[],m=function(){function e(){_classCallCheck(this,e),this._feed=f.generator.feed,this._limit=f.generator.limit,this._progress=0,this._timer=null,this._color=!1,this._total_batch=0,this._current_batch=0,this._product_ids=[],this._progress_per_batch=0,this._refresh=!0,this._regenerate=f.generator.regenerate,a.isRegenerating=!1,this._all_btn=s(".wpf_regenerate"),this._current_btn=s("#".concat(this._feed.replace("wf_config","wf_feed_"))),this._current_btn_label=""}return _createClass(e,[{key:"init",value:function(){var t=this;""!==this._feed&&this._regenerate&&!1===a.isRegenerating&&this.generate();var e=a.location.search;return"webappick-manage-feeds"===new URLSearchParams(e).get("page")&&s("body").addClass("woo-import-popup-body"),s(c).on("click",".woo-feed-campaign-close-button",function(e){e.preventDefault(),s(this).parent(".woo-feed-promotion").hide();e=s(this).data("condition");1===e&&l.post("woo_feed_hide_promotion",{_ajax_nonce:f.nonce,condition:e}).then(function(e){t._log(e)}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red"})}),s(c).on("click",".wpf_regenerate",function(e){e.preventDefault(),t._current_btn=s(this),t._current_btn.hasClass("disabled")||!0===a.isRegenerating||(t._feed=t._current_btn.attr("id").replace("wf_feed_","wf_config"),""!==t._feed&&t.generate())}),this}},{key:"_block_button",value:function(){this._all_btn.length&&this._all_btn.addClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").addClass("wpf_spin reverse_spin"),this._current_btn_label=this._current_btn.attr("title"),this._current_btn.attr("aria-label",f.regenerate).attr("title",f.regenerate))}},{key:"_unblock_button",value:function(){this._all_btn.length&&this._all_btn.removeClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").removeClass("wpf_spin"),this._current_btn.find("span").removeClass("reverse_spin"),this._current_btn.attr("aria-label",this._current_btn_label).attr("title",this._current_btn_label))}},{key:"generate",value:function(){var t=this,o=this;a.isRegenerating=!0,this._block_button(),this._resetProgressBar(),this._progressBarActive(),this._log("Counting Total Products"),this._updateProgressStatus("Fetching products."),this._get_product_ids().then(function(e){t._progress=10,o._log({response:e}),e.success?(o._log("Total ".concat(e.total," Products found.")),o._product_ids=e.product,o._total_batch=t._product_ids.length,o._current_batch=0,o._progress_per_batch=(90-t._progress)/t._total_batch,o._process_batch(),o._updateProgressStatus("Processing Products...")):o._updateProgressStatus(e.data.message)}).fail(function(e){o._log(e),o._updateProgressStatus(e.message),o._color="red",setTimeout(function(){o._stopProgressBar(),o._unblock_button()},1500)})}},{key:"_get_product_ids",value:function(){return this._progress=5,l.post("get_product_information",{_ajax_nonce:f.nonce,feed:this._feed,limit:this._limit})}},{key:"_process_batch",value:function(){var t=this,e="Processing Batch ".concat(this._current_batch+1," of ").concat(this._total_batch);this._updateProgressStatus(e),this._log(e),l.post("make_batch_feed",{_ajax_nonce:f.nonce,feed:this._feed,products:this._product_ids[this._current_batch],loop:this._current_batch}).then(function(e){t._current_batch++,t._log("Batch ".concat(t._current_batch," Completed")),t._log(e),t._current_batch<t._total_batch&&(t._process_batch(),t._progress+=t._progress_per_batch),t._current_batch===t._total_batch&&t._save_feed_file()}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_save_feed_file",value:function(){var t=this;this._log("Saving feed file"),this._updateProgressStatus("Saving feed file"),l.post("save_feed_file",{_ajax_nonce:f.nonce,feed:this._feed}).then(function(e){t._log(e),t._progress=100,t._refresh&&(a.location.href="".concat(f.pages.list.feed,"&link=").concat(e.url,"&cat=").concat(e.cat)),setTimeout(function(){t._stopProgressBar(),setTimeout(function(){t._resetProgressBar(!0),t._unblock_button()},3e3)},2500)}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_log",value:function(e){return f.wpf_debug&&console.log(e),this}},{key:"_progressBarActive",value:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0,t=this;return this._toggleProgressBar(!0),this._timer=setInterval(function(){t._updateProgressBar()},e||1e3),this}},{key:"_stopProgressBar",value:function(){return clearInterval(this._timer),this}},{key:"_resetProgressBar",value:function(e){return this._toggleProgressBar(!1),this._updateProgressStatus(""),clearInterval(this._timer),this._color=!1,this._timer=null,this._progress=0,e&&this._updateProgressBar(),this}},{key:"_toggleProgressBar",value:function(e){var t=s("#feed_progress_table");return e?t.show():t.hide(),this}},{key:"_updateProgressStatus",value:function(e){return s(".feed-progress-status").html(e),this}},{key:"_getErrorMessageByCode",value:function(e){s(".feed-progress-status").css({color:this._color}),s(".feed-progress-percentage").css({color:this._color}),s(".wpf_spin").css({color:this._color});var t=e.status+" : "+e.statusText+". ";500===e.status&&(t+="Please increase your PHP max_execution_time. Please <a target='_blank' href='https://webappick.com/docs/woo-feed/faq-for-woocommerce-product-feed/how-to-solve-processing-10-feed-generation-stuck-error/'>read this doc</a>."),this._updateProgressStatus(t)}},{key:"_updateProgressBar",value:function(){var e=s(".feed-progress-percentage"),t=s(".feed-progress-bar-fill"),o="".concat(Math.round(this._progress),"%");t.css({width:o}),e.text(o)}}]),e}();a.wf={helper:p,feedEditor:h,generator:m},s(a).on("load",function(){null!==s(location).attr("href").match(/webappick.*feed/g)&&s("#wpbody-content").addClass("woofeed-body-content"),t(),postboxes.add_postbox_toggles(pagenow),(new m).init(),""!==f.generator.feed&&f.generator.regenerate,h.init(),p.common(),s(".wfmasterTooltip").hover(function(){var e=s(this),t=e.attr("wftitle");e.data("tipText",t).removeAttr("wftitle"),s('<p class="wftooltip"></p>').text(t).appendTo("body").fadeIn("slow")},function(){var e=s(this);e.attr("wftitle",e.data("tipText")),s(".wftooltip").remove()}).mousemove(function(e){s(".wftooltip").css({top:e.pageY+10,left:e.pageX+20})}),s(".generateFeed").validate(),s(c).on("blur",'input[name="wfDAttributeName"]',function(e){e.preventDefault();e=s(this).val();e=(e=e.toLowerCase()).split(" ").join("_"),s("#wfDAttributeCode").val(e)}).on("click","[data-toggle_slide]",function(e){e.preventDefault(),s(s(this).data("toggle_slide")).slideToggle("fast")}).on("click","#wf_newRow",function(){var e=s("#table-1 tbody"),t=s("#feed_config_template").text().trim().replace(/__idx__/g,e.find("tr").length);e.append(t),p.fancySelect(s(".outputType"))}).on("click",".single-feed-delete",function(e){e.preventDefault(),confirm(f.form.del_confirm)&&(a.location.href=s(this).attr("val"))}).on("click",".wf_clean_cache_wrapper",function(e){e.preventDefault();var e=s(".woo-feed-clean-cache-nonce").val(),t=s(".woo-feed-cache-loader");t.show(),l.post("clear_cache_data",{_ajax_clean_nonce:e}).then(function(e){e.success&&(t.hide(),location.reload())}).fail(function(){console.log("something wrong")})}).on("click","#woo-feed-copy-status-btn",function(e){e.preventDefault();var t=s("#woo-feed-copy-status-btn"),e=s("#woo-feed-status-area");t.val("Copied"),e.css("visibility","visible"),e.select(),c.execCommand("copy")}).on("change",".wf_attr.wf_attributes",function(e){e.preventDefault(),s(".fancy-picker-picked").trigger("click");var t,o=s(this).val(),a=s(this).parents("tr").find(".outputType"),e=s(this).parents("tr").find(".fancy-picker-content .fancy-picker-option"),n=s(this).parents("tr").find(".fancy-picker-data span"),i=["price","current_price","sale_price","price_with_tax","current_price_with_tax","sale_price_with_tax","shipping_cost"].includes(o)?(t="for_price","Price"):""!==o&&-1!==o.indexOf("wf_taxo")?(t="for_custom_taxo","parent_if_empty"):(t="for_all","Default");e.removeClass("selected"),"for_custom_taxo"===t||"for_price"===t?(e.each(function(){i===s(this).text()&&(s(this).addClass("selected"),n.text(i),a.find("option").text(i),a.find("option").val(s(this).data("value")))}),"for_price"===t&&(t=null!=(t=s("#feedCurrency").val())?t:wpf_ajax_obj.woocommerce.currency,s(this).closest("tr").find("td:eq(5) input").val(" "+t))):(e.each(function(){i===s(this).text()&&(s(this).addClass("selected"),n.text(i),a.find("option").text(i),a.find("option").val(s(this).data("value")))}),s(this).closest("tr").find("td:eq(5) input").val(""))}).on("click","#doaction, #doaction2",function(){return confirm(f.form.del_confirm_multi)}).on("change",".dType",function(){var e=s(this),t=e.val(),e=e.closest("tr");"pattern"===t?(e.find(".value_attribute").hide(),e.find(".value_pattern").show()):"attribute"===t?(e.find(".value_attribute").show(),e.find(".value_pattern").hide()):"remove"===t&&(e.find(".value_attribute").hide(),e.find(".value_pattern").hide())}).on("click",".delRow",function(e){e.preventDefault(),s(this).closest("tr").remove(),p.reindex_config_table()}).on("submit","#generateFeed",function(){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(f.form.generate,"</b>"))}).on("submit","#updatefeed",function(e,t){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(t&&t.save?f.form.save:f.form.generate,"</b>"))}).on("ready woo_feed_config_loaded",function(){"0"===s("#ftpenabled").val()?(s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").attr("disabled","disabled")):("google"===s("#provider").val()?s(".google-merchant-message").show("slow"):s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").removeAttr("disabled")),s("#ftpenabled").on("change",function(){"0"===s("#ftpenabled").val()?(s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").attr("disabled","disabled")):(s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").removeAttr("disabled"),"google"===s("#provider").val()?s(".google-merchant-message").show("slow"):s(".google-merchant-message").hide("slow"))})}).on("change",".ftporsftp",function(){var e=s(this).val(),t=s(".ssh2_status");"sftp"===e?(t.show().css("color","dodgerblue").text(f.form.sftp_checking),l.post("get_ssh2_status",{_ajax_nonce:f.nonce,server:e}).then(function(e){"exists"===e?(t.css("color","#2CC185").text(f.form.sftp_available),setTimeout(function(){t.hide()},1500)):t.show().css("color","red").text(f.form.sftp_warning)}).fail(function(e){t.hide(),p.ajax_fail(e)})):t.hide()}).on("click",'[name="save_feed_config"]',function(e){e.preventDefault(),s("#updatefeed").trigger("submit",{save:!0})}).on("change","#provider",function(e){e.preventDefault();var t=s(this).val(),o=s(this).find(":selected").text(),a=s("#filename").val(),n=s("#feedType"),i=s("#providerPage"),r=s("#feed_merchant_info");i.html('<h3><span style="float:none;margin: -3px 0 0;" class="spinner is-active"></span> '+f.form.loading_tmpl+"</h3>"),r.find(".spinner").addClass("is-active"),n.disabled(!0),n.parent().find(".spinner").addClass("is-active"),r.find(".merchant-info-section .data").html(""),g.hasOwnProperty(t)?(h.renderMerchantInfo(r,n,g[t]),s(c).trigger("woo_feed_config_loaded")):l.send("woo_feed_get_merchant_info",{type:"GET",data:{nonce:f.nonce,provider:t,templateName:o}}).then(function(e){g[t]=e,h.renderMerchantInfo(r,n,e)}).then(function(){s(c).trigger("woo_feed_config_loaded")}).fail(p.ajax_fail),v.hasOwnProperty(t)?(h.renderMerchantTemplate(i,v[t]),s(c).trigger("woo_feed_config_loaded")):l.post("get_feed_merchant",{_ajax_nonce:f.nonce,merchant:t}).then(function(e){v[t]=e,h.renderMerchantTemplate(i,e),s("#utm_source").val(o),s("#utm_campaign").val(a),"bing"===t&&(s("#delimiter option").removeAttr("selected"),s('#delimiter option[value="tab"]').attr("selected","selected"),s("#enclosure option").removeAttr("selected"),s('#enclosure option[value=" "]').attr("selected","selected")),"google_product_review"!==t&&s('.wf_attributes option[value="reviewer_name"]').hide()}).then(function(){s(c).trigger("woo_feed_config_loaded")}).fail(p.ajax_fail)}).on("change",".woo_feed_status_input",function(){var e=s(this);l.post("update_feed_status",{_ajax_nonce:f.nonce,feedName:e.val(),status:e[0].checked?1:0})}),s(c).on("change",'[name="is_outOfStock"], [name="product_visibility"]',function(){var e=s(".out-of-stock-visibility");"n"===s('[name="is_outOfStock"]:checked').val()&&"1"===s('[name="product_visibility"]:checked').val()?e.show():e.hide()}).on("change",".attr_type",function(){var e=s(this),t=e.val(),e=e.closest("tr");"pattern"===t?(e.find(".wf_attr").hide(),e.find(".wf_attr").val(""),e.find(".wf_default").show()):(e.find(".wf_attr").show(),e.find(".wf_default").hide(),e.find(".wf_default").val(""))}).on("change",".wf_mattributes, .attr_type",function(){var e=s(this).closest("tr"),o=e.find(".wf_mattributes"),t=e.find(".attr_type"),a=e.find("td:eq(4)"),n=s("#provider").val();f.form.google_category.hasOwnProperty(o.val())&&"pattern"===t.val()&&p.in_array(n,f.form.google_category[o.val()])?0===a.find("select.selectize").length&&(a.find("input.wf_default").remove(),a.append('<span class="wf_default wf_attributes"><select name="default[]" class="selectize"></select></span>'),a.append('<span style="font-size:x-small;"><a style="color: red" href="https://webappick.com/docs/woo-feed/feed-configuration/how-to-map-store-category-with-merchant-category/" target="_blank">'.concat(f.learn_more,"</a></span>")),r&&d||a.append('<span class="spinner is-active" style="margin: 0;"></span>'),e=a.find(".wf_attributes select"),p.selectize(e,{preload:!0,placeholder:f.form.select_category,load:function(e,t){r?t(r):l.send("get_google_categories",{type:"GET",data:{_ajax_nonce:f.nonce,action:"get_google_categories",provider:n}}).then(function(e){t(r=e),a.find(".spinner").remove()}).fail(p.ajax_fail),d||"facebook"!==n||"fb_product_category"!==o.val()?t(d):l.send("get_facebook_categories",{type:"GET",data:{_ajax_nonce:f.nonce,action:"get_facebook_categories",provider:n}}).then(function(e){t(d=e),a.find(".spinner").remove()}).fail(p.ajax_fail)}})):"current_category"!==o.val()&&0===a.find("input.wf_default").length&&(a.find("span").remove(),a.append('<input autocomplete="off" class="wf_default wf_attributes" type="text" name="default[]" value="">'),"pattern"!==t.val()&&a.find("input.wf_default").hide())}).on("change","#feedType,#provider",function(e){var t=s("#feedType").val(),o=s("#provider").val(),a=s(".itemWrapper"),n=s(".wf_csvtxt");""!==t&&p.in_array(o,f.form.item_wrapper_hidden)&&a.hide(),"feedType"===e.target.id&&("csv"===t||"txt"===t||"tsv"===t?(n.show(),a.hide(),"tsv"===t?s("#delimiter option:last").prop("selected","selected"):"csv"===t&&s("#delimiter option:first").prop("selected","selected")):"xml"===t&&"custom"===o?(a.show(),n.hide()):"json"===t&&n.hide()),"custom"!==o&&a.hide()}).trigger("change"),s(c).on("click",'.woofeed-custom-fields [id*="-switcher"]',function(){s(this).closest("td").find(".switch-loader").show();var e=s(this).attr("id").split("-")[0],t=s(this).data("taxonomy"),o=s(this).prop("checked");new _(e,o,t)}).ready(function(){var e=s(".wapk-feed-buy-now-container");s(a).scroll(function(){s(a).scrollTop()<=5e3?e.addClass("fixed"):e.removeClass("fixed")})})}),s(c).on("click","#woo-feed-debug-log-download",function(e){e.preventDefault(),s("<a />",{download:new Date+".log",href:URL.createObjectURL(new Blob([s("#woo-feed-debug-log").val()],{type:"text/plain"}))}).appendTo("body")[0].click()}).on("keyup","#filename",function(){var e=s("#filename").val();s("#utm_campaign").val(e)}).on("click",".wf-tab-name",function(e){s(".wf-tab-name.activate").removeClass("activate"),s(this).addClass("activate");var t=s(this).attr("for");s(".wf_tabs li.active").removeClass("active"),s(".wf_tabs .wf-tab-content#"+t).parent().addClass("active")}).on("change","#category-mapping-form #providers",function(){var e,t=s(this).find(":selected").val();-1!==["google","facebook","pinterest","bing","bing_local_inventory","snapchat"].indexOf(t)?(s('input[id*="cat_mapping_"]').css("display","none"),s(".wf_default.wf_attributes").css("display","block").css("width","100%"),e=new u,"facebook"===t?e.wooFeed_get_facebook_categories():e.wooFeed_get_google_categories()):(s('input[id*="cat_mapping_"]').css("display","block"),s(".wf_default.wf_attributes").css("display","none").css("width","100%"))}).on("click",'span[id*="cat-map-"]',function(e){e.preventDefault();var o,t=s("#category-mapping-form #providers").val(),a=s(this).attr("id").replace(/[^\d.]/g,""),e="group-child-"+a;-1!==["google","facebook","pinterest","bing","bing_local_inventory","snapchat"].indexOf(t)?(o=s(this).parents("tr").find(".selectized").val())&&s("."+e).parents("tr").find("select").each(function(e,t){s(t).data("selectize").setValue(o)}):(a=s("#cat_mapping_"+a).val(),s("."+e).parents("tr").find("input").val(a))}),s(c).ready(function(){var e=s("#providers").val(),t=new u;"facebook"===e?t.wooFeed_get_facebook_categories():t.wooFeed_get_google_categories()}),s(c).on("feed_editor_init",function(){var t=s(".merchant-info-section.feed_file_type .data").html().split(",").map(function(e){return e.trim().toLowerCase()}),e=s("#feedType");t.length?(e.find("option").each(function(){var e=s(this);e.val()&&!p.in_array(e.val(),t)?e.disabled(!0):e.disabled(!1)}),1===t.length&&e.find('option[value="'+t[0]+'"]').attr("selected","selected")):e.find("option").disabled(!1)}),s(c).on("ready",function(){s(c).on("feedEditor.init",function(){!function(){var i,t={price:wpf_ajax_obj.woocommerce.currency,current_price:wpf_ajax_obj.woocommerce.currency,sale_price:wpf_ajax_obj.woocommerce.currency,price_with_tax:wpf_ajax_obj.woocommerce.currency,current_price_with_tax:wpf_ajax_obj.woocommerce.currency,sale_price_with_tax:wpf_ajax_obj.woocommerce.currency,weight:wpf_ajax_obj.woocommerce.weight,weight_unit:wpf_ajax_obj.woocommerce.weight,height:wpf_ajax_obj.woocommerce.dimension,length:wpf_ajax_obj.woocommerce.dimension,width:wpf_ajax_obj.woocommerce.dimension};void 0!==wpf_ajax_obj.feed_rules&&null!==wpf_ajax_obj.feed_rules&&(i=wpf_ajax_obj.feed_rules.feedCurrency);var e=a.location.search,r=new URLSearchParams(e).get("action");s(".wf_attr.wf_attributes").each(function(o,e){var a=s(e).val(),n=s('input[name^="suffix"]').eq(parseInt(o)).val();-1!==s.inArray(n,[" "+wpf_ajax_obj.woocommerce.currency," "+wpf_ajax_obj.woocommerce.weight," "+wpf_ajax_obj.woocommerce.dimension])&&s('input[name^="suffix"]').eq(parseInt(o)).val(""),s.each(t,function(e,t){a===e&&(t=null!=i?i:t,"undefined"!==r&&"edit-feed"!==r?s('input[name^="suffix"]').eq(parseInt(o)).val(" "+t):s('input[name^="suffix"]').eq(parseInt(o)).val(n))})}),s(c).trigger("feedEditor.after.free.postfix.update")}()})})}(jQuery,window,document,wp.ajax,wpf_ajax_obj);
2
  //# sourceMappingURL=woo-feed-admin.min.js.map
admin/js/woo-feed-admin.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["woo-feed-admin.js"],"names":["_defineProperties","target","props","descriptor","i","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","window","wpAjax","$","document","opts","self","prop","status","addClass","removeClass","hasClass","currentTarget","clearTooltip","userAgent","actionMsg","match","actionKey","index","join","removeAttr","elem","attr","msg","extend","_default","_args","clip","$copyBtn","ClipboardJS","isSupported","test","navigator","feedGenerator","this","on","action","showTooltip","event","trigger","wpf_ajax_obj","success","url","data","_classCallCheck","WooFeedCustomFields","productCustomFields","field","isTaxonomy","value","ajax","nonce","method","response","wpf_ajax_url","clipboard","googleCategories","log","closest","find","hide","in_array","needle","haystack","indexOf","console","selectize_render_item","escape","sortable","onDrop","text","ajax_fail","column_count","warn","wf_sortable","containerSelector","e","hasOwnProperty","error","statusText","el","config","column","_onDrop","each","length","selectize","itemPath","itemSelector","concat","plugins","$item","container","group","options","draggedClass","bodyClass","render","item","helper","not","fancySelect","maxItemShow","create","split","map","s","handle","placeholder","form","replace","x","reindex_config_table","init","renderMerchantInfo","jQuery","k","opt","merchantInfo","feedType","r","types","html","t","trim","toLowerCase","na","disabled","val","_loop2","renderMerchantTemplate","_loop","filter","contentSettings","feedForm","feedEditor","merchantInfoCache","tooltip","css","top","_regenerate","isRegenerating","feed","_progress","_product_ids","_progress_per_batch","_refresh","_feed","_all_btn","generate","_current_btn","condition","_current_batch","then","URLSearchParams","preventDefault","parent","_current_btn_label","_ajax_nonce","_log","_updateProgressStatus","message","_color","regenerate","setTimeout","_this2","_stopProgressBar","_process_batch","fail","limit","_limit","_block_button","_progressBarActive","_save_feed_file","loop","_get_product_ids","_total_batch","_unblock_button","_resetProgressBar","refreshInterval","post","arguments","undefined","clearInterval","_timer","setInterval","_updateProgressBar","update","_toggleProgressBar","table","show","color","width","generator","pagenow","attr_name","hover","title","appendTo","remove","left","pageX","href","slideToggle","loader","tbody","location","reload","button","status_area","select","execCommand","progress_message","current_attribute_value","fancyOption","fancyDataPicker","selectIf","price_attributes","selectKey","percentage","outputSelect","parents","includes","add_postbox_toggles","confirm","del_confirm_multi","row","append","type","_ajax_clean_nonce","validate","valid","save","server","sftp_checking","merchant","name","templateName","loading_tmpl","provider","send","merchantTemplateCache","outOfStockVisibilityRow","checked","valueColumn","attribute","preload","load","google_category","query","learn_more","cb","itemWrapper","wf_csv_txt","id","windowpos","download","googleMap","click","for_attr","setValue","catField","catId","providerName","groupId","v","searchField","option","createObjectURL","labelField","woocommerce","currency","price","inArray","current_Value","parseInt","sale_price","_key","sale_price_with_tax","attribute_value","weight","height","dimension"],"mappings":"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","file":"woo-feed-admin.min.js","sourcesContent":["// noinspection JSUnresolvedletiable\n/**!\n * WooFeed Scripts\n * @version 3.3.6\n * @package WooFeed\n * @copyright 2020 WebAppick\n *\n */\n/* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */\n// noinspection JSUnresolvedVariable\n(function($, window, document, wpAjax, opts) {\n \"use strict\";\n /**\n * All of the code for your admin-facing JavaScript source\n * should reside in this file.\n *\n * Note: It has been assumed you will write jQuery code here, so the\n * $ function reference has been prepared for usage within the scope\n * of this function.\n *\n * This enables you to define handlers, for when the DOM is ready:\n */\n\n /**\n * disable element utility\n *\n * @since 3.1.9\n *\n * @param {*} status\n * @returns {$|HTMLElement}\n */\n $.fn.disabled = function(status) {\n $(this).each(function() {\n let self = $(this),\n prop = 'disabled';\n\n if (typeof self.prop(prop) !== 'undefined') {\n self.prop(prop, status === void 0 || status === true);\n } else {\n !0 === status ? self.addClass(prop) : self.removeClass(prop);\n }\n });\n return self; // method chaining\n };\n\n /**\n * Check if a HTMLElement or jQuery is disabled\n */\n $.fn.isDisabled = function() {\n let self = $(this),\n prop = 'disabled';\n return typeof self.prop(prop) !== 'undefined' ? self.prop(prop) : self.hasClass(prop);\n };\n\n /**\n * Clear Tooltip for clip board js\n * @param {Object} event\n */\n const clearTooltip = (event) => {\n $(event.currentTarget).removeClass( (index, className) => (className.match(/\\btooltipped-\\S+/g) || []).join(' ') ).removeClass('tooltipped').removeAttr('aria-label');\n };\n\n const showTooltip = (elem, msg) => {\n $(elem).addClass('tooltipped tooltipped-s').attr('aria-label', msg);\n };\n\n const fallbackMessage = (action) =>{\n let actionMsg,\n actionKey = action === 'cut' ? 'X' : 'C';\n\n if (/iPhone|iPad/i.test(navigator.userAgent)) {\n actionMsg = 'No support :(';\n } else if (/Mac/i.test(navigator.userAgent)) {\n actionMsg = 'Press ⌘-' + actionKey + ' to ' + action;\n } else {\n actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;\n }\n\n return actionMsg;\n };\n\n /**\n * Alias of jQuery.extend()\n * @param {Object} _default\n * @param {Object} _args\n */\n const extend = (_default, _args) => $.extend(true, {}, _default, _args);\n\n\t/*\n\t* Handles product attributes\n\t*\n\t* @since 4.4.18\n\t* */\n\tclass WooFeedCustomFields {\n\n\t\tconstructor( field, status, isTaxonomy ) {\n\t\t\tthis.productCustomFields( field, status, isTaxonomy );\n\t\t}\n\n\t\tcacheClear() {\n\t\t\tlet data = {\n\t\t\t\taction: 'woo_feed_product_attribute_cache_remove',\n\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\n\t\t\t};\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\n\t\t\t\tdata\n\t\t\t});\n\t\t}\n\n\t\tproductCustomFields( field, status = false, isTaxonomy ) {\n\t\t\tlet data = {\n\t\t\t\taction: 'woo_feed_custom_fields_status_change',\n\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\n\t\t\t\tfield,\n\t\t\t\tstatus,\n\t\t\t\tisTaxonomy\n\t\t\t};\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\n\t\t\t\tdata,\n\t\t\t\tsuccess: ( response ) => {\n\t\t\t\t\tif( response.success ) {\n\t\t\t\t\t\tthis.cacheClear();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log( response );\n\t\t\t\t\t}\n $('#'+field+'-switcher').closest('td').find('.switch-loader').hide();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n let $copyBtn,\n clipboard,\n googleCategories,\n helper = {\n in_array: (needle, haystack) => {\n try {\n return haystack.indexOf(needle) !== -1;\n } catch (e) {\n return false;\n }\n },\n selectize_render_item: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.text)}</div>`, // phpcs:ignore WordPressVIPMinimum.JS.StringConcat.Found,\n ajax_fail: e => {\n console.warn(e);\n alert(e.hasOwnProperty('statusText') && e.hasOwnProperty('status') ? opts.ajax.error + '\\n' + e.statusText + ' (' + e.status + ')' : e);\n },\n /**\n * Initialize Sortable\n * @param {$|HTMLElement} el\n * @param {object} config\n * @param {int|boolean} column\n * @param {function} onDrop\n * @return {$|HTMLElement}\n */\n sortable: (el, config, column, onDrop) => {\n return (el || $('.sorted_table')).each(function() {\n let self = $(this),\n column_count = self.find('tbody > tr:eq(0) > td').length || column || 9;\n self.wf_sortable(extend({\n containerSelector: 'table',\n itemPath: '> tbody',\n itemSelector: 'tr',\n handle: 'i.wf_sortedtable',\n placeholder: `<tr class=\"placeholder\"><td colspan=\"${column_count}\"></td></tr>`,\n onDrop: ($item, container, _super, event) => {\n $item.removeClass(container.group.options.draggedClass).removeAttr('style');\n $(\"body\").removeClass(container.group.options.bodyClass);\n if ( onDrop && 'function' === typeof( onDrop ) ) {\n onDrop( $item, container, _super, event );\n }\n },\n }, config));\n });\n },\n selectize: (el, config) => {\n return (el || $('select.selectize')).not('.selectized').not('.selectize-google-category').each(function() {\n let self = $(this);\n self.selectize(extend({\n create: self.data('create') || false,\n plugins: self.data('plugins') ? self.data('plugins').split(',').map(function(s) {\n return s.trim();\n }) : [],\n //['remove_button'],\n render: {\n item: helper.selectize_render_item\n }\n }, config));\n });\n },\n fancySelect: (el, config) => {\n return (el || $('select.fancySelect')).not('.FancySelectInit').each(function() {\n let self = $(this);\n self.fancySelect(extend({\n maxItemShow: 3\n }, config));\n });\n },\n reindex_config_table: () => {\n $('#table-1').find('tbody tr').each( ( x, el ) => {\n $(el).find('[name]').each( ( x1, el ) => {\n $(el).attr('name', $(el).attr('name').replace(/(\\[\\d\\])/g, `[${x}]`));\n } );\n } );\n },\n common: () => {\n helper.sortable( $('.sorted_table'), {}, 9, helper.reindex_config_table );\n helper.selectize();\n helper.fancySelect($('.outputType'));\n }\n },\n // helper functions\n feedEditor = {\n /**\n * The Editor Form Elem.\n * @type {$|HTMLElement}\n */\n form: null,\n\n /**\n * Initialize The Feed Editor {Tabs...}\n * @returns {void}\n */\n init: function () {\n let self = this;\n self.form = $('.generateFeed');\n if (!self.form.length) return;\n helper.common();\n // noinspection JSUnresolvedVariable\n $(document).trigger('feed_editor_init');\n $(document).trigger(new jQuery.Event('feedEditor.init', {\n target: this.form\n }));\n },\n\n /**\n * Render Merchant info ajax response and handle allowed feed type for selected merchant\n * @param {$|HTMLElement} merchantInfo jQuery dom object\n * @param {$|HTMLElement} feedType jQuery dom object\n * @param {Object} r ajax response object\n */\n renderMerchantInfo: function (merchantInfo, feedType, r) {\n for (let k in r) {\n if (r.hasOwnProperty(k)) {\n merchantInfo.find('.merchant-info-section.' + k + ' .data').html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\n\n if ('feed_file_type' === k) {\n (function() {\n let types = r[k].split(\",\").map(function(t) {\n return t.trim().toLowerCase();\n }).filter(function(t) {\n // noinspection JSUnresolvedVariable\n return t !== '' && t !== opts.na.toLowerCase();\n });\n\n if (types.length) {\n feedType.find('option').removeAttr('selected').each(function() {\n let opt = $(this);\n opt.val() && !helper.in_array(opt.val(), types) ? opt.disabled(!0) : opt.disabled(!1);\n });\n if (types.length === 1) feedType.find('option[value=\"' + types[0] + '\"]').attr('selected', 'selected');\n } else feedType.find('option').disabled(!1);\n })();\n }\n }\n }\n\n merchantInfo.find('.spinner').removeClass('is-active');\n feedType.disabled(!1);\n feedType.trigger('change');\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n feedType.parent().find('.spinner').removeClass('is-active');\n },\n\n /**\n * Render Feed Template Tabs and settings while creating new feed.\n * @param {$|HTMLElement} feedForm feed from query dom object\n * @param {object} r merchant template ajax response object\n */\n renderMerchantTemplate: function (feedForm, r) {\n let _loop = function _loop(k) {\n if (r.hasOwnProperty(k)) {\n if ('tabs' === k) {\n // noinspection JSUnresolvedFunction\n feedForm.html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\n } else {\n let contentSettings = $('[name=\"' + k + '\"]');\n\n if (contentSettings.length) {\n contentSettings.each(function() {\n let elem = $(this);\n\n if (elem.is('select')) {\n elem.find('[value=\"' + r[k] + '\"]').prop('selected', true);\n } else if ((elem.is('[type=checkbox]') || elem.is('[type=radio]')) && elem.val() === r[k]) {\n elem.prop('checked', true);\n } else {\n elem.val(r[k]); // type=text\n }\n }).trigger('change');\n }\n }\n }\n };\n\n for (let k in r) {\n _loop(k);\n }\n\n feedEditor.init();\n }\n },\n // Feed Editor Table\n merchantInfoCache = [],\n merchantTemplateCache = [],\n tooltip = () => {\n // Tooltip only Text\n $('.wfmasterTooltip')\n .hover(function () {\n // Hover over code\n let self = $(this), title = self.attr('wftitle');\n self.data('tipText', title).removeAttr('wftitle');\n $('<p class=\"wftooltip\"></p>').text(title).appendTo('body').fadeIn('slow');\n }, function () {\n // Hover out code\n let self = $(this);\n self.attr('wftitle', self.data('tipText'));\n $('.wftooltip').remove();\n })\n .mousemove(function (e) {\n $('.wftooltip').css({\n top: e.pageY + 10,\n left: e.pageX + 20\n });\n });\n },\n clip = () => {\n $copyBtn = $('.toClipboard');\n if (!ClipboardJS.isSupported() || /iPhone|iPad/i.test(navigator.userAgent)) {\n $copyBtn.find('img').hide(0);\n } else {\n $copyBtn.each(function() {\n $(this).on('mouseleave', clearTooltip).on('blur', clearTooltip);\n });\n clipboard = new ClipboardJS('.toClipboard');\n clipboard.on('error', function(event) {\n showTooltip(event.trigger, fallbackMessage(event.action));\n }).on('success', function(event) {\n showTooltip(event.trigger, 'Copied');\n });\n }\n };\n\n /**\n * Feed Generator Module\n */\n class feedGenerator {\n\n /**\n * Constructor\n * @constructor\n */\n constructor() {\n this._feed = opts.generator.feed; // wf_config+xxxx\n this._limit = opts.generator.limit;\n this._progress = 0;\n this._timer = null;\n this._color = false;\n // batch info\n this._total_batch = 0;\n this._current_batch = 0;\n this._product_ids = [];\n this._progress_per_batch = 0;\n this._refresh = true;\n // noinspection JSUnresolvedVariable\n this._regenerate = opts.generator.regenerate;\n window.isRegenerating = false;\n this._all_btn = $('.wpf_regenerate');\n this._current_btn = $(`#${this._feed.replace( 'wf_config', 'wf_feed_' )}`);\n this._current_btn_label = '';\n }\n\n /**\n * Init Hooks (Event)\n * @return {feedGenerator}\n */\n init() {\n let self = this;\n if ( '' !== this._feed && this._regenerate && false === window.isRegenerating ) {\n this.generate();\n }\n\n //thickbox body add feed plugin class to make it unique and custom style\n let current_page_query = window.location.search;\n let params = new URLSearchParams(current_page_query);\n let page_name = params.get(\"page\");\n if( \"webappick-manage-feeds\" === page_name ) {\n $('body').addClass('woo-import-popup-body');\n }\n\n $(document).on('click', '.woo-feed-campaign-close-button', function(event) {\n event.preventDefault();\n\n $(this).parent('.woo-feed-promotion').hide();\n let condition = $(this).data('condition');\n if(1 === condition) {\n wpAjax.post( 'woo_feed_hide_promotion', {\n _ajax_nonce: opts.nonce,\n condition: condition,\n } ).then( response => {\n self._log( response );\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n } );\n }\n });\n\n $(document).on('click', '.wpf_regenerate', function(event) {\n event.preventDefault();\n self._current_btn = $( this );\n if( self._current_btn.hasClass('disabled') || window.isRegenerating === true ) return;\n self._feed = self._current_btn.attr('id').replace( 'wf_feed_', 'wf_config' );\n if( '' !== self._feed ) {\n self.generate();\n }\n });\n return this;\n }\n\n _block_button() {\n if ( this._all_btn.length ) {\n this._all_btn.addClass('disabled');\n }\n if ( this._current_btn.length ) {\n this._current_btn.find('span').addClass('wpf_spin reverse_spin');\n this._current_btn_label = this._current_btn.attr('title');\n // noinspection JSUnresolvedVariable\n this._current_btn.attr( 'aria-label', opts.regenerate ).attr( 'title', opts.regenerate );\n }\n }\n\n _unblock_button() {\n if ( this._all_btn.length ) {\n this._all_btn.removeClass('disabled');\n }\n if ( this._current_btn.length ) {\n this._current_btn.find('span').removeClass('wpf_spin');\n this._current_btn.find('span').removeClass('reverse_spin');\n this._current_btn.attr( 'aria-label', this._current_btn_label ).attr( 'title', this._current_btn_label );\n }\n }\n\n /**\n * Generate Feed\n * @return void\n */\n generate() {\n let self = this;\n window.isRegenerating = true;\n this._block_button();\n this._resetProgressBar();\n this._progressBarActive();\n this._log( 'Counting Total Products' );\n this._updateProgressStatus( 'Fetching products.' );\n this._get_product_ids().then( response => {\n this._progress = 10;\n self._log( {response} );\n if(response.success) {\n self._log( `Total ${response.total} Products found.` );\n self._product_ids = response.product;\n self._total_batch = this._product_ids.length;\n self._current_batch = 0;\n self._progress_per_batch = ( 90 - this._progress ) / this._total_batch;\n self._process_batch();\n self._updateProgressStatus( 'Processing Products...' );\n } else {\n self._updateProgressStatus( response.data.message );\n }\n }).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Get Product Ids\n * @returns {$.promise}\n * @private\n */\n _get_product_ids() {\n this._progress = 5;\n return wpAjax.post( 'get_product_information', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n limit: this._limit,\n } );\n }\n\n /**\n * Run the Batch\n * @private\n */\n _process_batch() {\n let self = this;\n let status = `Processing Batch ${this._current_batch+1} of ${this._total_batch}`;\n this._updateProgressStatus( status );\n this._log( status );\n wpAjax.post( 'make_batch_feed', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n products: this._product_ids[this._current_batch],\n loop: this._current_batch,\n } ).then( response => {\n self._current_batch++;\n self._log( `Batch ${self._current_batch} Completed` );\n self._log( response );\n if ( self._current_batch < self._total_batch ) {\n self._process_batch();\n self._progress += self._progress_per_batch;\n }\n if ( self._current_batch === self._total_batch ) {\n self._save_feed_file();\n }\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Save Feed Data from temp to feed file\n * @private\n */\n _save_feed_file() {\n let self = this;\n this._log( 'Saving feed file' );\n this._updateProgressStatus( 'Saving feed file' );\n wpAjax.post( 'save_feed_file', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n } ).then( response => {\n self._log( response );\n self._progress = 100;\n if ( self._refresh ) {\n window.location.href = `${opts.pages.list.feed}&link=${response.url}&cat=${response.cat}`;\n }\n setTimeout( function(){\n self._stopProgressBar();\n setTimeout( function(){\n self._resetProgressBar( true );\n self._unblock_button();\n }, 3000 );\n }, 2500 );\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Console log wrapper with debug settings.\n * @param data\n * @returns {feedGenerator}\n * @private\n */\n _log( data ) {\n // noinspection JSUnresolvedVariable\n if ( opts.wpf_debug ) {\n console.log( data );\n }\n return this;\n }\n\n /**\n * Run the progressbar refresh interval\n * @param {int} refreshInterval\n * @returns {feedGenerator}\n * @private\n */\n _progressBarActive( refreshInterval = 0 ) {\n let self = this;\n this._toggleProgressBar( true );\n this._timer = setInterval( function(){\n self._updateProgressBar();\n }, refreshInterval || 1000 );\n return this;\n }\n\n /**\n * Stop Progressbar\n * @returns {feedGenerator}\n * @private\n */\n _stopProgressBar() {\n clearInterval( this._timer );\n return this;\n }\n\n /**\n * Reset Progressbar\n * @returns {feedGenerator}\n * @private\n */\n _resetProgressBar( update ) {\n this._toggleProgressBar( false );\n this._updateProgressStatus( '' );\n clearInterval( this._timer );\n this._color = false;\n this._timer = null;\n this._progress = 0;\n if ( update ) {\n this._updateProgressBar();\n }\n return this;\n }\n\n /**\n * Show hide the progress bar el\n * @param status\n * @returns {feedGenerator}\n * @private\n */\n _toggleProgressBar( status ) {\n let table = $('#feed_progress_table');\n if ( status ) {\n table.show();\n } else {\n table.hide();\n }\n return this;\n }\n\n /**\n * Update Progress bar text status\n * @param {string} status\n * @returns {feedGenerator}\n * @private\n */\n _updateProgressStatus( status ) {\n $( '.feed-progress-status' ).html( status );\n return this;\n }\n\n _getErrorMessageByCode( error ){\n let progress_message = $( '.feed-progress-status' );\n progress_message.css( {'color':this._color});\n $( '.feed-progress-percentage' ).css( {'color':this._color});\n $( '.wpf_spin' ).css( {'color':this._color});\n\n let message=error.status +' : '+ error.statusText+'. ';\n if(500===error.status){\n message+= \"Please increase your PHP max_execution_time. Please <a target='_blank' href='https://webappick.com/docs/woo-feed/faq-for-woocommerce-product-feed/how-to-solve-processing-10-feed-generation-stuck-error/'>read this doc</a>.\";\n }\n\n this._updateProgressStatus(message);\n\n }\n\n /**\n * Update Progress Data\n * hooked with setInterval\n * @private\n */\n _updateProgressBar() {\n let percentage = $( '.feed-progress-percentage' ),\n bar = $( '.feed-progress-bar-fill' ),\n _progress = `${Math.round( this._progress )}%`;\n bar.css( {\n width: _progress,\n } );\n percentage.text( _progress );\n }\n }\n // expose to the global scope\n window.wf = {\n helper: helper,\n feedEditor: feedEditor,\n generator: feedGenerator,\n };\n\n $(window).on('load', function() {\n // Template loading ui conflict\n if ($(location).attr(\"href\").match(/webappick.*feed/g) !== null) {\n $('#wpbody-content').addClass('woofeed-body-content');\n }\n\n // ClipBoardJS\n clip();\n // postbox toggle\n postboxes.add_postbox_toggles(pagenow);\n // initialize generator\n let generator = new feedGenerator();\n generator.init();\n // noinspection JSUnresolvedVariable\n if( '' !== opts.generator.feed && opts.generator.regenerate ) {\n\n }\n // initialize editor\n feedEditor.init();\n helper.common(); // Generate Feed Add Table Row\n tooltip();\n // validate feed editor\n $(\".generateFeed\").validate();\n\n // document events\n $(document)\n .on('blur', 'input[name=\"wfDAttributeName\"]', function(e) {\n e.preventDefault();\n let attr_name = $(this).val();\n attr_name = attr_name.toLowerCase();\n attr_name = attr_name.split(' ').join('_');\n\n $('#wfDAttributeCode').val(attr_name);\n\n })\n .on('click', '[data-toggle_slide]', function(e) {\n e.preventDefault();\n $($(this).data('toggle_slide')).slideToggle('fast');\n })\n // XML Feed Wrapper\n .on('click', '#wf_newRow', function () {\n let tbody = $('#table-1 tbody'),\n template = $('#feed_config_template').text().trim().replace(/__idx__/g, tbody.find('tr').length);\n tbody.append(template);\n helper.fancySelect($('.outputType'));\n })\n // feed delete alert.\n .on('click', '.single-feed-delete', function (event) {\n event.preventDefault();\n // noinspection JSUnresolvedVariable\n if (confirm(opts.form.del_confirm)) {\n window.location.href = $(this).attr('val');\n }\n })\n // clear cache data.\n .on('click', '.wf_clean_cache_wrapper', function(event) {\n event.preventDefault();\n var nonce = $('.woo-feed-clean-cache-nonce').val();\n var loader = $('.woo-feed-cache-loader');\n\n //show loader\n loader.show();\n\n // passed cache nonce\n wpAjax.post('clear_cache_data', {\n _ajax_clean_nonce: nonce\n }).then(function (response) {\n if( response.success ) {\n loader.hide(); //hide loader\n location.reload();\n }\n }).fail(function () {\n console.log('something wrong');\n });\n\n })// Copy Status\n .on('click', '#woo-feed-copy-status-btn', function(event) {\n event.preventDefault();\n let button = $('#woo-feed-copy-status-btn');\n let status_area = $('#woo-feed-status-area');\n button.val('Copied');\n status_area.css('visibility','visible');\n status_area.select();\n\n document.execCommand('copy');\n })\n // feed value dropdown change.\n .on('change', '.wf_attr.wf_attributes', function(event) {\n event.preventDefault();\n\n $('.fancy-picker-picked').trigger(\"click\"); // trigger fancy select box clicked\n\n // price attributes\n var price_attributes = ['price', 'current_price', 'sale_price', 'price_with_tax', 'current_price_with_tax', 'sale_price_with_tax', 'shipping_cost'];\n // current value\n var current_attribute_value = $(this).val();\n var outputSelect = $(this).parents('tr').find('.outputType');\n var fancyOption = $(this).parents('tr').find('.fancy-picker-content .fancy-picker-option');\n var fancyDataPicker = $(this).parents('tr').find('.fancy-picker-data span');\n var selectIf, selectKey;\n\n // when any attribute is selected, pick the key\n if( price_attributes.includes(current_attribute_value) ) {\n // when select any price attribute\n selectIf = 'for_price';\n selectKey = \"Price\";\n } else if ( \"\" !== current_attribute_value && -1 !== current_attribute_value.indexOf('wf_taxo') ) {\n\n // when select any custom taxonomy\n selectIf = 'for_custom_taxo';\n selectKey = \"parent_if_empty\";\n } else {\n\n selectIf = 'for_all';\n selectKey = 'Default';\n }\n\n // remove selected class from old selected option\n fancyOption.removeClass('selected');\n\n // when value dropdown is selected as price or any custom taxonomy\n if( selectIf === 'for_custom_taxo' || selectIf === 'for_price' ) {\n\n // update \"Option Type\" when select key matches\n fancyOption.each(function() {\n if( selectKey === $(this).text() ) {\n $(this).addClass('selected');\n fancyDataPicker.text(selectKey);\n outputSelect.find(\"option\").text(selectKey);\n outputSelect.find(\"option\").val( $(this).data('value') );\n }\n });\n } else if( selectIf === 'for_all' ){\n\n fancyOption.each(function(){\n if( selectKey === $(this).text() ){\n $(this).addClass('selected');\n fancyDataPicker.text(selectKey);\n outputSelect.find(\"option\").text(selectKey);\n outputSelect.find(\"option\").val( $(this).data(\"value\") );\n }\n });\n\n }\n\n })\n // bulk delete alert.\n .on('click', '#doaction, #doaction2', function () {\n // noinspection JSUnresolvedVariable\n return confirm(opts.form.del_confirm_multi);\n })\n // Generate Feed Table Row Delete\n .on('change', '.dType', function () {\n let self = $(this),\n type = self.val(),\n row = self.closest('tr');\n\n if (type === 'pattern') {\n row.find('.value_attribute').hide();\n row.find('.value_pattern').show();\n } else if (type === 'attribute') {\n row.find('.value_attribute').show();\n row.find('.value_pattern').hide();\n } else if (type === 'remove') {\n row.find('.value_attribute').hide();\n row.find('.value_pattern').hide();\n }\n })\n // Generate Feed Form Submit\n .on('click', '.delRow', function (e) {\n e.preventDefault();\n $(this).closest('tr').remove();\n helper.reindex_config_table();\n })\n .on('submit', '#generateFeed', function () {\n // Feed Generating form validation\n $(this).validate();\n\n if ($(this).valid()) {\n $(\".makeFeedResponse\")\n .show()\n .html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n }\n })\n // Generate Update Feed Form Submit\n .on('submit', '#updatefeed', function (e, data) {\n // Feed Generating form validation\n $(this).validate();\n\n if ($(this).valid()) {\n $(\".makeFeedResponse\")\n .show()\n .html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${data && data.save ? opts.form.save : opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n }\n })\n .on( 'ready woo_feed_config_loaded', function(){\n\n if( $('#ftpenabled').val() === '0' ){\n $('.google-merchant-message').hide('slow');\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').attr('disabled','disabled');\n } else {\n if( $('#provider').val() === 'google' ) {\n $('.google-merchant-message').show('slow');\n } else {\n $('.google-merchant-message').hide('slow');\n }\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').removeAttr('disabled');\n }\n\n $('#ftpenabled').on('change', function(){\n if( $('#ftpenabled').val() === '0' ){\n $('.google-merchant-message').hide('slow');\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').attr('disabled','disabled');\n } else {\n\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').removeAttr('disabled');\n\n // Google merchant specific message\n if( $('#provider').val() === 'google' ){\n $('.google-merchant-message').show('slow');\n } else {\n $('.google-merchant-message').hide('slow');\n }\n\n }\n });\n })\n .on('change', '.ftporsftp', function () {\n let server = $(this).val(),\n status = $('.ssh2_status');\n\n if (server === 'sftp') {\n // noinspection JSUnresolvedVariable\n status.show().css('color', 'dodgerblue').text(opts.form.sftp_checking);\n wpAjax.post('get_ssh2_status', {\n _ajax_nonce: opts.nonce,\n server: server\n }).then(function (response) {\n if (response === 'exists') {\n // noinspection JSUnresolvedVariable\n status.css('color', '#2CC185').text(opts.form.sftp_available);\n setTimeout(function () {\n status.hide();\n }, 1500);\n } else {\n // noinspection JSUnresolvedVariable\n status.show().css('color', 'red').text(opts.form.sftp_warning);\n }\n }).fail(function (e) {\n status.hide();\n helper.ajax_fail(e);\n });\n } else {\n status.hide();\n }\n })\n .on('click', '[name=\"save_feed_config\"]', function (e) {\n e.preventDefault();\n $('#updatefeed').trigger('submit', {\n save: true\n });\n })\n .on('change', '#provider', function (event) {\n event.preventDefault();\n\n let merchant = $(this).val(),\n templateName = $(this).find(':selected').text(),\n name = $('#filename').val(),\n feedType = $(\"#feedType\"),\n feedForm = $(\"#providerPage\"),\n merchantInfo = $('#feed_merchant_info'); // set loading..\n\n // noinspection JSUnresolvedVariable\n feedForm.html('<h3><span style=\"float:none;margin: -3px 0 0;\" class=\"spinner is-active\"></span> ' + opts.form.loading_tmpl + '</h3>'); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n\n merchantInfo.find('.spinner').addClass('is-active');\n feedType.disabled(!0); // disable dropdown\n\n feedType.parent().find('.spinner').addClass('is-active');\n merchantInfo.find('.merchant-info-section .data').html(''); // remove previous data\n // Get Merchant info for selected Provider/Merchant\n\n if (merchantInfoCache.hasOwnProperty(merchant)) {\n feedEditor.renderMerchantInfo(merchantInfo, feedType, merchantInfoCache[merchant]);\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n } else {\n wpAjax.send('woo_feed_get_merchant_info', {\n type: 'GET',\n data: {\n nonce: opts.nonce,\n provider: merchant,\n templateName: templateName\n }\n }).then(function (r) {\n merchantInfoCache[merchant] = r;\n feedEditor.renderMerchantInfo(merchantInfo, feedType, r);\n }).then(function(){\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n }).fail(helper.ajax_fail);\n } // Get FeedForm For Selected Provider/Merchant\n\n\n if (merchantTemplateCache.hasOwnProperty(merchant)) {\n feedEditor.renderMerchantTemplate(feedForm, merchantTemplateCache[merchant]);\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n } else {\n wpAjax.post('get_feed_merchant', {\n _ajax_nonce: opts.nonce,\n merchant: merchant\n }).then(function (r) {\n merchantTemplateCache[merchant] = r;\n feedEditor.renderMerchantTemplate(feedForm, r);\n $('#utm_source').val(templateName);\n $('#utm_campaign').val(name);\n //when merchant is bing, change delimiter and enclosure\n if( 'bing' === merchant ) {\n //delimiter value\n $(\"#delimiter option\").removeAttr('selected');\n $(\"#delimiter option[value=\\\"tab\\\"]\").attr('selected', 'selected');\n\n //enclosure value\n $(\"#enclosure option\").removeAttr('selected');\n $(\"#enclosure option[value=\\\" \\\"]\").attr('selected', 'selected');\n }\n\n //reviewer options hide\n if( 'google_product_review' !== merchant) {\n $('.wf_attributes option[value=\"reviewer_name\"]').hide();\n }\n }).then(function(){\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n }).fail(helper.ajax_fail);\n }\n })\n // Feed Active and Inactive status change via ajax\n .on('change', '.woo_feed_status_input', function () {\n let self = $(this);\n wpAjax.post('update_feed_status', {\n _ajax_nonce: opts.nonce,\n feedName: self.val(),\n status: self[0].checked ? 1 : 0\n });\n });\n // event with trigger\n $(document)\n .on('change', '[name=\"is_outOfStock\"], [name=\"product_visibility\"]', function () {\n let outOfStockVisibilityRow = $('.out-of-stock-visibility');\n if ($('[name=\"is_outOfStock\"]:checked').val() === 'n' && $('[name=\"product_visibility\"]:checked').val() === '1') {\n outOfStockVisibilityRow.show();\n } else {\n outOfStockVisibilityRow.hide();\n }\n })\n .on('change', '.attr_type', function () {\n // Attribute type selection\n let self = $(this),\n type = self.val(),\n row = self.closest('tr');\n\n if (type === 'pattern') {\n row.find('.wf_attr').hide();\n row.find('.wf_attr').val('');\n row.find('.wf_default').show();\n } else {\n row.find('.wf_attr').show();\n row.find('.wf_default').hide();\n row.find('.wf_default').val('');\n }\n })\n .on('change', '.wf_mattributes, .attr_type', function () {\n let row = $(this).closest('tr'),\n attribute = row.find('.wf_mattributes'),\n type = row.find('.attr_type'),\n valueColumn = row.find('td:eq(4)'),\n provider = $('#provider').val();\n\n // noinspection JSUnresolvedVariable\n if (opts.form.google_category.hasOwnProperty(attribute.val()) && type.val() === 'pattern' && helper.in_array(provider, opts.form.google_category[attribute.val()])) {\n if (valueColumn.find('select.selectize').length === 0) {\n valueColumn.find('input.wf_default').remove();\n valueColumn.append('<span class=\"wf_default wf_attributes\"><select name=\"default[]\" class=\"selectize\"></select></span>');\n // noinspection JSUnresolvedVariable\n valueColumn.append(`<span style=\"font-size:x-small;\"><a style=\"color: red\" href=\"https://webappick.com/docs/woo-feed/feed-configuration/how-to-map-store-category-with-merchant-category/\" target=\"_blank\">${opts.learn_more}</a></span>`);\n\n if (!googleCategories) {\n valueColumn.append('<span class=\"spinner is-active\" style=\"margin: 0;\"></span>');\n }\n\n let select = valueColumn.find('.wf_attributes select');\n // noinspection JSUnresolvedVariable\n helper.selectize(select, {\n preload: true,\n placeholder: opts.form.select_category,\n load: function load(query, cb) {\n if (!googleCategories) {\n wpAjax.send('get_google_categories', {\n type: 'GET',\n data: {\n _ajax_nonce: opts.nonce,\n action: \"get_google_categories\",\n provider: provider\n }\n }).then(function (r) {\n googleCategories = r;\n cb(googleCategories);\n valueColumn.find('.spinner').remove();\n }).fail(helper.ajax_fail);\n } else {\n cb(googleCategories);\n }\n }\n });\n }\n } else {\n if (attribute.val() !== 'current_category' && valueColumn.find('input.wf_default').length === 0) {\n valueColumn.find('span').remove();\n valueColumn.append('<input autocomplete=\"off\" class=\"wf_default wf_attributes\" type=\"text\" name=\"default[]\" value=\"\">');\n\n if (type.val() !== 'pattern') {\n valueColumn.find('input.wf_default').hide();\n }\n }\n }\n })\n .on('change', '#feedType,#provider', function (e) {\n let type = $('#feedType').val(),\n provider = $('#provider').val(),\n itemWrapper = $('.itemWrapper'),\n wf_csv_txt = $('.wf_csvtxt');\n\n // noinspection JSUnresolvedVariable\n if (type !== '' && helper.in_array(provider, opts.form.item_wrapper_hidden)) {\n itemWrapper.hide();\n }\n\n //when feed type is changed\n if( 'feedType' === e.target.id ) {\n if (type === 'csv' || type === 'txt' || type === 'tsv') {\n wf_csv_txt.show();\n itemWrapper.hide();\n \n if( 'tsv' === type ) {\n $('#delimiter option:last').prop(\"selected\", \"selected\");\n } else if( 'csv' === type ) {\n $('#delimiter option:first').prop(\"selected\", \"selected\");\n }\n } else if( 'xml' === type && \"custom\" === provider ) {\n itemWrapper.show();\n wf_csv_txt.hide();\n } else if( 'json' === type ) {\n wf_csv_txt.hide();\n }\n }\n\n // when template is not custom template 1 hide the item wrapper\n if( \"custom\" !== provider ) {\n itemWrapper.hide();\n }\n\n })\n .trigger('change');\n\n\n $(document)\n\t\t\t.on('click', '.woofeed-custom-fields [id*=\"-switcher\"]', function () {\n\t\t\t $(this).closest('td').find('.switch-loader').show();\n\t\t\t\tlet field = $(this).attr( 'id' ).split( '-' )[0],\n\t\t\t\t\tisTaxonomy = $(this).data( 'taxonomy' ),\n\t\t\t\t\tstatus = $(this).prop( 'checked' );\n\t\t\t\tnew WooFeedCustomFields( field, status, isTaxonomy );\n\n\t\t\t})\n\n\t\t\t// Remove sticky cart on feature page\n\t\t\t.ready(function() {\n\t\t\t\tvar s = $(\".wapk-feed-buy-now-container\");\n\t\t\t\t$(window).scroll(function() {\n\t\t\t\t\tvar windowpos = $(window).scrollTop();\n\t\t\t\t\tif ( windowpos <= 5000 ) {\n\t\t\t\t\t\ts.addClass(\"fixed\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts.removeClass(\"fixed\");\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n });\n\n $(document)\n\t\t.on('click', '#woo-feed-debug-log-download', function (e) {\n\t\t\te.preventDefault();\n\t\t\t$(\"<a />\", {\n\t\t\t\tdownload: new Date() + \".log\",\n\t\t\t\thref: URL.createObjectURL(\n\t\t\t\t\tnew Blob([$(\"#woo-feed-debug-log\").val()], {\n\t\t\t\t\t\ttype: \"text/plain\"\n\t\t\t\t\t})),\n\t\t\t}).appendTo(\"body\")[0].click();\n\t\t})\n\t\t.on('keyup', '#filename', function() {\n\t\t\tvar name = $('#filename').val();\n\t\t\t$('#utm_campaign').val(name);\n\t\t})\n\n .on('click', '.wf-tab-name', function(e) {\n $('.wf-tab-name.activate').removeClass('activate');\n $(this).addClass('activate');\n\n let for_attr = $(this).attr('for');\n $('.wf_tabs li.active').removeClass('active');\n $('.wf_tabs .wf-tab-content#' + for_attr).parent().addClass('active');\n })\n\n\t\t.on('change', '#category-mapping-form #providers', function() {\n\t\t\tvar provider = $(this).find(':selected').val(),\n\t\t\t\tgoogleMap = ['google', 'facebook', 'pinterest', 'bing', 'bing_local_inventory', 'snapchat'];\n\t\t\tif( googleMap.indexOf(provider) !== -1 ) {\n\t\t\t\t$('input[id*=\"cat_mapping_\"]').css('display', 'none');\n\t\t\t\t$('.wf_default.wf_attributes').css('display', 'block').css('width', '100%');\n\n\t\t\t} else {\n\t\t\t\t$('input[id*=\"cat_mapping_\"]').css('display', 'block');\n\t\t\t\t$('.wf_default.wf_attributes').css('display', 'none').css('width', '100%');\n\t\t\t}\n\t\t})\n\n // Copy parent category ids to child categories.\n\t\t.on('click', 'span[id*=\"cat-map-\"]', function(e) {\n\t\t\te.preventDefault();\n\t\t\tvar providerName = $('#category-mapping-form #providers').val(),\n\t\t\t\tgoogleMap = ['google', 'facebook', 'pinterest', 'bing', 'bing_local_inventory', 'snapchat'],\n\t\t\t\tcatId = $(this).attr('id').replace(/[^\\d.]/g, ''),\n\t\t\t\tgroupId = 'group-child-' + catId;\n\n\t\t\tif( googleMap.indexOf(providerName) !== -1) {\n\t\t\t\tvar catField = $(this).parents('tr').find('.selectized').val();\n\n\t\t\t\tif (catField) {\n\t\t\t\t\t$('.' + groupId).parents('tr').find('select').each(function (i, v) {\n\t\t\t\t\t\t$(v).data('selectize').setValue(catField);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tvar value = $('#cat_mapping_'+catId).val();\n\t\t\t\t$('.'+groupId).parents('tr').find('input').val(value);\n\t\t\t}\n\n\t\t});\n\n $(document).ready(function (){\n\n wpAjax.send('get_google_categories', {\n type: 'GET',\n data: {\n _ajax_nonce: opts.nonce,\n action: \"get_google_categories\",\n // provider: provider\n }\n }).then(function (response) {\n $('.selectize-google-category').selectize({\n valueField: 'value',\n labelField: 'text',\n placeholder: 'Select a category',\n searchField: ['value', 'text'],\n options: response,\n render: {\n option: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.value + ' - ' + data.text)}</div>`,\n item: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.value + ' - ' + data.text)}</div>`\n }\n });\n }).fail(helper.ajax_fail);\n\n\n\n });\n\n /*\n * Issue fix for feed edit page unsupported `Feed Type` not disabling\n *\n * @since 4.4.22\n * */\n $(document).on( \"feed_editor_init\", function(){\n\n let types = $('.merchant-info-section.feed_file_type .data').html().split(\",\").map(function(t) {\n return t.trim().toLowerCase();\n });\n\n let feedType = $(\"#feedType\");\n\n if (types.length) {\n feedType.find('option').each(function() {\n let opt = $(this);\n opt.val() && !helper.in_array(opt.val(), types) ? opt.disabled(!0) : opt.disabled(!1);\n });\n if (types.length === 1) feedType.find('option[value=\"' + types[0] + '\"]').attr('selected', 'selected');\n } else feedType.find('option').disabled(!1);\n\n } );\n\n /**\n * Automatically adding postfix for corresponding attribute selection.\n *\n * @since 4.4.32\n */\n $(document).on('ready', function(){\n\n function update_postfix(){\n var attribute_list = {\n\n 'price': wpf_ajax_obj.woocommerce.currency,\n 'current_price': wpf_ajax_obj.woocommerce.currency,\n 'sale_price': wpf_ajax_obj.woocommerce.currency,\n 'price_with_tax': wpf_ajax_obj.woocommerce.currency,\n 'current_price_with_tax': wpf_ajax_obj.woocommerce.currency,\n 'sale_price_with_tax': wpf_ajax_obj.woocommerce.currency,\n\n\n 'weight': wpf_ajax_obj.woocommerce.weight,\n 'weight_unit': wpf_ajax_obj.woocommerce.weight,\n\n\n 'height': wpf_ajax_obj.woocommerce.dimension,\n 'length': wpf_ajax_obj.woocommerce.dimension,\n 'width': wpf_ajax_obj.woocommerce.dimension\n\n };\n\n $( '.wf_attr.wf_attributes' ).each( function( key, value){\n\n var attribute_value = $(value).val();\n var current_Value = $( 'input[name^=\"suffix\"]' ).eq( parseInt( key ) ).val();\n\n if( -1 !== $.inArray( current_Value, [\n ' ' + wpf_ajax_obj.woocommerce.currency,\n ' ' + wpf_ajax_obj.woocommerce.weight,\n ' ' + wpf_ajax_obj.woocommerce.dimension\n ] ) ){\n $( 'input[name^=\"suffix\"]' ).eq( parseInt( key ) ).val('');\n }\n\n $.each(attribute_list, function (_key, _value){\n if( attribute_value === _key ){\n if( $( 'input[name^=\"suffix\"]' ).eq( parseInt( key ) ).val() === '' ){\n $( 'input[name^=\"suffix\"]' ).eq( parseInt( key ) ).val( ' ' + _value );\n }\n\n\n }\n });\n } );\n\n $(document).trigger( 'feedEditor.after.free.postfix.update' );\n }\n\n $(document).on('feedEditor.init', function(){\n update_postfix();\n });\n\n });\n\n})(jQuery, window, document, wp.ajax, wpf_ajax_obj);\n"]}
1
+ {"version":3,"sources":["woo-feed-admin.js"],"names":["_defineProperties","target","props","descriptor","i","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","window","wpAjax","$","document","opts","self","prop","status","addClass","removeClass","hasClass","currentTarget","clearTooltip","userAgent","actionMsg","match","actionKey","index","join","removeAttr","elem","attr","msg","extend","_default","_args","valueField","$copyBtn","feedGenerator","this","on","ClipboardJS","event","action","showTooltip","trigger","test","navigator","ajax_fail","alert","facebookCategories","url","data","_classCallCheck","WooFeedCustomFields","productCustomFields","field","isTaxonomy","value","ajax","nonce","method","response","wpf_ajax_obj","wpf_ajax_url","success","_this","cacheClear","closest","find","hide","selectize","WooFeedFeedCategories","options","render","send","type","item","_ajax_nonce","then","fail","helper","labelField","placeholder","searchField","escape","concat","text","in_array","needle","haystack","indexOf","sortable","onDrop","column_count","warn","wf_sortable","containerSelector","e","hasOwnProperty","error","statusText","el","config","column","_onDrop","each","length","itemPath","itemSelector","create","plugins","$item","container","group","draggedClass","bodyClass","selectize_render_item","fancySelect","maxItemShow","split","map","s","not","handle","reindex_config_table","init","renderMerchantInfo","form","common","jQuery","k","opt","merchantInfo","feedType","r","types","html","t","trim","toLowerCase","na","disabled","val","_loop2","contentSettings","feedForm","feedEditor","is","merchantInfoCache","tooltip","css","top","_regenerate","isRegenerating","title","_current_btn","feed","_limit","generator","limit","_progress","_timer","_product_ids","_progress_per_batch","_refresh","mousemove","_feed","pageX","generate","replace","clip","fallbackMessage","condition","URLSearchParams","_color","preventDefault","parent","_log","regenerate","_all_btn","current_page_query","page_name","_block_button","_current_btn_label","message","product","setTimeout","_this2","_stopProgressBar","_process_batch","_updateProgressStatus","_current_batch","_total_batch","post","_save_feed_file","loop","_unblock_button","_resetProgressBar","console","refreshInterval","arguments","undefined","clearInterval","setInterval","_updateProgressBar","update","_toggleProgressBar","table","show","color","width","pagenow","attr_name","hover","renderMerchantTemplate","_loop","appendTo","remove","clipboard","confirm","href","slideToggle","loader","reload","button","status_area","select","execCommand","current_attribute_value","fancyOption","fancyDataPicker","selectIf","currency","price_attributes","selectKey","progress_message","parents","includes","outputSelect","feedCurrency","woocommerce","del_confirm_multi","add_postbox_toggles","row","_ajax_clean_nonce","validate","save","server","sftp_checking","sftp_available","merchant","sftp_warning","name","templateName","provider","valid","merchantTemplateCache","outOfStockVisibilityRow","feedName","checked","valueColumn","append","attribute","preload","load","google_category","query","googleCategories","learn_more","cb","itemWrapper","item_wrapper_hidden","wf_csv_txt","id","windowpos","scroll","click","cat_init","wooFeed_get_facebook_categories","wooFeed_get_google_categories","for_attr","setValue","catField","catId","groupId","v","ready","attribute_list","googleMap","current_feed_currency","price","providerName","location","queryString","weight","attribute_value","height","current_Value","dimension","feed_rules","search","get","eq","parseInt","inArray","_key","_value"],"mappings":"yHAAA,SAAAA,kBAAAC,EAAAC,G,4BACA,IAAAC,EAAAD,EAAAE,GACAD,EAAAE,WAAAF,EAAAE,aAAA,EACAF,EAAAG,cAAA,EACA,UAAAH,IAAAA,EAAAI,UAAA,GACAC,OAAAC,eAAAR,EAAAE,EAAAO,IAAAP,IALA,SAAAQ,aAAAC,EAAAC,EAAAC,GAEA,OAOAD,GAAAb,kBAAAY,EAAAG,UAAAF,GARAC,GAAAE,kBAAAC,EAAAH,GACAF,GAcA,SAAAM,EAAAF,EAAAG,EAAAF,EAAAG,G,yDAqBgBC,IAAAA,EAAAA,EAAAA,MADJC,EAAAD,gBAIC,IAAAA,EAAAA,KAAAC,GAHGD,EAAAA,KAAAA,OAAAA,IAAAA,IAAAA,IAAAA,IAQZ,IAAAE,EAAAF,EAAAG,SAAAF,GAAAD,EAAAI,YAAAH,K,iCAII,IACIA,EAAAA,EAAAA,MACJJ,EAAA,WAHJ,YACI,IAAAG,EAAAC,KAAAA,GAAAD,EAAAC,KAAAA,GAAAD,EAAAK,SAAAJ,IAUQK,SAWRC,EAXoCC,GAAAC,EAAAA,EAAAA,eAAiCC,YAAMC,SAAhBC,EAA4CC,GAAYT,OAAAA,EAAAA,MAAAA,sBAAAA,IAAAA,KAAAA,OADvHK,YAAA,cAAAK,WAAAH,cAKYR,SAANY,EAAAA,EAAAA,GADNlB,EAPJkB,GAAAZ,SAAA,2BAAAa,KAAA,aAAAC,G,gBAtDA,OAAApB,EAAAqB,QAAA,EAAA,GAAAC,EAAAC,GAsJoBC,SA8MoBN,IAEAA,EAAAA,EAAAA,iBAEAA,YAAAA,eAAAA,eAAAA,KAAAA,UAAAA,W,uBAxWxCO,EAyWqCC,KAAAA,WAER1B,EAAA2B,MAAAC,GAAA,aAAAlB,GAAAkB,GAAA,OAAAlB,KAER,IAAAmB,YAAA,gBACJD,GAAA,QAAA,SAAAE,GA5ST,IAAAC,EAuWAC,EAAAF,EAAAG,SAvWAF,EAuWcD,EAAAC,OApWdjB,EAAA,QAAAiB,EAAA,IAAA,IACInB,E,yCAAY,gBAAZS,OAAAa,KAAAC,UAAAb,WAAAV,WAAAA,EAAAA,OAAAA,EAGH,cAAAE,EAAA,OAAAiB,MAgWaH,GAAA,UAAA,SAAAE,G,yBA/WZA,IA2FMM,EAYPC,EAxJoCC,EA+E7CC,EAHI,WAIJC,SAAAA,EAAAA,EAAAA,EAAAA,GAJIC,gBAAAd,KAAAe,GArFJf,KAAAgB,oBAAAC,EAAAvC,EAAAwC,GAAA,OA8G2DpD,aAAAiD,EAAA,CAAA,C,iBAAAI,MAAA,WAAA,IAAAN,EAAbK,CArGDd,OAmFtCW,0CAELX,MAAAA,aAAAgB,KAAAC,OAoBEJ,EAAAA,KAAAA,CAnBDvC,OAAAA,OACAwC,IAAAA,aAAAA,aAJIH,KAnFsCF,MAAAD,CA0F1CC,IAAAA,sBACCT,MAAAA,SAAAA,GACAiB,IAAAA,EAAAA,KAIAT,EAAAA,C,8CACAC,MAAAA,aAAAA,KAAAA,MAHMI,MAAAA,EA9FmCvC,OA8FxC0C,EAFDC,UAECD,aAAAA,IAAAA,UAAAA,IAAAA,UAAAA,GA9FwCF,WA+FzCI,EAAAA,UAAQC,OAARD,UAAAA,QAAAA,G,QAxGJA,OAAA,OAAAV,IAAAY,aAAAC,aA8G2DZ,KAAAA,EAyB3Da,QAAA,SAAAH,GAzB2DA,EAAAG,QAAAC,EAAAC,a,eA9G3DvD,EAAA,IAAA4C,EAAA,aAAAY,QAAA,MAAAC,KAAA,kBAAAC,cAAAhB,EAqFI,GAqCAW,EAAyBM,WACpBT,SAAAA,IACEK,gBAAAA,KAALK,GA+BsB,OA5BtBC,aAAAA,EALuB,CAAA,CAiCTC,IAAAA,gCA3BMlB,MAAAA,WAAM7C,EAAAgE,KAAA,wBAAA,CAAAC,KAAA,MAC3BC,KAAAA,CAAAC,YAAAhE,EAAA8C,MAAAjB,OAAA,2BAxHwCoC,KAAAC,SAAAC,GAwJpCrE,EAAA,8BAAA2D,UAAA,CAjKTnC,WAAA,QAAA8C,WAAA,OAAAC,YAS6C,oBA6HzCC,YAAA,CAAA,QAAA,QACJzE,QAAAgE,EACAC,OAAA,CACAxB,OAAA,SAAAA,EAAAiC,GACAP,MAAAA,yCADAQ,OAAAD,EAAAjC,EAAAM,MAAA,MAAAN,EAAAmC,MAAA,W,mBAAA,MAAA,yCAAAD,OAAAD,EAAAjC,EAAAM,MAAA,MAAAN,EAAAmC,MAAA,gBAsCoBL,KAAAA,EAAAA,aAtKyBE,CAmIrCX,IAAAA,kCACgBC,MAAAA,WAAyB/D,EAAAgE,KAAA,0BAAA,CAAAC,KAAA,MAE3BC,KAAAA,CAAAC,YAAAhE,EAAA8C,MAAAjB,OAAA,6BAyCToC,KAAEC,SAAKC,GAzCErE,EAAA,8BAAA2D,UAAA,CA/ItBnC,WAAA,Q,kBAAA+C,YAAA,6BAAAC,YAAA,CAAA,QAAA,Q,UAsJoBhD,OAAAA,CACA8C,OADA9C,SAAAA,EAAAA,GAEA+C,MAAAA,yCAFA/C,OAAAA,EAAAA,EAAAA,MAAAA,MAAAA,EAAAA,MAAAA,WAIAqC,KAAAA,SAAAA,EAAAA,GACAC,MAAQ,yCAAAY,OAAAD,EAAAjC,EAAAM,MAAA,MAAAN,EAAAmC,MAAA,gBAEEP,KAAAC,EAAAjC,eAFFwB,EAjCCD,G,GAjHgBiB,SAAA,SAAAC,EAAAC,GAAA,IA2JjC,OAAA,IAAAA,EAAAC,QAAAF,GACA9E,MAAAA,GACIiE,OAAAA,IAGIjC,sBAAAA,SAAAA,EAAAA,GA4CRiD,MAAAA,yCAA+BC,OAAWR,EAAAjC,EAAAmC,MAAA,WAzClCvC,UACF8C,SAA8BvB,GAC5BnC,QAAY2D,KAAAC,GACAC,MAAAA,EAAAA,eAF0B,eAAAC,EAAAC,eAAA,UAAArF,EAAA6C,KAAAyC,MAAA,KAAAF,EAAAG,WAAA,KAAAH,EAAAjF,OAAA,IAAAiF,IAQ5BN,SAAA,SAAAU,EAAAC,EAAAC,EAAAC,GAFF,OAAAH,GAAA1F,EAAA,kBAAA8F,KAAA,WAN8B,IAAA3F,EAA1CwF,EACInE,MAUA6C,EAjBElE,EAAAsD,KAAA,yBAAAsC,QAAAH,GAAA,EAbF/B,EAAAA,YAAAA,EAAAA,CAjJyBF,kBAAA,QAiO7BqC,SAAU,UAjOmBC,aAAA,KAAA9F,OAAAwD,mBAoOrBuC,YAAQ/F,wCApOauE,OAAAQ,EAAA,gBAmLzCiB,OAAAA,SAAAC,EAAAC,EAAA7D,EAAAV,GAAAsE,EAAA7F,YAAA8F,EAAAC,MAAAzC,QAAA0C,cAAAtF,WAAA,SAAAjB,EAAA,QAnLyCO,YAAA8F,EAAAC,MAAAzC,QAAA2C,WAuL5B1C,GAAA,mBAAA+B,GACK5B,EAACY,EAAAA,EAAQC,EAAAA,KAyCfa,OA1CChC,UAAA+B,SAAAA,EAAAC,GAQLc,OAAAA,GAAuBzG,EAAA,qBAAvByG,IAAAA,eAAAA,IAAAA,8BAAAA,KAAAA,WAAuBtG,IAAAA,EAAAuG,EAAAA,MARlBC,EAAAA,UAAAA,EAAA,CAQkBT,OAAsFP,EAAtFnD,KAAA,YAAA,EACZ2D,QATNhG,EAAAqC,KAAA,WAAArC,EAAAqC,KAAA,WAAAoE,MAAA,KAAAC,IAAA,SAAAC,GAtCGjD,OAAAA,EAAAA,SAiDEyB,GAuDFtF,OAAMyD,CArDdzD,KAAA0F,EAAAe,wBAbKd,OAkBjBtB,YAAAW,SAAAU,EAAAC,GACAtB,OAAAqB,GAAA/B,EAAAA,uBAAAoD,IAAA,oBAAAjB,KAAA,WACAY,EAAAA,MACoBA,YAAArF,EAAA,CA/DAG,YAAAA,GAiEAmE,OAGIN,qBAAAA,WACAW,EAAAA,YAAAA,KAAAA,YAAAA,KAAAA,SAAAA,EAAAA,GACAC,EAAAA,GAAAA,KAAAA,UAAAA,KAAAA,SAAAA,EAAAA,GACAe,EAAMtB,GAAEvE,KALR+D,OAAAA,EAAAA,GAAAA,KAAAA,QAAAA,QAAAA,YAAAA,IAAAA,OAAAA,EAAAA,YASIlF,OAAAA,WAuD5BqE,EAAAW,SAAAhF,EAAA,iBAAA,GAAA,EAAAqE,EAAA4C,sBAtD4BC,EAAKjC,YACDA,EAAAA,YAAAA,EAAAA,kB,GASPtB,KApBDuB,KA0BApB,KAAAA,WACIG,KADIkD,KAAAA,EAAAA,iBACJlD,KADImD,KAAArB,SARhB1B,EAAAgD,S,iCAegBrH,EAAAC,GAAAgC,QAAA,IAAAqF,OAA2BC,MAAA,kBAAA,CACvCxI,OAAA4C,KAAAyF,UAQAD,mBAAAK,SAAAC,EAAAC,EAAAC,GAyBJxH,IA1BAqH,IA0BArH,KAAAA,GA1BAqH,SAAAnD,GASmBrE,IACtB4H,EA3EID,EAAApC,eAmEgCpE,KAIvBsG,EAAAhE,KAAAmE,0BAAAnE,EAAA,UAAAoE,KAAAF,EAAAC,IAEV,mBAfIL,KAiBPK,EAAAD,EAAAJ,GAAAX,MAAA,KAAAC,IAAA,SAAAiB,GAzBmB,OAAAA,EAAAC,OAAAC,gB,mBANZ,MAAA,KAAAF,GAAAA,IAAA5H,EAAA+H,GAAAD,iBAkCCjC,QACT2B,EAAAQ,KAAA,UAAAjH,WAAA,YAAA6E,KAAA,WACZ4B,IAAAF,EAAAvF,EAAAN,MAEA6F,EAAAW,QAAA9D,EAAAO,SAAA4C,EAAAW,MAAAP,GAAAJ,EAAAU,UAAA,GAAAV,EAAAU,UAAA,KAyDA,IAAAN,EAAA7B,QAAA2B,EAAAjE,KAAA,iBAAAmE,EAAA,GAAA,MAAAzG,KAAA,WAAA,a,gCA/CgBiH,CAAAb,GAGEtH,EAAAA,KAAAA,YAAkBM,YAAA,aACnBmH,EAAWzF,UAAQ,GACRyF,EAAKN,QAAAA,UAKjCpH,EAAAC,GAAAoI,QAAAA,0B,sDAgEwCnH,uBAAA,SAAAoH,EAAAX,GAjCXlE,IArBL,IAqBUjB,KAAAmF,GArBV,SAA4BJ,GACZrG,IAKJmH,EALInH,EAAAA,eAAAqG,KACe,SAAAA,EAEbe,EAAAT,KAAAF,EAAAJ,KAENc,EAAArI,EAAA,UAAAuH,EAAA,O,QAGJc,EAAkBvC,KAAA,WACd4B,IAASjE,EAATiE,EAAAA,M,eAGCa,EAAAA,KAHDrB,WAGCS,EAAAJ,GAAA,MAAAnH,KAAA,YAAA,IACDc,EAAAsH,GAAA,oBAAAtH,EAAAsH,GAAA,kBAAAtH,EAAAiH,QAAAR,EAAAJ,GAxKhB/F,EAAAA,KAAAA,WAAAA,GA2KKiH,EAAAA,IAAAd,EAAAJ,MAtB4CmB,QAAA,WA2B5CR,CAAAA,GAIzBK,EAAArB,SA5DqBlH,EAAA2I,GA4HGC,EA5HH,GAyGblH,EAAA,WAKM,SAAAmH,IAEM/I,gBAAAgJ,KAAAA,GACoBC,KAAAA,MAAKC,EAAAA,UAAaC,KAEpCtH,KAAAuH,OAAAhJ,EAAAiJ,UAAAC,MAEFzH,KAAA0H,UAAA,EACA1H,KAAA2H,OAAA,KACAnJ,KAAAA,QAAAA,E,0CArYpBwB,KAAA4H,aAAA,GAAA5H,KAAA6H,oBAAA,EAAA7H,KAAA8H,UAwYiBC,E,wCAEU5J,EAAAgJ,gBADaa,EAERC,KAAAA,SAAFC,EAAAA,mBAFVlI,KAAAqH,aA7MhBhJ,EAAA,IAAA0E,OAAA/C,KAAAgI,MAAAG,QAAA,YAAA,c,2BAmkBIC,OA5WWtK,aAAAiC,EAAA,CAAA,C,WAEG1B,MAADC,WADL6B,IAAAA,EAAAH,KAKIK,KAAYF,KAAAA,OAADH,KAAgBqI,cAAAA,IAA3BhI,EAAAA,gB,gBAIPiI,IAAAA,EAAAA,EAAAA,SAAAA,OA8BJ,MAzBT9J,2BAtOIgE,IAAA+F,gBAAAhH,GAoOAA,IAAAA,S,4CA6DoB/C,EAAAA,GAAAA,GAAKgK,QAAS,kCAAd,SAAArI,GApdqBA,EAAAsI,iBA4ZrCpK,EAAA2B,MAAA0I,OAAA,uBAAA3G,OAhBcuG,EAAAjK,EAAA2B,MAAAa,KAAA,aAoBdV,IAAAmI,GAAc9J,EAAAA,KAAA6I,0BAAA,CA4DN9E,YAAS8E,EAAAA,MA3Db7I,UAAaD,I,iBA6DTC,EAAAmK,KAAIpH,KA5DMhD,KAAAA,SAAKiJ,GACdE,EAAAA,KAAAA,GAEAc,EAAAA,sBAAAA,EAAAA,SA9ajBhK,EAAAgK,OAAA,UAmbiBX,EAAAA,GAAAA,GAAAA,QAALlJ,kBAAKkJ,SAAAA,GACAC,EAAAA,iB,uBA8DLtJ,EAAK6I,aAAKA,SAAV,cAAgC,IAAAlJ,EAAAgJ,iBA5D3BD,EAAAA,MAAAA,EAAAA,aAAc1H,KAAeoJ,MAAAA,QAAlC,WAAA,aACOzB,KAAAA,EAAAA,O,gBAIVnH,OA3bT,CAAAnC,IAAA,gBA+bAsD,MAAA,WACAnB,KAAA6I,SAAAA,QA6Da7I,KAAA6I,SAAAlK,SAAA,YApfgCqB,KAAAqH,aAAAA,S,yHAyb7B7I,KAAAA,aAAAA,KAAAA,aAAAA,EAAAA,YAAAA,KAAAA,QAAAA,EAAAA,eAGH,CAkEbX,IAAA,kBACAsD,MAAA,W,sBAxgBAnB,KAAA6I,SAAAjK,YAAA,YAwcgBkK,KAAAA,aAAAA,S,uDAEAC,KAAAA,aAAAA,KAAAA,QAAAA,YAAAA,gBAkEJ/I,KAAAqH,aAAK2B,KAAL,aAAAhJ,KAAAiJ,oBAAAzJ,KAAA,QAAAQ,KAAAiJ,uBAIA,C,eAjEE3K,MAAAA,WACQmK,IAAAA,EAAAA,KAELjK,EAAOkK,KAAOnH,EAAAA,gBAAAA,E,qBAmEX/C,KAAAA,oBAjEK8J,KAAAA,qBAED/F,KAAAA,KAAAA,2B,0FAGKoG,EAAAA,UAAMpH,GAENoH,EAAAA,KAAAA,CAmEZpH,SAAAA,I,WAjEO/C,EAAAA,KAAKgK,SAAAA,OAAAA,EAAL3E,MAAAqF,qBARJ1K,EAAAA,aAAA+C,EAAA4H,QAUHC,EAAAA,aAAAC,EAAAzB,aAAAxD,OAhBL5F,EAAAA,eAAA8K,E,sDAoBUb,EAJLc,iBAMD/K,EAAAgL,sBAAA,2BAEAhL,EAAAgL,sBAAAjI,EAAAV,KAAAqI,WAECzG,KAAA,SAAAoB,GACJrF,EAAAmK,KAAA9E,GA1ebrF,EAAAgL,sBAAA3F,EAAAqF,SAAA1K,EAAAgK,OA2eY,MACHY,WAAA1B,WAneoClJ,EAAA8K,mBAqerChC,EAAAA,mBACSG,UA/ejB,CAAA5J,IAAA,mBAsfgBsD,MAAA,W,OACHnB,KAAA0H,UAAA,E,kCACJnF,YAAAiH,EAAAA,M,gBA/eoC/B,MAAAzH,KAAAuH,WAqf5B/I,C,qBACI6I,MAAAA,W,WA0EL7I,EAAKmK,oBAAL5F,OAAA/C,KAAAyJ,eAAA,EAAA,QAAA1G,OAAA/C,KAAA0J,cAzEKrC,KAAAA,sBAAAA,G,aAERjJ,EAAAuL,KAAA,kBAAA,C,oBACJrC,KAAAtH,KAAAxB,MAEDA,SAAAA,KAAAoL,aAAA5J,KAAAyJ,gBACRI,KAAA7J,KAAAyJ,iBACAjH,KAAAC,SAAAlB,GACA/C,EAAAA,iBA2EgBA,EAAAA,KAAKgL,SAAAA,OAAAA,EAALC,eAAA,eA1kB6BjL,EAAAA,KAAAgK,GAggBrChK,EAAAA,eAAA8K,EAAAI,e,mBA+ESlL,EA/kB4BkJ,WAAAlJ,EAAAqJ,qBAmgBjCrJ,EAAAiL,iBAAAjL,EAAAkL,cAiFZlL,EAAAoL,oBAEAnH,KAAA,SAAAoB,G,UA/lBArF,EAAAgL,sBAAA3F,EAAAqF,SAimBY1K,EAAAgK,OAAW,M,sBAlFXhK,EAAA8K,mBAoFA9K,EAAAsL,mB,WAhFgBvI,IAAAA,kBAAZpD,MAAAA,WAyFC,IAAAK,EAAAwB,KAxFEuB,KAAAA,KAAAA,oB,+CAEMqG,EAAAA,KAAAA,iBAALmC,C,oBACKL,KAAAA,KAAAA,QACAD,KAAAA,SAuFLlI,GAtFKsG,EAAAA,KAAAA,GACDrJ,EAAAA,UAAC+K,IA4FT/K,EAAIsJ,W,2FAzFK0B,WAAAA,W,qBAEJJ,WAHE,WAIP5K,EAhBJuL,mBAAA,GA+GJvL,EAAAsL,mBA7FQtL,MACA4K,QACI5K,KAAAA,SAAAA,GA+FpBA,EAAAmK,KAAA9E,G,mCAnoBArF,EAAAgK,OAAA,MAAAY,WAsiBiB,WArBL5K,EAAA8K,mBAyBJU,EAAAA,mBACR,U,CA3iBAnM,IAAA,OAAAsD,MAAA,SAAAN,G,OAijB2DtC,EACzB8C,WAClBiG,QAAM9I,IAAAqC,G,OA1iBuB,CAojBjChD,IAAA,qB,iBA7jBZ,IAAAoM,EAAA,EAAAC,UAAA9F,aAAA+F,IAAAD,UAAA,GAAAA,UAAA,GAAA,EAAA1L,EAAAwB,KAkkBgBuC,OAgGJ6H,KAAAA,oBAAoBzC,GAEvB3H,KAAA2H,OAAA0C,YAAA,WAED7L,EAAA8L,sBArGIlM,GAAAA,KACImE,O,CAKA/D,IAAAA,mB,iBACAA,OAsGJ4L,cAAAA,KAAezC,QAtGXnJ,OA6GJ,CAzGQA,IAAAA,oBA4GZ2C,MAAA,SAAAoJ,GAnGQnB,OAPApJ,KAAAwK,oBAAA,GAECxK,KAAAwJ,sBAAA,IAEDhL,cAAAA,KAAAA,Q,eAllBhBwB,KAAA2H,OAAA,KAAA3H,KAAA0H,UAAA,EAmlBgBlJ,G,0BA6GJwB,OAlGZ,CACAnC,IAAA,qBA8GAsD,MAAA,SAAAzC,G,gCA7sBA,OAAAA,EAAA+L,EAAAC,OAS6CD,EAAA1I,OAT7C/B,OAomBY5B,CAAaP,IAAA,wBAAAsD,MAAb/C,SAAAA,G,OAEIkJ,EAAAA,yBAAWU,KAAAA,G,OAENW,CAoHR9K,IAAA,yB,kBAEI2L,EAAAA,yBAnHGrL,IAAAA,CAuHZwM,MAAA3K,KAAAwI,SApHYhK,EAAAA,6BAAAA,IAAAA,CAuHpBmM,MAAA3K,KAAAwI,S,oBAruBAmC,MAAA3K,KAAAwI,SAAA,IAAAU,EAgnBwB1K,EAAAA,OAAAA,MAAAA,EAAKuL,WAAAA,KAwHjB,MAvHiBD,EAAAA,SAuHjBZ,GAtHWxB,iOAEDkD,KAAAA,sBAAAlD,K,0BAIN0B,MAAAA,WACI5K,IAAAA,EADJ4K,EAAAA,6BA4HRxC,EAAAA,EAAAA,2BA1HYpI,EAAKsL,GAAAA,OAAAA,KAAAA,MAAAA,KAAAA,WAAAA,KAGhB3L,EAAAA,IAAA8B,CAED2K,MAAAlD,IAERrJ,EAAA2E,KAAA0E,OA8HY3H,EAxYJ,GA+QI5B,EAAAqJ,GAAAA,CACAA,OAAAA,E,aAECA,UAAAzH,G,0BAKb,OAAA2C,EAAAA,UAAAlD,KAAA,QAAAN,MAAA,qB,0DAKQyE,UAAA8E,oBAAAoC,UACIC,IAAAA,GAkIQA,OA7wByB,KA+oB9Bb,EA/oB8BzC,UA+oB9ByC,MAAAA,EA/oB8BzC,UA6oBjCoB,WAMJhC,EACRrB,OAppB6C7C,EAqpB7CgD,SA3UArH,EAvCqB,oBAAA0M,MAAA,WAtJDlL,IA+LpBuI,EAAA/J,EAAA2B,MACYgL,EAAAA,EAAAA,KAAAA,W,0CACQC,EAAAA,6BAAKjI,KAAqBoE,GAAA8D,SAAA3K,QAAAC,OAAAxB,SACpB4E,WAEE9D,IAAAA,EAAAqE,EAAAA,MACQ9F,EAAC6H,KAAAA,UAAT1H,EAAAqC,KAAqB9B,YAClBV,EAAA,cAFH8M,WAGIzE,UAAAA,SAAexG,GA2D/BkL,EAAAA,cAAapE,IAAA,CAzDGN,IAAAA,EAAAA,MAAgBtC,GAChBsC,KAwDhB/C,EAxDgB+C,MAwDhB,OA/Y6BhE,EAAAA,iBAAAqC,WAAA1G,EAAAC,GAypBjC8L,GAAe,OAAA,iCAAf,SAAAzG,GACOxD,EAAAA,iB,gBAInBhC,GADQ2M,EAAAO,EAAA5F,eACR6F,MAAAjN,KAAAgB,KAAAG,KACAnB,EAAA,qBAAAmI,IAAAsE,KA/pB6C7K,GAiqB7C,QAAA,sBAAA,SAAA0D,GAjqB6CA,EAsyBhC1D,iBAtyBgCE,EAAAA,EAAAA,MAAAsI,KAAAA,iBAAA8C,YAAA,UAkqBrCtL,GAAA,QAAAuL,aAAA,W,0BAEShC,EAAAA,EAAAA,yBACLY,OAAAA,OAAAA,QAAAA,WAAAA,EAAAA,KAAAA,MAAAA,Q,YACK5B,EAAAA,YAALnK,EAAA,kBAAA4B,GAAA,QAEA,sBAAA,SAAAE,GA0IQA,EAAAsI,iB,8BAxIC6B,EAAAA,SAALmB,KAAKnB,EAAAA,MAAAA,KAAAA,UAETN,GAAAA,QAAA,0BAAA,SAAA7J,GACHA,EAPQqI,iBAUjB,IAAAnH,EAAAhD,EAAA,+BAAAmI,MAhrB6CgF,EAAAnN,EAirB7C,0BAEAmN,EAAAE,OA4IgBA,EAAAA,KAAOlF,mBAAP,CA/zB6BmF,kBAAAtK,IAAAsK,KAAAA,SAAAC,GAsrB7BnB,EAAUoB,UAtrBmBL,EAurB5B9M,OAEEyB,SAAAsI,YAGAhG,KAAA,W,mCAInBxC,GAAA,QAAA6L,4BAAAtF,SAAArG,GACAA,EAAAsI,iBACA,IAAAiD,EAAAK,EAAAA,6BACAJ,EAAAK,EAAAA,yBACAN,EAAAO,IAAAA,UA+IgBN,EAAIO,IA3JJ,aAxrB6B,W,WAqsBrC5N,EAAA6N,YAAAA,UAEIF,GAAAA,SAAA,yBAAA,SAAA9L,GACHiM,EAAAA,iBAxsBoC/N,EAAA,wBAAAyN,QAAAA,SA4sBjCO,IA6BIH,EA5BDD,EAAA5N,EAAA2B,MAAAwG,MAA4C4F,EAAK5D,EAAAA,MAAL8D,QAAA,MAAAxK,KAAA,eArB3CiK,EAsBmB1N,EAAA2B,MAAAsM,QAAA,MAAAxK,KAAA,8C,wDA8JXsK,EAhKU,CAAA,QAAA,gBAAtBC,aAAAA,iBAAAA,yBAAAA,sBAAAA,iBAKAE,SAAAT,IAECC,EAAAA,YAyJeK,SAvJX5C,KAAsBN,IAAtBM,IAAAA,EAAAA,QAAAA,YAITgD,EAAAA,kBACRA,oBAEAP,EATa,U,WAntBgCF,EAAAnN,YAAA,YA+tBb,oBAAHP,GAAG,cAAA4N,GAEPF,EACJ5H,KAAA,W,kDACEuD,EAAAA,KAAAA,GADX8E,EAAA1K,KAAA,UAAAkB,KAAAoJ,GAIHI,EAAA1K,KAAA,UAAA0E,IAAAnI,EAAA2B,MAAAa,KAAA,aAELmL,cAAAA,IACYE,EAAA,OA4JYM,EAAYnO,EAACyD,iBAAekB,OAr4BXyJ,EAyuBzCjL,aAAAkL,YAAAR,SAwKY7N,EAAA2B,MAAOqL,QAAQ9M,MAAKkH,KAAKkH,kBAAzBnG,IAAA,IAAA0F,MAzJEU,EAAAA,KAAAA,WAAAA,IA8JcpG,EAALxG,MA9JT4M,SAAAA,EAAAA,MAEMjO,SAAIoB,Y,UA+JZyM,EAAa1K,KAAA,UAAWkB,KAAAoJ,GA5JhB5E,EAAL1F,KAAA,UAAA0E,IAA4BgB,EAAAA,MAAvBA,KAAAA,aAIhBqF,EAAAA,MAAA/K,QAAA,MAAAA,KAAA,kBAAA0E,IAAA,OAGAqG,GAAAA,QAAA/K,wBAAAC,WACE,OAAAsJ,QAAA9M,EAAAkH,KAAAkH,qBArwBmC1M,GA0wB3BwI,SA1wB2B,SAAA,WA2wBzBqC,IAAAA,EAAAA,EAAAA,MACSzM,EAAGyM,EAAAA,MACHpI,EAAAA,EAAGoI,QAAAA,MAMdrC,YAAAA,GACQ5H,EAAAA,KAAAA,oBAAAA,O,iCAGD,cAAAwB,GACKhE,EAAAA,KAAA,oBACGqM,OAEV3F,EAAAA,KAAAA,kBAAAA,QAGP,WAAA1C,IA9xB6BwK,EA+xBvBpE,KAAAA,oBACN1G,OAsJA8K,EAAA/K,KAAA,kBAAAC,UAnJC9B,GAAA,QAAA,UAAA,SAAA0D,GAELtF,EAAAA,iBAGaA,EAAA2B,MAAA6B,QAAA,MAAAsJ,SACLK,EAsJHlG,yBAEDrF,GAAA,SAAM,gBAAF,WAjJA6M,EAAAA,MAAAA,WAEYzO,EAAA2B,MAAC0B,SAAUrD,EAAAA,qBACJqM,OAAAxE,KADI,gFAAAnD,OAAAxE,EAAAkH,KAAAyC,SAAA,WAGtBjI,GAAA,SAAA,cAAA,SAAA0D,EAAA9C,GACGxC,EAAAA,MAAA0O,W,iBAIV1O,EAAAA,qBAAAqM,OAAAxE,KAAA,gFAAAnD,OAAAlC,GAAAA,EAAAmM,KAAAzO,EAAAkH,KAAAuH,KAAAzO,EAAAkH,KAAAyC,SAAA,WAEQO,GAAAA,+BAAN1G,WACe,MAAA1D,EAAAA,eAAAmI,OACAnI,EAAA,4BAAK0D,KAAA,QAEJ1D,EAAAA,iHAAAmB,KAAA,WAAhB,cAKJ,WAAAnB,EAAA,aAAAmI,MACcnI,EAAAA,4BAAAqM,KAAA,QAGRrM,EAAAA,4BAAD0D,KAAC,QAoJD1D,EAAA,iHAnKHiB,WAAA,aAsBMyM,EAAAA,eACoB9L,GAAA,SAAA,W,8BAEpBiM,EAAAA,4BAEJnK,KAAA,QA+II1D,EAAA,iHAAAmB,KAAA,WAAA,cA7IApB,EAAAA,iHAAAkB,WAAA,YAEA2N,WAAYA,EAAAA,aAAZA,MAFA5O,EAAA,4BAGQqM,KAAA,QAGGrM,EAAA,4BAAA0D,KAAA,aAKX9B,GAAA,SAAA,aAHG,WAMP,IAAAgN,EATI5O,EASJ2B,MAAAwG,MA4IY9H,EAAAL,EAAA,gBA3IAO,SAAAA,GAGKF,EAAAA,OAAAqD,IAAA,QAAA,cAAAiB,KAAAzE,EAAAkH,KAAAyH,eACbxK,EAAAA,KAAA,kBAAA,CACYyB,YApBZ5F,EAAA8C,MAqBQ+K,OAASa,IACDtO,KAAAA,SAAAA,GACRqN,WAAAA,GAGHrI,EAAA8E,IAAAA,QAAA,WAAAzF,KAAAzE,EAAAkH,KAAA0H,gBANL9O,WAAA,WAoJA2O,EAAMjL,QApJN,OAWIrD,EAEM0O,OAAApG,IAAA,QAAA,OAFNhE,KAAAzE,EAAAkH,KAAA4H,gBAAA5K,KAMA6K,SAAA3J,GANAjF,EAkJJqH,OAlJIrD,EAmJJiE,UAAYhD,M,8DAtIFmC,EAAAA,iBACFkG,EAAAA,eAAAA,QA8H4B,SA9HPI,C,YAGxBtG,GAAAA,SAAA,YAAA,SAAA3F,GANLA,EAAAsI,iB,oBAUH8E,EAAAzG,EAAAA,MAAAhF,KAAA8B,aAAAwJ,OAGLxG,EAAAA,EAAAA,aAAApB,MAEIO,EAAA1H,EAAA,aACAsI,EAAAtI,EAAA,iBACHyH,EAAAzH,EAAA,uBAIcG,EAXV0H,KAWeM,oFAAAA,EAAAA,KAAAA,aAAAA,SA0IRnE,EAAMP,KA3Id,YAAAnD,SAAA,aAIakC,EAAAA,UAAW,GAEX2M,EAAAA,SAAkB9C,KAAAA,YAFP/L,SAAA,aAGJ4O,EAAAA,KAAAA,gCAAaA,KAAAA,IAGlBzG,EAAAA,eAAed,IACjBY,EAAAA,mBAATpB,EAAAM,EAAAC,EAASqH,IAOG/O,EAAAA,GAAhBC,QAAAgC,2BAIAlC,EAAAgE,KAAA,6BAAA,C,iBAGKf,MAAOoM,EAAAA,MACN7G,SAAAA,EAKV2G,aAAAA,KAEI/K,KAAA,SAAAwD,G,OACQ+G,EAARzO,mBAAAwH,EAAAC,EAAQgH,KATHvK,KAAA,WAYDnE,EAAAC,GAOiBkI,QAAAA,4BACfkH,KAAAA,EAAAA,W,qBAKK9G,EAAAoE,uBAAArE,EAAA+G,EAAAN,IAqIC/O,EAAAA,GAAEiC,QAAA,2BA9HJlC,EAbVuL,KAeU,oBAAA,C,iCACCnH,KAAA,SAAAwD,GAED3H,EAAA+O,GAAApH,EAgIDY,EAAAoE,uBAAArE,EAAAX,GA7HK3H,EAAA,eAAFmI,IAAA+G,GAEGlP,EAAA,iBAAAmI,IAAA8G,GAEN,SAAAF,IAKC/O,EAAA,qBAAcoC,WArClB,YAsCIpC,EAAA,kCAAAmB,KAAA,WAAA,YAGNyN,EAAM,qBAAK3N,WAAA,YACXjB,EAAA,gCAAAmB,KAAA,WAAA,aAIYyN,0BAAAA,GAH6BjK,EAAlC0H,gDAAAA,S,gBAUIrM,EAAAC,GAFHgC,QAAA,4BAGGqN,KAAAA,EAAAA,aAGN1N,GAAA,SAAA,yBAAA,WACFwC,IACC/D,EAAML,EAAA2B,MACA5B,EAAAuL,KAAA,qBAAA,CAhBVpH,YAAAlE,EAAAgD,MAAAuM,SAkBGpP,EAAAA,MAlBHE,OAmBAmO,EAAArO,GAAAqP,QAAA,EAnBA,MAwBFhB,EAAAA,GAAevM,GAAAA,SAAf,sDAAA,WACQuM,IAAAA,EAAAnC,EAAAA,4BAGA,MAAAmC,EAAAA,kCAAArG,OAAA,MAAAnI,EAAA,uCAAAmI,MACJiC,EAANiC,OAGI6C,EAAAA,SAGA5G,GAAAA,SAAa,aAJjB,WAIIA,IAAAA,EAGJtI,EAAA2B,MAHI2G,EA4HAmH,EAAAA,MA5HAnH,EAIU6G,EAAAA,QAAA,MAGK/H,YAAVc,GA0HLsG,EAAA/K,KAAIgM,YAAYhM,OAxHFA,EAAAA,KAAAA,YAAKA,IAAYnD,IACjBmP,EAAAA,KAAAA,eAAApD,SA2HVoD,EAAAA,KAAAA,YAAYC,O,6BAvHLvI,EAAAA,KAAAA,eAAAA,IAAAA,OAG/BvF,GAAA,SAAA,8BAAA,W,4BA0HwB+N,EAAIpC,EAAM9J,KAAGgM,mB,uBAtHdpL,EAAAV,EAAAA,KAAA4J,YACSqC,EAAAA,EAAAA,aADTzH,MAGO0H,EAAAA,KAAAC,gBAAAC,eAAAJ,EAAAxH,QAAA,YAAAnE,EAAAmE,OAAA9D,EAAAO,SAAAuK,EAAAjP,EAAAkH,KAAA0I,gBAAAH,EAAAxH,QAAA,IAAAsH,EAAAO,KAAAA,oBAAAjK,SAAAhG,EAAAA,KAAA,oBAAA+M,SAGYoC,EAAAA,OAAAA,sGAEDhL,EAAAA,OAAAA,0LALXQ,OAAAxE,EAAA+P,WAAA,gBAOwBxI,GAAcC,GAPtC+H,EAAAC,OAAA,8DAY9BQ,EAAAA,EAAAF,KAAAA,yBAdoB3L,EAAAV,UAAAS,EAAA,CAkBFwL,SAhBY,EAuIMM,YAAGF,EAAAA,KAAAA,gBACNH,KAAA,SApHFlD,EAAAA,G,EAccuC,EAAAA,G,gCAZzBlL,KAAA,MACpBjE,KAAAA,CACAiE,YAAA9D,EAAA8C,MAsHwCR,OAAAA,wBArHA0B,SAAAA,KAGaiL,KAAAA,SAAAA,GALrDe,EAuH8CF,EAAArI,GA/GLrF,EAAAA,KAAAA,YAAAwK,WACIoD,KAAAA,EAArB5N,WAMIA,GAAA,aAAA6M,GAAA,wBAAAQ,EAAAxH,MAiB5B+H,EAAAlM,GA1DuBjE,EAAAgE,KAAA,0BAAA,CA2COC,KAAA,MAzDLkE,KA+KF,CAnHOhE,YAAqBjD,EAArB+B,MACAyM,OAAAA,0BAGNA,SAAAA,KAoHAtL,KAAIH,SAAA2D,GAlHEuI,EADFT,EAA4BV,GAE/BU,EAAAhM,KAAA,YAAAqJ,WACG1I,KAAAC,EAAAjC,eAaA,qBAAA+N,EAAAA,OAAA,IAAAV,EAAAhM,KAAA,oBAAAsC,SACR7B,EAEQ/D,KAAAA,QAAAA,S,+GAHZ,YAAA6D,EAAAmE,OAMRsH,EAAAhM,KAAA,oBAAAC,UAoHgB9B,GAAA,SAAI,sBAAiB,SAAA0D,GAhHvBtF,IAAAA,EAAAA,EAAA,aAAAmI,MACFmH,EA+GItP,EA/GmB,aAACqM,MACrBrM,EAAAA,EAAA,gBACHsP,EAAAA,EAAAA,cAGMa,KAAAA,GAAc9D,EAAdzH,SAAAuK,EAAAjP,EAAAkH,KAAAgJ,sBACVC,EAAAA,OA3BhB,aAiCoB/K,EAAAvG,OAAAuR,K,0CACAH,EAASzM,OAEN,QAAAM,EA/IK3D,EAkJJoD,0BAlJIpD,KAAAA,WAAAA,YAsJZuB,QAAAoC,GAAAhE,EAAA,2BAEoBI,KAAA,WAFpBiM,aAAAxJ,QAIYmB,GAAKxB,WAAL2M,GAJZgB,EAoHL9D,OA7GKgE,EAAA3N,QAkHb,SAAAsB,GA7GqByL,EAAAA,QAIC,WAAAc,GA+GnBzJ,EAAExG,SAEFwG,QAAEvG,UA7GgB8D,EAAAA,GAAAA,GAAAA,QAAAA,2CAAAA,WACIuL,EAAAA,MAPJpM,QAAA,MAAAC,KAAA,kBAAA4I,OAQI9H,IAtBZ3B,EAAA5C,EAAA2B,MAAAR,KAAA,MAAAyF,MAAA,KAAA,GA9gBP/D,EAAA7C,EAAA2B,MAAAa,KAAA,YAuiB2BzC,EAAAA,EACIiE,MAAAA,KAAAA,WACAxB,IAAAA,EAAAA,EAAAA,EAAAA,KAEIT,MAAAA,WACAoN,IAAAA,EAAAA,EAAAA,gCAL6BnL,EAAAA,GAAAwM,OAAA,WAK7BrB,EAAAA,GAAAA,aAMP,IACJrI,EAAAxG,SAbD,SA+HvBsB,EA9H2B7B,YA8Hf,eAxGuBgC,EAAAA,GAAAA,GAAAA,QAAAA,+BAFEzB,SAAAgF,GAGF6J,EAvBRpP,iBA0BIuC,EAAAA,QAAAA,CAAAA,SACA4N,IAAAA,KAAAA,O,oEACAT,KAAAA,kBAEPzP,SAAA,QAAA,GAAAyQ,UAEA7O,GAAA,QAAA8O,YAAA9M,W,2BACJ5D,EAAA,iBAAAmI,IAAAgH,KAtCLuB,GAAAA,QAAA,eAAAC,SAAAA,GAwCH3Q,EAAA,yBAAAO,YAAA,YACEmQ,EAAAA,MAAAA,SAAAE,YACEjB,IAAAA,EAAAA,EAAAA,MAAAA,KAAAA,OAEDF,EAAAA,sBAAAA,YAAAA,UA+GpBzP,EAAAA,4BAAE6Q,GAAiCxG,SAAW/J,SAA9C,YA7GoBN,GAAA,SAAA,oCAA8B,WAC1ByP,IAMZiB,EANYjB,EAAAA,EAAAA,MAAAA,KAAAA,aAAAA,OAMZ,IAHC,CAAA,SAAA,WAAA,YAAA,OAAA,uBAAA,YAGDrF,QAAA+E,IAAAnP,EAAA,6BACiB2I,IAAA,UAAA,QADjB3I,EAAA,6BAEoB2I,IAAA,UAAA,SAFpBA,IAEIwH,QAFJ,QAAAO,EAGIL,IAAAA,E,eAIAF,EAAAA,kC,oCAKAnQ,EAAAA,6BAAI8Q,IAAAA,UAAsBC,SACtBV,EAAAA,6BAFR1H,IAAA,UAAA,QAAAA,IAAA,QAAA,WAMY3I,GAAAA,QAAAA,uBAAEgR,SAA0B5Q,GAC/BJ,EAAAA,iBACGA,IAUZ+Q,EAVY/Q,EAAAA,EAAAA,qCAAAA,MAIJqQ,EAAAA,EAAAA,MAAAA,KAAW3M,MAAAA,QAAX,UAAA,IACHuN,EAHM9B,eAGI6B,G,IAxEKjR,CAAAA,SAAAA,WAAAA,YAAAA,OAAAA,uBAAAA,Y,YA6EpBgR,EAAA/Q,EAAA2B,MAAAwN,QAAA,MAAA1L,KAAA,eAAA0E,QACIuI,EAAAA,IAAAA,GAAAE,QAAAA,MAAAA,KAAAA,UAAA9K,KAAA,SAAA5G,EAAAgS,GACAf,EAAAA,GAAAA,KAAAA,aAAAA,SAAAA,MAUhBrN,EAAA9C,EAAA,gBAAAgR,GAAA7I,MAAAnI,EAAA,IAAAiR,GAAAhD,QAAA,MAAAxK,KAAA,SAAA0E,IAAArF,MAKA9C,EARIC,GAQJkR,MAED,WAEC,IAAAhC,EAAUnP,EAAA,cAAAmI,MACRrI,EAAQ0Q,IAAAA,EAET,aAAkBrB,E,oCAGf5O,EAAAA,kCAYwCP,EAAAC,GAAA2B,GAAA,mBAAA,WAHlC,IAAAgG,EAAA5H,EAAA,+CAAA6H,OAAAjB,MAAA,KAAAC,IAAA,SAAAiB,GAOX,OAAAA,EAAAC,OAAAC,gBAEA/H,EAAaD,EAAA,aAKF4H,EAAAwJ,QAGU1J,EAAAjE,KAAIN,UAAAA,KAAhBkL,WACE,IAAA7G,EAAAxH,EAAA2B,MACA6F,EAAAW,QAAA9D,EAAAlB,SAA8B0N,EAAAA,MAAAA,GAAmBvQ,EALxBC,UAAAA,GAAAA,EAAAA,UAAAA,KASxB,IAAAqH,EAAA7B,QAAA2B,EAAgBvE,KAAAA,iBAA5B0K,EAAAA,GAToCtN,MAAAA,KAAAA,WAAAA,aAUnC8Q,EAAAA,KAAAA,UAAuBlO,UAAAA,KAarBnD,EAAAC,GAAA2B,GAAA,QAAAuB,iDACA,WACF,IA2BkBmO,EA3BlBF,EAAAE,CAGIC,MAEHnH,aAAAA,YAAAA,S,6FACEoH,eAAiBrO,aAAAsO,YAAjBD,SACHH,uBAAuBnH,aAAYwH,YAAnCL,SACAL,oBAAgB7P,aAAW2I,YAA3BkH,SA4FQhR,OAAGmD,aAAAkL,YAAiCsD,OAxFxCZ,YAAQa,aAAmB9O,YAA3BiO,OA2FQc,OAAIC,aAAazD,YAAM0D,U,0CAxF1Bd,MAAAA,aAAShD,YAAjB6D,gB,8DAYiBR,EArElBF,aAAAY,WAqE8B5D,cAIPe,IAAAA,EAAnBrP,EAAA2R,SAAAQ,OAEOjS,EADM2Q,IAAAA,gBAAAA,GACNuB,IAAA,UACMtB,EAAAA,0BAAAA,KAAAA,SAAAA,EAAAA,GAPjB,IAAAgB,EAAA5R,EAAA8C,GAAAqF,MAYA2J,EAjFA9R,EAAA,yBAAAmS,GAAAC,SAAA5S,IAAA2I,OAoFJlI,IAAAA,EAAAoS,QAAAP,EAAA,CAAA,IAAA3O,aAAAkL,YAAAR,SAAA,IAAA1K,aAAAkL,YAAAsD,OAAA,IAAAxO,aAAAkL,YAAA0D,aACA/R,EAAA,yBAAAmS,GAAAC,SAAA5S,IAAA2I,IAAA,IAGYP,EAAAA,KAAAA,EAAU,SAAA0K,EAAAC,GAFhBtS,IAAAA,IA1EHsS,EAAA,MAAAjB,EAAAA,EAAAiB,4MA/wCH","file":"woo-feed-admin.min.js","sourcesContent":["// noinspection JSUnresolvedletiable\n/**!\n * WooFeed Scripts\n * @version 3.3.6\n * @package WooFeed\n * @copyright 2020 WebAppick\n *\n */\n/* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */\n// noinspection JSUnresolvedVariable\n(function($, window, document, wpAjax, opts) {\n \"use strict\";\n /**\n * All of the code for your admin-facing JavaScript source\n * should reside in this file.\n *\n * Note: It has been assumed you will write jQuery code here, so the\n * $ function reference has been prepared for usage within the scope\n * of this function.\n *\n * This enables you to define handlers, for when the DOM is ready:\n */\n\n /**\n * disable element utility\n *\n * @since 3.1.9\n *\n * @param {*} status\n * @returns {$|HTMLElement}\n */\n $.fn.disabled = function(status) {\n $(this).each(function() {\n let self = $(this),\n prop = 'disabled';\n\n if (typeof self.prop(prop) !== 'undefined') {\n self.prop(prop, status === void 0 || status === true);\n } else {\n !0 === status ? self.addClass(prop) : self.removeClass(prop);\n }\n });\n return self; // method chaining\n };\n\n /**\n * Check if a HTMLElement or jQuery is disabled\n */\n $.fn.isDisabled = function() {\n let self = $(this),\n prop = 'disabled';\n return typeof self.prop(prop) !== 'undefined' ? self.prop(prop) : self.hasClass(prop);\n };\n\n /**\n * Clear Tooltip for clip board js\n * @param {Object} event\n */\n const clearTooltip = (event) => {\n $(event.currentTarget).removeClass( (index, className) => (className.match(/\\btooltipped-\\S+/g) || []).join(' ') ).removeClass('tooltipped').removeAttr('aria-label');\n };\n\n const showTooltip = (elem, msg) => {\n $(elem).addClass('tooltipped tooltipped-s').attr('aria-label', msg);\n };\n\n const fallbackMessage = (action) =>{\n let actionMsg,\n actionKey = action === 'cut' ? 'X' : 'C';\n\n if (/iPhone|iPad/i.test(navigator.userAgent)) {\n actionMsg = 'No support :(';\n } else if (/Mac/i.test(navigator.userAgent)) {\n actionMsg = 'Press ⌘-' + actionKey + ' to ' + action;\n } else {\n actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;\n }\n\n return actionMsg;\n };\n\n /**\n * Alias of jQuery.extend()\n * @param {Object} _default\n * @param {Object} _args\n */\n const extend = (_default, _args) => $.extend(true, {}, _default, _args);\n\n\t/*\n\t* Handles product attributes\n\t*\n\t* @since 4.4.18\n\t* */\n\tclass WooFeedCustomFields {\n\n\t\tconstructor( field, status, isTaxonomy ) {\n\t\t\tthis.productCustomFields( field, status, isTaxonomy );\n\t\t}\n\n\t\tcacheClear() {\n\t\t\tlet data = {\n\t\t\t\taction: 'woo_feed_product_attribute_cache_remove',\n\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\n\t\t\t};\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\n\t\t\t\tdata\n\t\t\t});\n\t\t}\n\n\t\tproductCustomFields( field, status = false, isTaxonomy ) {\n\t\t\tlet data = {\n\t\t\t\taction: 'woo_feed_custom_fields_status_change',\n\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\n\t\t\t\tfield,\n\t\t\t\tstatus,\n\t\t\t\tisTaxonomy\n\t\t\t};\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\n\t\t\t\tdata,\n\t\t\t\tsuccess: ( response ) => {\n\t\t\t\t\tif( response.success ) {\n\t\t\t\t\t\tthis.cacheClear();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log( response );\n\t\t\t\t\t}\n $('#'+field+'-switcher').closest('td').find('.switch-loader').hide();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n /*\n * Handles product categories\n *\n * @since 4.4.39\n * */\n class WooFeedFeedCategories {\n wooFeed_get_google_categories () {\n wpAjax.send('get_google_categories', {\n type: 'GET',\n data: {\n _ajax_nonce: opts.nonce,\n action: \"get_google_categories\",\n // provider: provider\n }\n }).then(function (response) {\n $('.selectize-google-category').selectize({\n valueField: 'value',\n labelField: 'text',\n placeholder: 'Select a category',\n searchField: ['value', 'text'],\n options: response,\n render: {\n option: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.value + ' - ' + data.text)}</div>`,\n item: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.value + ' - ' + data.text)}</div>`\n }\n });\n }).fail(helper.ajax_fail);\n }\n\n wooFeed_get_facebook_categories() {\n // get facebook categories\n wpAjax.send('get_facebook_categories', {\n type: 'GET',\n data: {\n _ajax_nonce: opts.nonce,\n action: \"get_facebook_categories\",\n // provider: provider\n }\n }).then(function (response) {\n $('.selectize-google-category').selectize({\n valueField: 'value',\n labelField: 'text',\n placeholder: 'Select a Facebook category',\n searchField: ['value', 'text'],\n options: response,\n render: {\n option: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.value + ' - ' + data.text)}</div>`,\n item: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.value + ' - ' + data.text)}</div>`\n }\n });\n }).fail(helper.ajax_fail);\n }\n }\n\n let $copyBtn,\n clipboard,\n googleCategories,\n facebookCategories,\n helper = {\n in_array: (needle, haystack) => {\n try {\n return haystack.indexOf(needle) !== -1;\n } catch (e) {\n return false;\n }\n },\n selectize_render_item: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.text)}</div>`, // phpcs:ignore WordPressVIPMinimum.JS.StringConcat.Found,\n ajax_fail: e => {\n console.warn(e);\n alert(e.hasOwnProperty('statusText') && e.hasOwnProperty('status') ? opts.ajax.error + '\\n' + e.statusText + ' (' + e.status + ')' : e);\n },\n /**\n * Initialize Sortable\n * @param {$|HTMLElement} el\n * @param {object} config\n * @param {int|boolean} column\n * @param {function} onDrop\n * @return {$|HTMLElement}\n */\n sortable: (el, config, column, onDrop) => {\n return (el || $('.sorted_table')).each(function() {\n let self = $(this),\n column_count = self.find('tbody > tr:eq(0) > td').length || column || 9;\n self.wf_sortable(extend({\n containerSelector: 'table',\n itemPath: '> tbody',\n itemSelector: 'tr',\n handle: 'i.wf_sortedtable',\n placeholder: `<tr class=\"placeholder\"><td colspan=\"${column_count}\"></td></tr>`,\n onDrop: ($item, container, _super, event) => {\n $item.removeClass(container.group.options.draggedClass).removeAttr('style');\n $(\"body\").removeClass(container.group.options.bodyClass);\n if ( onDrop && 'function' === typeof( onDrop ) ) {\n onDrop( $item, container, _super, event );\n }\n },\n }, config));\n });\n },\n selectize: (el, config) => {\n return (el || $('select.selectize')).not('.selectized').not('.selectize-google-category').each(function() {\n let self = $(this);\n self.selectize(extend({\n create: self.data('create') || false,\n plugins: self.data('plugins') ? self.data('plugins').split(',').map(function(s) {\n return s.trim();\n }) : [],\n //['remove_button'],\n render: {\n item: helper.selectize_render_item\n }\n }, config));\n });\n },\n fancySelect: (el, config) => {\n return (el || $('select.fancySelect')).not('.FancySelectInit').each(function() {\n let self = $(this);\n self.fancySelect(extend({\n maxItemShow: 3\n }, config));\n });\n },\n reindex_config_table: () => {\n $('#table-1').find('tbody tr').each( ( x, el ) => {\n $(el).find('[name]').each( ( x1, el ) => {\n $(el).attr('name', $(el).attr('name').replace(/(\\[\\d\\])/g, `[${x}]`));\n } );\n } );\n },\n common: () => {\n helper.sortable( $('.sorted_table'), {}, 9, helper.reindex_config_table );\n helper.selectize();\n helper.fancySelect($('.outputType'));\n }\n },\n // helper functions\n feedEditor = {\n /**\n * The Editor Form Elem.\n * @type {$|HTMLElement}\n */\n form: null,\n\n /**\n * Initialize The Feed Editor {Tabs...}\n * @returns {void}\n */\n init: function () {\n let self = this;\n self.form = $('.generateFeed');\n if (!self.form.length) return;\n helper.common();\n // noinspection JSUnresolvedVariable\n $(document).trigger('feed_editor_init');\n $(document).trigger(new jQuery.Event('feedEditor.init', {\n target: this.form\n }));\n },\n\n /**\n * Render Merchant info ajax response and handle allowed feed type for selected merchant\n * @param {$|HTMLElement} merchantInfo jQuery dom object\n * @param {$|HTMLElement} feedType jQuery dom object\n * @param {Object} r ajax response object\n */\n renderMerchantInfo: function (merchantInfo, feedType, r) {\n for (let k in r) {\n if (r.hasOwnProperty(k)) {\n merchantInfo.find('.merchant-info-section.' + k + ' .data').html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\n\n if ('feed_file_type' === k) {\n (function() {\n let types = r[k].split(\",\").map(function(t) {\n return t.trim().toLowerCase();\n }).filter(function(t) {\n // noinspection JSUnresolvedVariable\n return t !== '' && t !== opts.na.toLowerCase();\n });\n\n if (types.length) {\n feedType.find('option').removeAttr('selected').each(function() {\n let opt = $(this);\n opt.val() && !helper.in_array(opt.val(), types) ? opt.disabled(!0) : opt.disabled(!1);\n });\n if (types.length === 1) feedType.find('option[value=\"' + types[0] + '\"]').attr('selected', 'selected');\n } else feedType.find('option').disabled(!1);\n })();\n }\n }\n }\n\n merchantInfo.find('.spinner').removeClass('is-active');\n feedType.disabled(!1);\n feedType.trigger('change');\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n feedType.parent().find('.spinner').removeClass('is-active');\n },\n\n /**\n * Render Feed Template Tabs and settings while creating new feed.\n * @param {$|HTMLElement} feedForm feed from query dom object\n * @param {object} r merchant template ajax response object\n */\n renderMerchantTemplate: function (feedForm, r) {\n let _loop = function _loop(k) {\n if (r.hasOwnProperty(k)) {\n if ('tabs' === k) {\n // noinspection JSUnresolvedFunction\n feedForm.html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\n } else {\n let contentSettings = $('[name=\"' + k + '\"]');\n\n if (contentSettings.length) {\n contentSettings.each(function() {\n let elem = $(this);\n\n if (elem.is('select')) {\n elem.find('[value=\"' + r[k] + '\"]').prop('selected', true);\n } else if ((elem.is('[type=checkbox]') || elem.is('[type=radio]')) && elem.val() === r[k]) {\n elem.prop('checked', true);\n } else {\n elem.val(r[k]); // type=text\n }\n }).trigger('change');\n }\n }\n }\n };\n\n for (let k in r) {\n _loop(k);\n }\n\n feedEditor.init();\n }\n },\n // Feed Editor Table\n merchantInfoCache = [],\n merchantTemplateCache = [],\n tooltip = () => {\n // Tooltip only Text\n $('.wfmasterTooltip')\n .hover(function () {\n // Hover over code\n let self = $(this), title = self.attr('wftitle');\n self.data('tipText', title).removeAttr('wftitle');\n $('<p class=\"wftooltip\"></p>').text(title).appendTo('body').fadeIn('slow');\n }, function () {\n // Hover out code\n let self = $(this);\n self.attr('wftitle', self.data('tipText'));\n $('.wftooltip').remove();\n })\n .mousemove(function (e) {\n $('.wftooltip').css({\n top: e.pageY + 10,\n left: e.pageX + 20\n });\n });\n },\n clip = () => {\n $copyBtn = $('.toClipboard');\n if (!ClipboardJS.isSupported() || /iPhone|iPad/i.test(navigator.userAgent)) {\n $copyBtn.find('img').hide(0);\n } else {\n $copyBtn.each(function() {\n $(this).on('mouseleave', clearTooltip).on('blur', clearTooltip);\n });\n clipboard = new ClipboardJS('.toClipboard');\n clipboard.on('error', function(event) {\n showTooltip(event.trigger, fallbackMessage(event.action));\n }).on('success', function(event) {\n showTooltip(event.trigger, 'Copied');\n });\n }\n };\n\n /**\n * Feed Generator Module\n */\n class feedGenerator {\n\n /**\n * Constructor\n * @constructor\n */\n constructor() {\n this._feed = opts.generator.feed; // wf_config+xxxx\n this._limit = opts.generator.limit;\n this._progress = 0;\n this._timer = null;\n this._color = false;\n // batch info\n this._total_batch = 0;\n this._current_batch = 0;\n this._product_ids = [];\n this._progress_per_batch = 0;\n this._refresh = true;\n // noinspection JSUnresolvedVariable\n this._regenerate = opts.generator.regenerate;\n window.isRegenerating = false;\n this._all_btn = $('.wpf_regenerate');\n this._current_btn = $(`#${this._feed.replace( 'wf_config', 'wf_feed_' )}`);\n this._current_btn_label = '';\n }\n\n /**\n * Init Hooks (Event)\n * @return {feedGenerator}\n */\n init() {\n let self = this;\n if ( '' !== this._feed && this._regenerate && false === window.isRegenerating ) {\n this.generate();\n }\n\n //thickbox body add feed plugin class to make it unique and custom style\n let current_page_query = window.location.search;\n let params = new URLSearchParams(current_page_query);\n let page_name = params.get(\"page\");\n if( \"webappick-manage-feeds\" === page_name ) {\n $('body').addClass('woo-import-popup-body');\n }\n\n $(document).on('click', '.woo-feed-campaign-close-button', function(event) {\n event.preventDefault();\n\n $(this).parent('.woo-feed-promotion').hide();\n let condition = $(this).data('condition');\n if(1 === condition) {\n wpAjax.post( 'woo_feed_hide_promotion', {\n _ajax_nonce: opts.nonce,\n condition: condition,\n } ).then( response => {\n self._log( response );\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n } );\n }\n });\n\n $(document).on('click', '.wpf_regenerate', function(event) {\n event.preventDefault();\n self._current_btn = $( this );\n if( self._current_btn.hasClass('disabled') || window.isRegenerating === true ) return;\n self._feed = self._current_btn.attr('id').replace( 'wf_feed_', 'wf_config' );\n if( '' !== self._feed ) {\n self.generate();\n }\n });\n return this;\n }\n\n _block_button() {\n if ( this._all_btn.length ) {\n this._all_btn.addClass('disabled');\n }\n if ( this._current_btn.length ) {\n this._current_btn.find('span').addClass('wpf_spin reverse_spin');\n this._current_btn_label = this._current_btn.attr('title');\n // noinspection JSUnresolvedVariable\n this._current_btn.attr( 'aria-label', opts.regenerate ).attr( 'title', opts.regenerate );\n }\n }\n\n _unblock_button() {\n if ( this._all_btn.length ) {\n this._all_btn.removeClass('disabled');\n }\n if ( this._current_btn.length ) {\n this._current_btn.find('span').removeClass('wpf_spin');\n this._current_btn.find('span').removeClass('reverse_spin');\n this._current_btn.attr( 'aria-label', this._current_btn_label ).attr( 'title', this._current_btn_label );\n }\n }\n\n /**\n * Generate Feed\n * @return void\n */\n generate() {\n let self = this;\n window.isRegenerating = true;\n this._block_button();\n this._resetProgressBar();\n this._progressBarActive();\n this._log( 'Counting Total Products' );\n this._updateProgressStatus( 'Fetching products.' );\n this._get_product_ids().then( response => {\n this._progress = 10;\n self._log( {response} );\n if(response.success) {\n self._log( `Total ${response.total} Products found.` );\n self._product_ids = response.product;\n self._total_batch = this._product_ids.length;\n self._current_batch = 0;\n self._progress_per_batch = ( 90 - this._progress ) / this._total_batch;\n self._process_batch();\n self._updateProgressStatus( 'Processing Products...' );\n } else {\n self._updateProgressStatus( response.data.message );\n }\n }).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Get Product Ids\n * @returns {$.promise}\n * @private\n */\n _get_product_ids() {\n this._progress = 5;\n return wpAjax.post( 'get_product_information', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n limit: this._limit,\n } );\n }\n\n /**\n * Run the Batch\n * @private\n */\n _process_batch() {\n let self = this;\n let status = `Processing Batch ${this._current_batch+1} of ${this._total_batch}`;\n this._updateProgressStatus( status );\n this._log( status );\n wpAjax.post( 'make_batch_feed', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n products: this._product_ids[this._current_batch],\n loop: this._current_batch,\n } ).then( response => {\n self._current_batch++;\n self._log( `Batch ${self._current_batch} Completed` );\n self._log( response );\n if ( self._current_batch < self._total_batch ) {\n self._process_batch();\n self._progress += self._progress_per_batch;\n }\n if ( self._current_batch === self._total_batch ) {\n self._save_feed_file();\n }\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Save Feed Data from temp to feed file\n * @private\n */\n _save_feed_file() {\n let self = this;\n this._log( 'Saving feed file' );\n this._updateProgressStatus( 'Saving feed file' );\n wpAjax.post( 'save_feed_file', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n } ).then( response => {\n self._log( response );\n self._progress = 100;\n if ( self._refresh ) {\n window.location.href = `${opts.pages.list.feed}&link=${response.url}&cat=${response.cat}`;\n }\n setTimeout( function(){\n self._stopProgressBar();\n setTimeout( function(){\n self._resetProgressBar( true );\n self._unblock_button();\n }, 3000 );\n }, 2500 );\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Console log wrapper with debug settings.\n * @param data\n * @returns {feedGenerator}\n * @private\n */\n _log( data ) {\n // noinspection JSUnresolvedVariable\n if ( opts.wpf_debug ) {\n console.log( data );\n }\n return this;\n }\n\n /**\n * Run the progressbar refresh interval\n * @param {int} refreshInterval\n * @returns {feedGenerator}\n * @private\n */\n _progressBarActive( refreshInterval = 0 ) {\n let self = this;\n this._toggleProgressBar( true );\n this._timer = setInterval( function(){\n self._updateProgressBar();\n }, refreshInterval || 1000 );\n return this;\n }\n\n /**\n * Stop Progressbar\n * @returns {feedGenerator}\n * @private\n */\n _stopProgressBar() {\n clearInterval( this._timer );\n return this;\n }\n\n /**\n * Reset Progressbar\n * @returns {feedGenerator}\n * @private\n */\n _resetProgressBar( update ) {\n this._toggleProgressBar( false );\n this._updateProgressStatus( '' );\n clearInterval( this._timer );\n this._color = false;\n this._timer = null;\n this._progress = 0;\n if ( update ) {\n this._updateProgressBar();\n }\n return this;\n }\n\n /**\n * Show hide the progress bar el\n * @param status\n * @returns {feedGenerator}\n * @private\n */\n _toggleProgressBar( status ) {\n let table = $('#feed_progress_table');\n if ( status ) {\n table.show();\n } else {\n table.hide();\n }\n return this;\n }\n\n /**\n * Update Progress bar text status\n * @param {string} status\n * @returns {feedGenerator}\n * @private\n */\n _updateProgressStatus( status ) {\n $( '.feed-progress-status' ).html( status );\n return this;\n }\n\n _getErrorMessageByCode( error ){\n let progress_message = $( '.feed-progress-status' );\n progress_message.css( {'color':this._color});\n $( '.feed-progress-percentage' ).css( {'color':this._color});\n $( '.wpf_spin' ).css( {'color':this._color});\n\n let message=error.status +' : '+ error.statusText+'. ';\n if(500===error.status){\n message+= \"Please increase your PHP max_execution_time. Please <a target='_blank' href='https://webappick.com/docs/woo-feed/faq-for-woocommerce-product-feed/how-to-solve-processing-10-feed-generation-stuck-error/'>read this doc</a>.\";\n }\n\n this._updateProgressStatus(message);\n\n }\n\n /**\n * Update Progress Data\n * hooked with setInterval\n * @private\n */\n _updateProgressBar() {\n let percentage = $( '.feed-progress-percentage' ),\n bar = $( '.feed-progress-bar-fill' ),\n _progress = `${Math.round( this._progress )}%`;\n bar.css( {\n width: _progress,\n } );\n percentage.text( _progress );\n }\n }\n // expose to the global scope\n window.wf = {\n helper: helper,\n feedEditor: feedEditor,\n generator: feedGenerator,\n };\n\n $(window).on('load', function() {\n // Template loading ui conflict\n if ($(location).attr(\"href\").match(/webappick.*feed/g) !== null) {\n $('#wpbody-content').addClass('woofeed-body-content');\n }\n\n // ClipBoardJS\n clip();\n // postbox toggle\n postboxes.add_postbox_toggles(pagenow);\n // initialize generator\n let generator = new feedGenerator();\n generator.init();\n // noinspection JSUnresolvedVariable\n if( '' !== opts.generator.feed && opts.generator.regenerate ) {\n\n }\n // initialize editor\n feedEditor.init();\n helper.common(); // Generate Feed Add Table Row\n tooltip();\n // validate feed editor\n $(\".generateFeed\").validate();\n\n // document events\n $(document)\n .on('blur', 'input[name=\"wfDAttributeName\"]', function(e) {\n e.preventDefault();\n let attr_name = $(this).val();\n attr_name = attr_name.toLowerCase();\n attr_name = attr_name.split(' ').join('_');\n\n $('#wfDAttributeCode').val(attr_name);\n\n })\n .on('click', '[data-toggle_slide]', function(e) {\n e.preventDefault();\n $($(this).data('toggle_slide')).slideToggle('fast');\n })\n // XML Feed Wrapper\n .on('click', '#wf_newRow', function () {\n let tbody = $('#table-1 tbody'),\n template = $('#feed_config_template').text().trim().replace(/__idx__/g, tbody.find('tr').length);\n tbody.append(template);\n helper.fancySelect($('.outputType'));\n })\n // feed delete alert.\n .on('click', '.single-feed-delete', function (event) {\n event.preventDefault();\n // noinspection JSUnresolvedVariable\n if (confirm(opts.form.del_confirm)) {\n window.location.href = $(this).attr('val');\n }\n })\n // clear cache data.\n .on('click', '.wf_clean_cache_wrapper', function(event) {\n event.preventDefault();\n var nonce = $('.woo-feed-clean-cache-nonce').val();\n var loader = $('.woo-feed-cache-loader');\n\n //show loader\n loader.show();\n\n // passed cache nonce\n wpAjax.post('clear_cache_data', {\n _ajax_clean_nonce: nonce\n }).then(function (response) {\n if( response.success ) {\n loader.hide(); //hide loader\n location.reload();\n }\n }).fail(function () {\n console.log('something wrong');\n });\n\n })// Copy Status\n .on('click', '#woo-feed-copy-status-btn', function(event) {\n event.preventDefault();\n let button = $('#woo-feed-copy-status-btn');\n let status_area = $('#woo-feed-status-area');\n button.val('Copied');\n status_area.css('visibility','visible');\n status_area.select();\n\n document.execCommand('copy');\n })\n // feed value dropdown change.\n .on('change', '.wf_attr.wf_attributes', function(event) {\n event.preventDefault();\n\n $('.fancy-picker-picked').trigger(\"click\"); // trigger fancy select box clicked\n\n // price attributes\n var price_attributes = ['price', 'current_price', 'sale_price', 'price_with_tax', 'current_price_with_tax', 'sale_price_with_tax', 'shipping_cost'];\n // current value\n var current_attribute_value = $(this).val();\n var outputSelect = $(this).parents('tr').find('.outputType');\n var fancyOption = $(this).parents('tr').find('.fancy-picker-content .fancy-picker-option');\n var fancyDataPicker = $(this).parents('tr').find('.fancy-picker-data span');\n var selectIf, selectKey;\n var currency;\n\n // when any attribute is selected, pick the key\n if( price_attributes.includes(current_attribute_value) ) {\n // when select any price attribute\n selectIf = 'for_price';\n selectKey = \"Price\";\n } else if ( \"\" !== current_attribute_value && -1 !== current_attribute_value.indexOf('wf_taxo') ) {\n\n // when select any custom taxonomy\n selectIf = 'for_custom_taxo';\n selectKey = \"parent_if_empty\";\n } else {\n\n selectIf = 'for_all';\n selectKey = 'Default';\n }\n\n // remove selected class from old selected option\n fancyOption.removeClass('selected');\n\n // when value dropdown is selected as price or any custom taxonomy\n if( selectIf === 'for_custom_taxo' || selectIf === 'for_price' ) {\n // update \"Option Type\" when select key matches\n fancyOption.each(function() {\n if( selectKey === $(this).text() ) {\n $(this).addClass('selected');\n fancyDataPicker.text(selectKey);\n outputSelect.find(\"option\").text(selectKey);\n outputSelect.find(\"option\").val( $(this).data('value') );\n }\n });\n\n if( \"for_price\" === selectIf ) {\n var feedCurrency = $('#feedCurrency').val();\n if( \"undefined\" !== typeof feedCurrency && null !== feedCurrency ) {\n currency = feedCurrency;\n }else {\n currency = wpf_ajax_obj.woocommerce.currency;\n }\n\n //for price add currency to the suffix\n $(this).closest(\"tr\").find(\"td:eq(5) input\").val(\" \" + currency);\n }\n\n } else {\n fancyOption.each(function(){\n if( selectKey === $(this).text() ){\n $(this).addClass('selected');\n fancyDataPicker.text(selectKey);\n outputSelect.find(\"option\").text(selectKey);\n outputSelect.find(\"option\").val( $(this).data(\"value\") );\n }\n });\n\n $(this).closest(\"tr\").find(\"td:eq(5) input\").val(\"\");\n }\n\n })\n // bulk delete alert.\n .on('click', '#doaction, #doaction2', function () {\n // noinspection JSUnresolvedVariable\n return confirm(opts.form.del_confirm_multi);\n })\n // Generate Feed Table Row Delete\n .on('change', '.dType', function () {\n let self = $(this),\n type = self.val(),\n row = self.closest('tr');\n\n if (type === 'pattern') {\n row.find('.value_attribute').hide();\n row.find('.value_pattern').show();\n } else if (type === 'attribute') {\n row.find('.value_attribute').show();\n row.find('.value_pattern').hide();\n } else if (type === 'remove') {\n row.find('.value_attribute').hide();\n row.find('.value_pattern').hide();\n }\n })\n // Generate Feed Form Submit\n .on('click', '.delRow', function (e) {\n e.preventDefault();\n $(this).closest('tr').remove();\n helper.reindex_config_table();\n })\n .on('submit', '#generateFeed', function () {\n // Feed Generating form validation\n $(this).validate();\n\n if ($(this).valid()) {\n $(\".makeFeedResponse\")\n .show()\n .html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n }\n })\n // Generate Update Feed Form Submit\n .on('submit', '#updatefeed', function (e, data) {\n // Feed Generating form validation\n $(this).validate();\n\n if ($(this).valid()) {\n $(\".makeFeedResponse\")\n .show()\n .html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${data && data.save ? opts.form.save : opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n }\n })\n .on( 'ready woo_feed_config_loaded', function(){\n\n if( $('#ftpenabled').val() === '0' ){\n $('.google-merchant-message').hide('slow');\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').attr('disabled','disabled');\n } else {\n if( $('#provider').val() === 'google' ) {\n $('.google-merchant-message').show('slow');\n } else {\n $('.google-merchant-message').hide('slow');\n }\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').removeAttr('disabled');\n }\n\n $('#ftpenabled').on('change', function(){\n if( $('#ftpenabled').val() === '0' ){\n $('.google-merchant-message').hide('slow');\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').attr('disabled','disabled');\n } else {\n\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').removeAttr('disabled');\n\n // Google merchant specific message\n if( $('#provider').val() === 'google' ){\n $('.google-merchant-message').show('slow');\n } else {\n $('.google-merchant-message').hide('slow');\n }\n\n }\n });\n })\n .on('change', '.ftporsftp', function () {\n let server = $(this).val(),\n status = $('.ssh2_status');\n\n if (server === 'sftp') {\n // noinspection JSUnresolvedVariable\n status.show().css('color', 'dodgerblue').text(opts.form.sftp_checking);\n wpAjax.post('get_ssh2_status', {\n _ajax_nonce: opts.nonce,\n server: server\n }).then(function (response) {\n if (response === 'exists') {\n // noinspection JSUnresolvedVariable\n status.css('color', '#2CC185').text(opts.form.sftp_available);\n setTimeout(function () {\n status.hide();\n }, 1500);\n } else {\n // noinspection JSUnresolvedVariable\n status.show().css('color', 'red').text(opts.form.sftp_warning);\n }\n }).fail(function (e) {\n status.hide();\n helper.ajax_fail(e);\n });\n } else {\n status.hide();\n }\n })\n .on('click', '[name=\"save_feed_config\"]', function (e) {\n e.preventDefault();\n $('#updatefeed').trigger('submit', {\n save: true\n });\n })\n .on('change', '#provider', function (event) {\n event.preventDefault();\n\n let merchant = $(this).val(),\n templateName = $(this).find(':selected').text(),\n name = $('#filename').val(),\n feedType = $(\"#feedType\"),\n feedForm = $(\"#providerPage\"),\n merchantInfo = $('#feed_merchant_info'); // set loading..\n\n // noinspection JSUnresolvedVariable\n feedForm.html('<h3><span style=\"float:none;margin: -3px 0 0;\" class=\"spinner is-active\"></span> ' + opts.form.loading_tmpl + '</h3>'); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n\n merchantInfo.find('.spinner').addClass('is-active');\n feedType.disabled(!0); // disable dropdown\n\n feedType.parent().find('.spinner').addClass('is-active');\n merchantInfo.find('.merchant-info-section .data').html(''); // remove previous data\n // Get Merchant info for selected Provider/Merchant\n\n if (merchantInfoCache.hasOwnProperty(merchant)) {\n feedEditor.renderMerchantInfo(merchantInfo, feedType, merchantInfoCache[merchant]);\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n } else {\n wpAjax.send('woo_feed_get_merchant_info', {\n type: 'GET',\n data: {\n nonce: opts.nonce,\n provider: merchant,\n templateName: templateName\n }\n }).then(function (r) {\n merchantInfoCache[merchant] = r;\n feedEditor.renderMerchantInfo(merchantInfo, feedType, r);\n }).then(function(){\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n }).fail(helper.ajax_fail);\n } // Get FeedForm For Selected Provider/Merchant\n\n\n if (merchantTemplateCache.hasOwnProperty(merchant)) {\n feedEditor.renderMerchantTemplate(feedForm, merchantTemplateCache[merchant]);\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n } else {\n wpAjax.post('get_feed_merchant', {\n _ajax_nonce: opts.nonce,\n merchant: merchant\n }).then(function (r) {\n merchantTemplateCache[merchant] = r;\n feedEditor.renderMerchantTemplate(feedForm, r);\n $('#utm_source').val(templateName);\n $('#utm_campaign').val(name);\n //when merchant is bing, change delimiter and enclosure\n if( 'bing' === merchant ) {\n //delimiter value\n $(\"#delimiter option\").removeAttr('selected');\n $(\"#delimiter option[value=\\\"tab\\\"]\").attr('selected', 'selected');\n\n //enclosure value\n $(\"#enclosure option\").removeAttr('selected');\n $(\"#enclosure option[value=\\\" \\\"]\").attr('selected', 'selected');\n }\n\n //reviewer options hide\n if( 'google_product_review' !== merchant) {\n $('.wf_attributes option[value=\"reviewer_name\"]').hide();\n }\n }).then(function(){\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n }).fail(helper.ajax_fail);\n }\n })\n // Feed Active and Inactive status change via ajax\n .on('change', '.woo_feed_status_input', function () {\n let self = $(this);\n wpAjax.post('update_feed_status', {\n _ajax_nonce: opts.nonce,\n feedName: self.val(),\n status: self[0].checked ? 1 : 0\n });\n });\n // event with trigger\n $(document)\n .on('change', '[name=\"is_outOfStock\"], [name=\"product_visibility\"]', function () {\n let outOfStockVisibilityRow = $('.out-of-stock-visibility');\n if ($('[name=\"is_outOfStock\"]:checked').val() === 'n' && $('[name=\"product_visibility\"]:checked').val() === '1') {\n outOfStockVisibilityRow.show();\n } else {\n outOfStockVisibilityRow.hide();\n }\n })\n .on('change', '.attr_type', function () {\n // Attribute type selection\n let self = $(this),\n type = self.val(),\n row = self.closest('tr');\n\n if (type === 'pattern') {\n row.find('.wf_attr').hide();\n row.find('.wf_attr').val('');\n row.find('.wf_default').show();\n } else {\n row.find('.wf_attr').show();\n row.find('.wf_default').hide();\n row.find('.wf_default').val('');\n }\n })\n .on('change', '.wf_mattributes, .attr_type', function () {\n let row = $(this).closest('tr'),\n attribute = row.find('.wf_mattributes'),\n type = row.find('.attr_type'),\n valueColumn = row.find('td:eq(4)'),\n provider = $('#provider').val();\n\n // noinspection JSUnresolvedVariable\n if (opts.form.google_category.hasOwnProperty(attribute.val()) && type.val() === 'pattern' && helper.in_array(provider, opts.form.google_category[attribute.val()])) {\n if (valueColumn.find('select.selectize').length === 0) {\n valueColumn.find('input.wf_default').remove();\n valueColumn.append('<span class=\"wf_default wf_attributes\"><select name=\"default[]\" class=\"selectize\"></select></span>');\n // noinspection JSUnresolvedVariable\n valueColumn.append(`<span style=\"font-size:x-small;\"><a style=\"color: red\" href=\"https://webappick.com/docs/woo-feed/feed-configuration/how-to-map-store-category-with-merchant-category/\" target=\"_blank\">${opts.learn_more}</a></span>`);\n\n if (!googleCategories || !facebookCategories) {\n valueColumn.append('<span class=\"spinner is-active\" style=\"margin: 0;\"></span>');\n }\n\n let select = valueColumn.find('.wf_attributes select');\n // noinspection JSUnresolvedVariable\n helper.selectize(select, {\n preload: true,\n placeholder: opts.form.select_category,\n load: function load(query, cb) {\n if (!googleCategories) {\n wpAjax.send('get_google_categories', {\n type: 'GET',\n data: {\n _ajax_nonce: opts.nonce,\n action: \"get_google_categories\",\n provider: provider\n }\n }).then(function (r) {\n googleCategories = r;\n cb(googleCategories);\n valueColumn.find('.spinner').remove();\n }).fail(helper.ajax_fail);\n } else {\n cb(googleCategories);\n }\n\n //for facebook product category merchant attribute\n if (!facebookCategories && \"facebook\" === provider && \"fb_product_category\" === attribute.val()) {\n wpAjax.send('get_facebook_categories', {\n type: 'GET',\n data: {\n _ajax_nonce: opts.nonce,\n action: \"get_facebook_categories\",\n provider: provider\n }\n }).then(function (r) {\n facebookCategories = r;\n cb(facebookCategories);\n valueColumn.find('.spinner').remove();\n }).fail(helper.ajax_fail);\n } else {\n cb(facebookCategories);\n }\n }\n });\n }\n } else {\n if ( attribute.val() !== 'current_category' && valueColumn.find('input.wf_default').length === 0) {\n valueColumn.find('span').remove();\n valueColumn.append('<input autocomplete=\"off\" class=\"wf_default wf_attributes\" type=\"text\" name=\"default[]\" value=\"\">');\n\n if (type.val() !== 'pattern') {\n valueColumn.find('input.wf_default').hide();\n }\n }\n }\n })\n .on('change', '#feedType,#provider', function (e) {\n let type = $('#feedType').val(),\n provider = $('#provider').val(),\n itemWrapper = $('.itemWrapper'),\n wf_csv_txt = $('.wf_csvtxt');\n\n // noinspection JSUnresolvedVariable\n if (type !== '' && helper.in_array(provider, opts.form.item_wrapper_hidden)) {\n itemWrapper.hide();\n }\n\n //when feed type is changed\n if( 'feedType' === e.target.id ) {\n if (type === 'csv' || type === 'txt' || type === 'tsv') {\n wf_csv_txt.show();\n itemWrapper.hide();\n \n if( 'tsv' === type ) {\n $('#delimiter option:last').prop(\"selected\", \"selected\");\n } else if( 'csv' === type ) {\n $('#delimiter option:first').prop(\"selected\", \"selected\");\n }\n } else if( 'xml' === type && \"custom\" === provider ) {\n itemWrapper.show();\n wf_csv_txt.hide();\n } else if( 'json' === type ) {\n wf_csv_txt.hide();\n }\n }\n\n // when template is not custom template 1 hide the item wrapper\n if( \"custom\" !== provider ) {\n itemWrapper.hide();\n }\n\n })\n .trigger('change');\n\n\n $(document)\n\t\t\t.on('click', '.woofeed-custom-fields [id*=\"-switcher\"]', function () {\n\t\t\t $(this).closest('td').find('.switch-loader').show();\n\t\t\t\tlet field = $(this).attr( 'id' ).split( '-' )[0],\n\t\t\t\t\tisTaxonomy = $(this).data( 'taxonomy' ),\n\t\t\t\t\tstatus = $(this).prop( 'checked' );\n\t\t\t\tnew WooFeedCustomFields( field, status, isTaxonomy );\n\n\t\t\t})\n\n\t\t\t// Remove sticky cart on feature page\n\t\t\t.ready(function() {\n\t\t\t\tvar s = $(\".wapk-feed-buy-now-container\");\n\t\t\t\t$(window).scroll(function() {\n\t\t\t\t\tvar windowpos = $(window).scrollTop();\n\t\t\t\t\tif ( windowpos <= 5000 ) {\n\t\t\t\t\t\ts.addClass(\"fixed\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts.removeClass(\"fixed\");\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n });\n\n $(document)\n\t\t.on('click', '#woo-feed-debug-log-download', function (e) {\n\t\t\te.preventDefault();\n\t\t\t$(\"<a />\", {\n\t\t\t\tdownload: new Date() + \".log\",\n\t\t\t\thref: URL.createObjectURL(\n\t\t\t\t\tnew Blob([$(\"#woo-feed-debug-log\").val()], {\n\t\t\t\t\t\ttype: \"text/plain\"\n\t\t\t\t\t})),\n\t\t\t}).appendTo(\"body\")[0].click();\n\t\t})\n\t\t.on('keyup', '#filename', function() {\n\t\t\tvar name = $('#filename').val();\n\t\t\t$('#utm_campaign').val(name);\n\t\t})\n\n .on('click', '.wf-tab-name', function(e) {\n $('.wf-tab-name.activate').removeClass('activate');\n $(this).addClass('activate');\n\n let for_attr = $(this).attr('for');\n $('.wf_tabs li.active').removeClass('active');\n $('.wf_tabs .wf-tab-content#' + for_attr).parent().addClass('active');\n })\n\n\t\t.on('change', '#category-mapping-form #providers', function() {\n\t\t\tvar provider = $(this).find(':selected').val(),\n\t\t\t\tgoogleMap = ['google', 'facebook', 'pinterest', 'bing', 'bing_local_inventory', 'snapchat'];\n\t\t\tif( googleMap.indexOf(provider) !== -1 ) {\n\t\t\t\t$('input[id*=\"cat_mapping_\"]').css('display', 'none');\n\t\t\t\t$('.wf_default.wf_attributes').css('display', 'block').css('width', '100%');\n\n var cat_init = new WooFeedFeedCategories();\n if( \"facebook\" === provider ) {\n cat_init.wooFeed_get_facebook_categories();\n }else {\n cat_init.wooFeed_get_google_categories();\n }\n\n } else {\n\t\t\t\t$('input[id*=\"cat_mapping_\"]').css('display', 'block');\n\t\t\t\t$('.wf_default.wf_attributes').css('display', 'none').css('width', '100%');\n\t\t\t}\n\t\t})\n\n // Copy parent category ids to child categories.\n\t\t.on('click', 'span[id*=\"cat-map-\"]', function(e) {\n\t\t\te.preventDefault();\n\t\t\tvar providerName = $('#category-mapping-form #providers').val(),\n\t\t\t\tgoogleMap = ['google', 'facebook', 'pinterest', 'bing', 'bing_local_inventory', 'snapchat'],\n\t\t\t\tcatId = $(this).attr('id').replace(/[^\\d.]/g, ''),\n\t\t\t\tgroupId = 'group-child-' + catId;\n\n\t\t\tif( googleMap.indexOf(providerName) !== -1) {\n\t\t\t\tvar catField = $(this).parents('tr').find('.selectized').val();\n\n\t\t\t\tif (catField) {\n\t\t\t\t\t$('.' + groupId).parents('tr').find('select').each(function (i, v) {\n\t\t\t\t\t\t$(v).data('selectize').setValue(catField);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tvar value = $('#cat_mapping_'+catId).val();\n\t\t\t\t$('.'+groupId).parents('tr').find('input').val(value);\n\t\t\t}\n\n\t\t});\n\n $(document).ready(function () {\n var provider = $(\"#providers\").val();\n var cat_init = new WooFeedFeedCategories();\n\n if( \"facebook\" === provider ) {\n cat_init.wooFeed_get_facebook_categories();\n } else {\n cat_init.wooFeed_get_google_categories();\n }\n\n });\n\n /*\n * Issue fix for feed edit page unsupported `Feed Type` not disabling\n *\n * @since 4.4.22\n * */\n $(document).on( \"feed_editor_init\", function(){\n\n let types = $('.merchant-info-section.feed_file_type .data').html().split(\",\").map(function(t) {\n return t.trim().toLowerCase();\n });\n\n let feedType = $(\"#feedType\");\n\n if (types.length) {\n feedType.find('option').each(function() {\n let opt = $(this);\n opt.val() && !helper.in_array(opt.val(), types) ? opt.disabled(!0) : opt.disabled(!1);\n });\n if (types.length === 1) feedType.find('option[value=\"' + types[0] + '\"]').attr('selected', 'selected');\n } else feedType.find('option').disabled(!1);\n\n } );\n\n /**\n * Automatically adding postfix for corresponding attribute selection.\n *\n * @since 4.4.32\n */\n $(document).on('ready', function(){\n\n function update_postfix(){\n var attribute_list = {\n\n 'price': wpf_ajax_obj.woocommerce.currency,\n 'current_price': wpf_ajax_obj.woocommerce.currency,\n 'sale_price': wpf_ajax_obj.woocommerce.currency,\n 'price_with_tax': wpf_ajax_obj.woocommerce.currency,\n 'current_price_with_tax': wpf_ajax_obj.woocommerce.currency,\n 'sale_price_with_tax': wpf_ajax_obj.woocommerce.currency,\n\n\n 'weight': wpf_ajax_obj.woocommerce.weight,\n 'weight_unit': wpf_ajax_obj.woocommerce.weight,\n\n\n 'height': wpf_ajax_obj.woocommerce.dimension,\n 'length': wpf_ajax_obj.woocommerce.dimension,\n 'width': wpf_ajax_obj.woocommerce.dimension\n\n };\n\n if (typeof wpf_ajax_obj.feed_rules !== 'undefined' && wpf_ajax_obj.feed_rules !== null) {\n var feed_rules = wpf_ajax_obj.feed_rules;\n var current_feed_currency = feed_rules.feedCurrency;\n }\n\n //get current action name of the page\n var queryString = window.location.search;\n var urlParams = new URLSearchParams(queryString);\n var action = urlParams.get('action');\n\n $( '.wf_attr.wf_attributes' ).each( function( key, value){\n\n var attribute_value = $(value).val();\n var current_Value = $( 'input[name^=\"suffix\"]' ).eq( parseInt( key ) ).val();\n\n if( -1 !== $.inArray( current_Value, [\n ' ' + wpf_ajax_obj.woocommerce.currency,\n ' ' + wpf_ajax_obj.woocommerce.weight,\n ' ' + wpf_ajax_obj.woocommerce.dimension\n ] ) ){\n $( 'input[name^=\"suffix\"]' ).eq( parseInt( key ) ).val('');\n }\n\n $.each(attribute_list, function (_key, _value){\n if( attribute_value === _key ){\n _value = null !== current_feed_currency && \"undefined\" !== typeof current_feed_currency ? current_feed_currency : _value;\n\n if( \"undefined\" !== action && \"edit-feed\" !== action ) {\n $( 'input[name^=\"suffix\"]' ).eq( parseInt( key ) ).val( ' ' + _value );\n } else {\n $( 'input[name^=\"suffix\"]' ).eq( parseInt( key ) ).val( current_Value );\n }\n\n }\n });\n } );\n\n $(document).trigger( 'feedEditor.after.free.postfix.update' );\n }\n\n $(document).on('feedEditor.init', function(){\n update_postfix();\n });\n\n });\n\n})(jQuery, window, document, wp.ajax, wpf_ajax_obj);\n"]}
admin/partials/templates/taxonomies/fb_taxonomy.txt ADDED
@@ -0,0 +1,2914 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ category_id,category
2
+ 1,food & beverages > food > soups & broths
3
+ 2,food & beverages > food > nuts & seeds
4
+ 3,food & beverages > food > snacks & chips
5
+ 4,food & beverages > food > meat substitutes
6
+ 5,food & beverages > food > spices & seasonings
7
+ 6,food & beverages > food > pasta & grains
8
+ 7,food & beverages > food > prepared food & meal kits
9
+ 8,food & beverages > food > candy & chocolate
10
+ 9,food & beverages > food > dips & spreads
11
+ 10,food & beverages > food > meat & seafood
12
+ 11,food & beverages > food > bakery & bread
13
+ 12,food & beverages > food > condiments & sauces
14
+ 13,"food & beverages > food > dairy, eggs & cheese"
15
+ 14,food & beverages > food > frozen food
16
+ 15,food & beverages > food > baking ingredients
17
+ 16,food & beverages > food > fruits & vegetables
18
+ 17,food & beverages > food > breakfast & cereal
19
+ 18,food & beverages > food
20
+ 19,food & beverages > beverages > sports & energy drinks
21
+ 20,food & beverages > beverages > juice
22
+ 21,food & beverages > beverages > powdered beverage mixes
23
+ 22,food & beverages > beverages > soda
24
+ 23,food & beverages > beverages > water
25
+ 24,food & beverages > beverages > coffee & tea
26
+ 25,food & beverages > beverages > alcoholic beverages
27
+ 26,food & beverages > beverages > milk
28
+ 27,food & beverages > beverages
29
+ 28,food & beverages
30
+ 29,toys & games > outdoor toys
31
+ 30,toys & games > stuffed animals & plush toys
32
+ 31,toys & games > games > role playing games
33
+ 32,toys & games > games > chess
34
+ 33,toys & games > games > miniature & war games
35
+ 34,toys & games > games > dice games
36
+ 35,toys & games > games > tile games
37
+ 36,toys & games > games > card games
38
+ 37,toys & games > games > dexterity games
39
+ 38,toys & games > games > board games
40
+ 39,toys & games > games
41
+ 40,toys & games > puzzles
42
+ 41,toys & games > riding toys
43
+ 42,toys & games > pretend play
44
+ 43,toys & games > toy vehicles
45
+ 44,toys & games > remote control toys
46
+ 45,toys & games > educational toys
47
+ 46,toys & games > dolls & doll houses
48
+ 47,toys & games > building toys
49
+ 48,toys & games > action figures
50
+ 49,toys & games > electronic toys
51
+ 50,toys & games
52
+ 51,home improvement > home heating & cooling
53
+ 52,home improvement > building supplies & hardware
54
+ 53,home improvement > plumbing & fixtures
55
+ 54,home improvement > tools > ladders & scaffolding
56
+ 55,home improvement > tools > painting tools
57
+ 56,home improvement > tools > power tools
58
+ 57,home improvement > tools > measuring tools & sensors
59
+ 58,home improvement > tools > air tools
60
+ 59,home improvement > tools > hand tools
61
+ 60,home improvement > tools
62
+ 61,home improvement
63
+ 62,sporting goods > sports equipment > ice & roller hockey
64
+ 63,sporting goods > sports equipment > rugby
65
+ 64,sporting goods > sports equipment > tennis & racquet sports
66
+ 65,sporting goods > sports equipment > volleyball
67
+ 66,sporting goods > sports equipment > golf
68
+ 67,sporting goods > sports equipment > soccer
69
+ 68,sporting goods > sports equipment > football
70
+ 69,sporting goods > sports equipment > track & field
71
+ 70,sporting goods > sports equipment > cricket
72
+ 71,sporting goods > sports equipment > field hockey & lacrosse
73
+ 72,sporting goods > sports equipment > boxing & martial arts
74
+ 73,sporting goods > sports equipment > dance & gymnastics
75
+ 74,sporting goods > sports equipment > baseball & softball
76
+ 75,sporting goods > sports equipment > basketball
77
+ 76,sporting goods > sports equipment
78
+ 77,sporting goods > exercise & fitness > yoga & pilates
79
+ 78,sporting goods > exercise & fitness > cardio equipment
80
+ 79,sporting goods > exercise & fitness > weight lifting equipment
81
+ 80,sporting goods > exercise & fitness
82
+ 81,sporting goods > indoor games
83
+ 82,sporting goods > outdoor recreation > fishing
84
+ 83,sporting goods > outdoor recreation > water sports & boating
85
+ 84,sporting goods > outdoor recreation > skateboarding
86
+ 85,sporting goods > outdoor recreation > outdoor games
87
+ 86,sporting goods > outdoor recreation > cycling
88
+ 87,sporting goods > outdoor recreation > winter sports
89
+ 88,sporting goods > outdoor recreation > climbing
90
+ 89,sporting goods > outdoor recreation > inline & roller skating
91
+ 90,sporting goods > outdoor recreation > camping & hiking
92
+ 91,sporting goods > outdoor recreation
93
+ 92,sporting goods
94
+ 93,pet supplies > pet carriers & containment
95
+ 94,pet supplies > pet grooming supplies
96
+ 95,pet supplies > small animal supplies
97
+ 96,pet supplies > pet feeding & watering supplies
98
+ 97,pet supplies > reptile & amphibian supplies
99
+ 98,"pet supplies > pet collars, harnesses & leashes"
100
+ 99,pet supplies > pet steps & ramps
101
+ 100,pet supplies > bird supplies
102
+ 101,pet supplies > pet care & health
103
+ 102,pet supplies > pet beds & bedding
104
+ 103,pet supplies > fish supplies
105
+ 104,pet supplies > cat supplies
106
+ 105,pet supplies > dog supplies
107
+ 106,pet supplies
108
+ 107,patio & garden > watering equipment
109
+ 108,patio & garden > ponds & water features
110
+ 109,patio & garden > outdoor power equipment
111
+ 110,patio & garden > outdoor lighting
112
+ 111,patio & garden > barbecues & outdoor cooking
113
+ 112,"patio & garden > plants, seeds & bulbs"
114
+ 113,patio & garden > outdoor furniture
115
+ 114,patio & garden > pools & spas
116
+ 115,"patio & garden > plant care, soil & accessories"
117
+ 116,patio & garden > garden decor
118
+ 117,patio & garden > garden hand tools & equipment
119
+ 118,patio & garden
120
+ 119,office supplies > writing supplies
121
+ 120,office supplies > presentation & display boards
122
+ 121,office supplies > staplers & punches
123
+ 122,office supplies > projectors
124
+ 123,office supplies > tape & adhesives
125
+ 124,office supplies > filing & storage
126
+ 125,office supplies > clips & fasteners
127
+ 126,office supplies > labels
128
+ 127,office supplies > calendars & planners
129
+ 128,office supplies > binders & accessories
130
+ 129,office supplies > office equipment & machines
131
+ 130,office supplies > mailing supplies
132
+ 131,office supplies > paper products
133
+ 132,office supplies
134
+ 133,musical instruments > pro audio equipment
135
+ 134,musical instruments > music accessories
136
+ 135,musical instruments > guitars & basses
137
+ 136,musical instruments > brass instruments
138
+ 137,musical instruments > drums & percussion instruments
139
+ 138,musical instruments > pianos & keyboard instruments
140
+ 139,musical instruments > woodwind instruments
141
+ 140,musical instruments > string instruments
142
+ 141,musical instruments
143
+ 142,media > newspapers
144
+ 143,media > magazines & catalogs
145
+ 144,media > books
146
+ 145,media > movies & tv shows
147
+ 146,media > music
148
+ 147,media
149
+ 148,travel & luggage > garment bags
150
+ 149,travel & luggage > travel accessories
151
+ 150,travel & luggage > handbags & wallets > wallets
152
+ 151,travel & luggage > handbags & wallets > satchels
153
+ 152,travel & luggage > handbags & wallets > crossbody bags
154
+ 153,travel & luggage > handbags & wallets > totes
155
+ 154,travel & luggage > handbags & wallets > shoulder bags
156
+ 155,travel & luggage > handbags & wallets > clutches
157
+ 156,travel & luggage > handbags & wallets > belt bags & waist packs
158
+ 157,travel & luggage > handbags & wallets
159
+ 158,travel & luggage > suitcases
160
+ 159,travel & luggage > duffels & gym bags
161
+ 160,travel & luggage > luggage sets
162
+ 161,travel & luggage > briefcases & laptop bags
163
+ 162,travel & luggage > backpacks
164
+ 163,travel & luggage
165
+ 164,arts & crafts > craft supplies
166
+ 165,arts & crafts > sewing
167
+ 166,arts & crafts > needlecrafts & yarn
168
+ 167,arts & crafts > beading & jewelry making
169
+ 168,arts & crafts > art supplies
170
+ 169,arts & crafts
171
+ 170,auto parts & accessories > trailer parts & accessories
172
+ 171,auto parts & accessories > powersports parts & accessories
173
+ 172,auto parts & accessories > rv & camper parts & accessories
174
+ 173,auto parts & accessories > car parts & accessories
175
+ 174,auto parts & accessories > boat parts & accessories
176
+ 175,auto parts & accessories > motorcycle parts & accessories
177
+ 176,auto parts & accessories > automotive tools
178
+ 177,auto parts & accessories
179
+ 178,antiques & collectibles > collectible sports memorabilia
180
+ 179,antiques & collectibles > collectible home goods
181
+ 180,antiques & collectibles > collectible electronics
182
+ 181,antiques & collectibles > collectible coins & paper money
183
+ 182,antiques & collectibles > collectible stamps
184
+ 183,antiques & collectibles > collectible furniture
185
+ 184,antiques & collectibles > collectible appliances
186
+ 185,antiques & collectibles > collectible toys
187
+ 186,antiques & collectibles
188
+ 187,baby products > baby feeding
189
+ 188,baby products > baby transport > baby carriers
190
+ 189,baby products > baby transport > strollers & accessories
191
+ 190,baby products > baby transport > car seats & accessories
192
+ 191,baby products > baby transport
193
+ 192,baby products > baby health & safety
194
+ 193,baby products > baby bathing
195
+ 194,baby products > toys > activity centers & entertainers
196
+ 195,baby products > toys > baby toys
197
+ 196,baby products > toys
198
+ 197,baby products > diapering & potty training
199
+ 198,baby products > nursery > nursery bedding
200
+ 199,baby products > nursery > nursery decor
201
+ 200,baby products > nursery > nursery furniture
202
+ 201,baby products > nursery
203
+ 202,baby products
204
+ 203,electronics > portable audio & video
205
+ 204,electronics > home audio & video
206
+ 205,electronics > home security & automation
207
+ 206,electronics > cell phones & smart watches > cell phones
208
+ 207,electronics > cell phones & smart watches > cell phone & smart watch accessories
209
+ 208,electronics > cell phones & smart watches > smart watches
210
+ 209,electronics > cell phones & smart watches
211
+ 210,electronics > projectors
212
+ 211,electronics > cameras > binoculars & telescopes
213
+ 212,electronics > cameras > film cameras
214
+ 213,electronics > cameras > camera accessories
215
+ 214,electronics > cameras > camera drones
216
+ 215,electronics > cameras > digital cameras
217
+ 216,electronics > cameras > video cameras
218
+ 217,electronics > cameras
219
+ 218,electronics > tvs & monitors > tvs
220
+ 219,electronics > tvs & monitors > computer monitors
221
+ 220,electronics > tvs & monitors
222
+ 221,electronics > software
223
+ 222,electronics > printers & scanners
224
+ 223,electronics > video game consoles & video games > video game accessories
225
+ 224,electronics > video game consoles & video games > video game consoles
226
+ 225,electronics > video game consoles & video games > video games
227
+ 226,electronics > video game consoles & video games
228
+ 227,electronics > computers & tablets > tablets & ebook readers
229
+ 228,electronics > computers & tablets > networking & servers
230
+ 229,electronics > computers & tablets > computer components & hardware
231
+ 230,electronics > computers & tablets > laptops
232
+ 231,electronics > computers & tablets > desktop computers
233
+ 232,electronics > computers & tablets
234
+ 233,electronics > accessories > computer peripherals
235
+ 234,electronics > accessories > batteries & power supplies
236
+ 235,electronics > accessories > blank media
237
+ 236,"electronics > accessories > cables, chargers & adapters"
238
+ 237,electronics > accessories
239
+ 238,electronics
240
+ 239,health & beauty > health > oral care
241
+ 240,health & beauty > health > first aid
242
+ 241,health & beauty > health > feminine care
243
+ 242,health & beauty > health > vision care
244
+ 243,health & beauty > health > massage
245
+ 244,health & beauty > health > shaving & hair removal
246
+ 245,health & beauty > health
247
+ 246,health & beauty > beauty > skin care > tanning oil & lotion
248
+ 247,health & beauty > beauty > skin care > lip balms & treatments
249
+ 248,health & beauty > beauty > skin care > masks & peels
250
+ 249,health & beauty > beauty > skin care > exfoliators & scrubs
251
+ 250,health & beauty > beauty > skin care > facial lotion & moisturizer
252
+ 251,health & beauty > beauty > skin care > pore strips
253
+ 252,health & beauty > beauty > skin care > night treatments
254
+ 253,health & beauty > beauty > skin care > sunscreen
255
+ 254,health & beauty > beauty > skin care > skin cleansing brushes & systems
256
+ 255,health & beauty > beauty > skin care > acne & blemish treatments
257
+ 256,health & beauty > beauty > skin care > cleansers & toners
258
+ 257,health & beauty > beauty > skin care
259
+ 258,health & beauty > beauty > nail care > pumice stones
260
+ 259,health & beauty > beauty > nail care > nail polish & art
261
+ 260,health & beauty > beauty > nail care > nail tools
262
+ 261,health & beauty > beauty > nail care > artificial nails & accessories
263
+ 262,health & beauty > beauty > nail care
264
+ 263,health & beauty > beauty > makeup > makeup tools & accessories
265
+ 264,health & beauty > beauty > makeup > lip makeup > lip plumpers
266
+ 265,health & beauty > beauty > makeup > lip makeup > lip gloss
267
+ 266,health & beauty > beauty > makeup > lip makeup > lip liners
268
+ 267,health & beauty > beauty > makeup > lip makeup > lip stains
269
+ 268,health & beauty > beauty > makeup > lip makeup > lipstick
270
+ 269,health & beauty > beauty > makeup > lip makeup
271
+ 270,health & beauty > beauty > makeup > makeup sets & kits
272
+ 271,health & beauty > beauty > makeup > face makeup > foundations
273
+ 272,health & beauty > beauty > makeup > face makeup > face powders
274
+ 273,health & beauty > beauty > makeup > face makeup > blushes
275
+ 274,health & beauty > beauty > makeup > face makeup > bronzers & highlighters
276
+ 275,health & beauty > beauty > makeup > face makeup > face primers
277
+ 276,health & beauty > beauty > makeup > face makeup > concealers
278
+ 277,"health & beauty > beauty > makeup > face makeup > bb, cc & alphabet creams"
279
+ 278,health & beauty > beauty > makeup > face makeup
280
+ 279,health & beauty > beauty > makeup > eye makeup > eyebrow products
281
+ 280,health & beauty > beauty > makeup > eye makeup > eyeliners
282
+ 281,health & beauty > beauty > makeup > eye makeup > mascara
283
+ 282,health & beauty > beauty > makeup > eye makeup > eye shadows
284
+ 283,health & beauty > beauty > makeup > eye makeup > false eyelashes & adhesives
285
+ 284,health & beauty > beauty > makeup > eye makeup > eye primers
286
+ 285,health & beauty > beauty > makeup > eye makeup
287
+ 286,health & beauty > beauty > makeup
288
+ 287,health & beauty > beauty > hair care & styling > shampoos & conditioners
289
+ 288,health & beauty > beauty > hair care & styling > rollers & curlers
290
+ 289,health & beauty > beauty > hair care & styling > straightening & curling irons
291
+ 290,health & beauty > beauty > hair care & styling > styling products
292
+ 291,health & beauty > beauty > hair care & styling > hair oils & protectors
293
+ 292,health & beauty > beauty > hair care & styling > hair ties & styling accessories
294
+ 293,health & beauty > beauty > hair care & styling > hair cutting scissors & shears
295
+ 294,health & beauty > beauty > hair care & styling > hair dryers
296
+ 295,health & beauty > beauty > hair care & styling > hair extensions & wigs
297
+ 296,health & beauty > beauty > hair care & styling > brushes & combs
298
+ 297,health & beauty > beauty > hair care & styling > hair coloring & dyes
299
+ 298,health & beauty > beauty > hair care & styling
300
+ 299,health & beauty > beauty > fragrances > men's fragrances
301
+ 300,health & beauty > beauty > fragrances > women's fragrances
302
+ 301,health & beauty > beauty > fragrances > kids' fragrances
303
+ 302,health & beauty > beauty > fragrances
304
+ 303,health & beauty > beauty > bath & body > bubble baths
305
+ 304,health & beauty > beauty > bath & body > bath salts
306
+ 305,health & beauty > beauty > bath & body > body lotions & moisturizers
307
+ 306,health & beauty > beauty > bath & body > body washes & soaps
308
+ 307,health & beauty > beauty > bath & body > sponges & brushes
309
+ 308,health & beauty > beauty > bath & body > scrubs & exfoliants
310
+ 309,health & beauty > beauty > bath & body > bath oils
311
+ 310,health & beauty > beauty > bath & body > bath bombs
312
+ 311,health & beauty > beauty > bath & body
313
+ 312,health & beauty > beauty
314
+ 313,health & beauty
315
+ 314,jewelry & watches > watches > watch accessories
316
+ 315,jewelry & watches > watches > kids' watches
317
+ 316,jewelry & watches > watches > men's watches
318
+ 317,jewelry & watches > watches > women's watches
319
+ 318,jewelry & watches > watches
320
+ 319,jewelry & watches > jewelry > rings
321
+ 320,jewelry & watches > jewelry > necklaces
322
+ 321,jewelry & watches > jewelry > jewelry sets
323
+ 322,jewelry & watches > jewelry > lapel pins & brooches
324
+ 323,jewelry & watches > jewelry > anklets
325
+ 324,jewelry & watches > jewelry > charms & pendants
326
+ 325,jewelry & watches > jewelry > earrings
327
+ 326,jewelry & watches > jewelry > body jewelry
328
+ 327,jewelry & watches > jewelry > bracelets
329
+ 328,jewelry & watches > jewelry
330
+ 329,jewelry & watches
331
+ 330,home > cleaning supplies > cleaning products & chemicals
332
+ 331,home > cleaning supplies > vacuums & floor cleaners
333
+ 332,home > cleaning supplies > laundry supplies
334
+ 333,home > cleaning supplies
335
+ 334,home > large appliances > ranges & ovens
336
+ 335,home > large appliances > refrigerators & freezers
337
+ 336,home > large appliances > washers & dryers
338
+ 337,home > large appliances > microwave ovens
339
+ 338,home > large appliances > dishwashers
340
+ 339,home > large appliances
341
+ 340,home > bedding > comforters
342
+ 341,home > bedding > mattress pads & protectors
343
+ 342,home > bedding > duvet covers
344
+ 343,home > bedding > blankets & throws
345
+ 344,"home > bedding > bedspreads, quilts & coverlets"
346
+ 345,home > bedding > bed skirts
347
+ 346,home > bedding > bed sheets & pillowcases
348
+ 347,home > bedding > bedding sets & collections
349
+ 348,home > bedding > bed pillows & positioners
350
+ 349,home > bedding
351
+ 350,home > furniture > living room furniture
352
+ 351,home > furniture > office furniture
353
+ 352,home > furniture > dining room furniture
354
+ 353,home > furniture > bedroom furniture
355
+ 354,home > furniture
356
+ 355,home > home goods > storage & organization
357
+ 356,home > home goods > lamps & lighting
358
+ 357,home > home goods > kitchen & dining > small kitchen appliances
359
+ 358,home > home goods > kitchen & dining > flatware
360
+ 359,home > home goods > kitchen & dining > dinnerware
361
+ 360,home > home goods > kitchen & dining > kitchen tools & utensils
362
+ 361,home > home goods > kitchen & dining > bakeware
363
+ 362,home > home goods > kitchen & dining > drinkware
364
+ 363,home > home goods > kitchen & dining > cookware
365
+ 364,home > home goods > kitchen & dining > barware
366
+ 365,home > home goods > kitchen & dining
367
+ 366,home > home goods > bath > towels & bath linens
368
+ 367,home > home goods > bath > bath accessories
369
+ 368,home > home goods > bath
370
+ 369,home > home goods > home decor > holiday & seasonal decor
371
+ 370,home > home goods > home decor > rugs & carpets
372
+ 371,home > home goods > home decor > window treatments & hardware
373
+ 372,home > home goods > home decor > home fragrances
374
+ 373,home > home goods > home decor > clocks
375
+ 374,home > home goods > home decor > decorative accents
376
+ 375,home > home goods > home decor
377
+ 376,home > home goods
378
+ 377,home
379
+ 378,clothing & accessories > clothing accessories > women's accessories > belts
380
+ 379,clothing & accessories > clothing accessories > women's accessories > gloves & mittens
381
+ 380,clothing & accessories > clothing accessories > women's accessories > sunglasses
382
+ 381,clothing & accessories > clothing accessories > women's accessories > scarves & wraps
383
+ 382,clothing & accessories > clothing accessories > women's accessories > hats
384
+ 383,clothing & accessories > clothing accessories > women's accessories
385
+ 384,clothing & accessories > clothing accessories > men's accessories > ties
386
+ 385,clothing & accessories > clothing accessories > men's accessories > belts
387
+ 386,clothing & accessories > clothing accessories > men's accessories > hats
388
+ 387,clothing & accessories > clothing accessories > men's accessories > suspenders
389
+ 388,clothing & accessories > clothing accessories > men's accessories > sunglasses
390
+ 389,clothing & accessories > clothing accessories > men's accessories > gloves & mittens
391
+ 390,clothing & accessories > clothing accessories > men's accessories > scarves
392
+ 391,clothing & accessories > clothing accessories > men's accessories
393
+ 392,clothing & accessories > clothing accessories > girls' accessories > hats
394
+ 393,clothing & accessories > clothing accessories > girls' accessories > gloves & mittens
395
+ 394,clothing & accessories > clothing accessories > girls' accessories > belts
396
+ 395,clothing & accessories > clothing accessories > girls' accessories > scarves
397
+ 396,clothing & accessories > clothing accessories > girls' accessories > sunglasses
398
+ 397,clothing & accessories > clothing accessories > girls' accessories
399
+ 398,clothing & accessories > clothing accessories > boys' accessories > ties
400
+ 399,clothing & accessories > clothing accessories > boys' accessories > suspenders
401
+ 400,clothing & accessories > clothing accessories > boys' accessories > wallets
402
+ 401,clothing & accessories > clothing accessories > boys' accessories > gloves & mittens
403
+ 402,clothing & accessories > clothing accessories > boys' accessories > hats
404
+ 403,clothing & accessories > clothing accessories > boys' accessories > scarves
405
+ 404,clothing & accessories > clothing accessories > boys' accessories > belts
406
+ 405,clothing & accessories > clothing accessories > boys' accessories > sunglasses
407
+ 406,clothing & accessories > clothing accessories > boys' accessories
408
+ 407,clothing & accessories > clothing accessories
409
+ 408,clothing & accessories > shoes & footwear > women's shoes > boots
410
+ 409,clothing & accessories > shoes & footwear > women's shoes > heels
411
+ 410,clothing & accessories > shoes & footwear > women's shoes > fashion sneakers
412
+ 411,clothing & accessories > shoes & footwear > women's shoes > slippers
413
+ 412,clothing & accessories > shoes & footwear > women's shoes > sandals
414
+ 413,clothing & accessories > shoes & footwear > women's shoes > flats
415
+ 414,clothing & accessories > shoes & footwear > women's shoes > athletic shoes
416
+ 415,clothing & accessories > shoes & footwear > women's shoes
417
+ 416,clothing & accessories > shoes & footwear > men's shoes > sandals
418
+ 417,clothing & accessories > shoes & footwear > men's shoes > casual & dress shoes
419
+ 418,clothing & accessories > shoes & footwear > men's shoes > boots
420
+ 419,clothing & accessories > shoes & footwear > men's shoes > athletic shoes
421
+ 420,clothing & accessories > shoes & footwear > men's shoes > slippers
422
+ 421,clothing & accessories > shoes & footwear > men's shoes > fashion sneakers
423
+ 422,clothing & accessories > shoes & footwear > men's shoes
424
+ 423,clothing & accessories > shoes & footwear > kids' shoes > boys' baby shoes
425
+ 424,clothing & accessories > shoes & footwear > baby shoes > boys' baby shoes
426
+ 425,clothing & accessories > shoes & footwear > kids' shoes > girls' baby shoes
427
+ 426,clothing & accessories > shoes & footwear > baby shoes > girls' baby shoes
428
+ 427,clothing & accessories > shoes & footwear > kids' shoes
429
+ 428,clothing & accessories > shoes & footwear > baby shoes
430
+ 429,clothing & accessories > shoes & footwear
431
+ 430,clothing & accessories > clothing > women's clothing > tops > tops & t-shirts
432
+ 431,"clothing & accessories > clothing > women's clothing > tights, socks & hosiery > socks"
433
+ 432,"clothing & accessories > clothing > women's clothing > tights, socks & hosiery > leg warmers"
434
+ 433,"clothing & accessories > clothing > women's clothing > tights, socks & hosiery > pantyhose & tights"
435
+ 434,"clothing & accessories > clothing > women's clothing > tights, socks & hosiery > stockings & thigh-highs"
436
+ 435,"clothing & accessories > clothing > women's clothing > tights, socks & hosiery"
437
+ 436,clothing & accessories > clothing > women's clothing > tops > sweatshirts & hoodies
438
+ 437,clothing & accessories > clothing > women's clothing > swimwear
439
+ 438,clothing & accessories > clothing > women's clothing > suits & blazers
440
+ 439,clothing & accessories > clothing > women's clothing > bottoms > shorts
441
+ 440,clothing & accessories > clothing > women's clothing > tops > sweaters
442
+ 441,clothing & accessories > clothing > women's clothing > pants
443
+ 442,clothing & accessories > clothing > women's clothing > skirts
444
+ 443,clothing & accessories > clothing > women's clothing > dresses
445
+ 444,clothing & accessories > clothing > women's clothing > lingerie & sleepwear > sleepwear
446
+ 445,clothing & accessories > clothing > women's clothing > lingerie & sleepwear > underwear
447
+ 446,clothing & accessories > clothing > women's clothing > lingerie & sleepwear > slips
448
+ 447,clothing & accessories > clothing > women's clothing > lingerie & sleepwear > bras
449
+ 448,clothing & accessories > clothing > women's clothing > lingerie & sleepwear > shapewear
450
+ 449,clothing & accessories > clothing > women's clothing > lingerie & sleepwear
451
+ 450,clothing & accessories > clothing > women's clothing > jeans
452
+ 451,clothing & accessories > clothing > women's clothing > jumpsuits & rompers
453
+ 452,clothing & accessories > clothing > women's clothing > leggings
454
+ 453,clothing & accessories > clothing > women's clothing > activewear
455
+ 454,clothing & accessories > clothing > women's clothing > coats & jackets
456
+ 455,clothing & accessories > clothing > women's clothing
457
+ 456,clothing & accessories > clothing > men's clothing > bottoms > underwear
458
+ 457,clothing & accessories > clothing > men's clothing > bottoms > swimwear
459
+ 458,clothing & accessories > clothing > men's clothing > tops > sweatshirts & hoodies
460
+ 459,clothing & accessories > clothing > men's clothing > t-shirts
461
+ 460,clothing & accessories > clothing > men's clothing > sleepwear
462
+ 461,clothing & accessories > clothing > men's clothing > suits
463
+ 462,clothing & accessories > clothing > men's clothing > dress shirts
464
+ 463,clothing & accessories > clothing > men's clothing > bottoms > jeans
465
+ 464,clothing & accessories > clothing > men's clothing > socks
466
+ 465,clothing & accessories > clothing > men's clothing > shorts
467
+ 466,clothing & accessories > clothing > men's clothing > tops > sweaters
468
+ 467,clothing & accessories > clothing > men's clothing > bottoms > pants
469
+ 468,clothing & accessories > clothing > men's clothing > activewear
470
+ 469,clothing & accessories > clothing > men's clothing > blazers & sport coats
471
+ 470,clothing & accessories > clothing > men's clothing > coats & jackets
472
+ 471,clothing & accessories > clothing > men's clothing > casual shirts
473
+ 472,clothing & accessories > clothing > men's clothing
474
+ 473,clothing & accessories > clothing > kids' clothing > girls' clothing > swimwear
475
+ 474,clothing & accessories > clothing > kids' clothing > girls' clothing > underwear
476
+ 475,clothing & accessories > clothing > kids' clothing > girls' clothing > tops & t-shirts
477
+ 476,clothing & accessories > clothing > kids' clothing > girls' clothing > sweatshirts & hoodies
478
+ 477,clothing & accessories > clothing > kids' clothing > girls' clothing > skirts
479
+ 478,clothing & accessories > clothing > kids' clothing > girls' clothing > socks & tights
480
+ 479,clothing & accessories > clothing > kids' clothing > girls' clothing > shorts
481
+ 480,clothing & accessories > clothing > kids' clothing > girls' clothing > sleepwear
482
+ 481,clothing & accessories > clothing > kids' clothing > girls' clothing > pants
483
+ 482,clothing & accessories > clothing > kids' clothing > girls' clothing > sweaters
484
+ 483,clothing & accessories > clothing > kids' clothing > girls' clothing > outerwear
485
+ 484,clothing & accessories > clothing > kids' clothing > girls' clothing > jeans
486
+ 485,clothing & accessories > clothing > kids' clothing > girls' clothing > jumpsuits & rompers
487
+ 486,clothing & accessories > clothing > kids' clothing > girls' clothing > leggings
488
+ 487,clothing & accessories > clothing > kids' clothing > girls' clothing > outfits & sets
489
+ 488,clothing & accessories > clothing > kids' clothing > girls' clothing > dresses
490
+ 489,clothing & accessories > clothing > kids' clothing > girls' clothing
491
+ 490,clothing & accessories > clothing > kids' clothing > boys' clothing > socks
492
+ 491,clothing & accessories > clothing > kids' clothing > boys' clothing > suits
493
+ 492,clothing & accessories > clothing > kids' clothing > boys' clothing > underwear
494
+ 493,clothing & accessories > clothing > kids' clothing > boys' clothing > sweatshirts & hoodies
495
+ 494,clothing & accessories > clothing > kids' clothing > boys' clothing > sweaters
496
+ 495,clothing & accessories > clothing > kids' clothing > boys' clothing > swimwear
497
+ 496,clothing & accessories > clothing > kids' clothing > boys' clothing > tops & t-shirts
498
+ 497,clothing & accessories > clothing > kids' clothing > boys' clothing > sleepwear
499
+ 498,clothing & accessories > clothing > kids' clothing > boys' clothing > outfits & sets
500
+ 499,clothing & accessories > clothing > kids' clothing > boys' clothing > pants
501
+ 500,clothing & accessories > clothing > kids' clothing > boys' clothing > shorts
502
+ 501,clothing & accessories > clothing > kids' clothing > boys' clothing > jeans
503
+ 502,clothing & accessories > clothing > kids' clothing > boys' clothing > outerwear
504
+ 503,clothing & accessories > clothing > kids' clothing > boys' clothing
505
+ 504,clothing & accessories > clothing > kids' clothing
506
+ 505,clothing & accessories > clothing > baby clothing > girls' baby clothing > tops
507
+ 506,clothing & accessories > clothing > baby clothing > girls' baby clothing > swimwear
508
+ 507,clothing & accessories > clothing > baby clothing > girls' baby clothing > dresses
509
+ 508,clothing & accessories > clothing > baby clothing > girls' baby clothing > sleepwear
510
+ 509,clothing & accessories > clothing > baby clothing > girls' baby clothing > outerwear
511
+ 510,clothing & accessories > clothing > baby clothing > girls' baby clothing > bottoms
512
+ 511,clothing & accessories > clothing > baby clothing > girls' baby clothing > sweaters
513
+ 512,clothing & accessories > clothing > baby clothing > girls' baby clothing > outfits & sets
514
+ 513,clothing & accessories > clothing > baby clothing > girls' baby clothing > socks
515
+ 514,clothing & accessories > clothing > baby clothing > girls' baby clothing > bodysuits
516
+ 515,clothing & accessories > clothing > baby clothing > girls' baby clothing
517
+ 516,clothing & accessories > clothing > baby clothing > boys' baby clothing > suits
518
+ 517,clothing & accessories > clothing > baby clothing > boys' baby clothing > swimwear
519
+ 518,clothing & accessories > clothing > baby clothing > boys' baby clothing > sweaters
520
+ 519,clothing & accessories > clothing > baby clothing > boys' baby clothing > socks
521
+ 520,clothing & accessories > clothing > baby clothing > boys' baby clothing > tops
522
+ 521,clothing & accessories > clothing > baby clothing > boys' baby clothing > bodysuits
523
+ 522,clothing & accessories > clothing > baby clothing > boys' baby clothing > sleepwear
524
+ 523,clothing & accessories > clothing > baby clothing > boys' baby clothing > bottoms
525
+ 524,clothing & accessories > clothing > baby clothing > boys' baby clothing > outerwear
526
+ 525,clothing & accessories > clothing > baby clothing > boys' baby clothing > outfits & sets
527
+ 526,clothing & accessories > clothing > baby clothing > boys' baby clothing
528
+ 527,clothing & accessories > clothing > baby clothing
529
+ 528,clothing & accessories > clothing
530
+ 529,clothing & accessories
531
+ 530,other
532
+ 535,clothing & accessories > clothing > men's clothing > tops
533
+ 536,clothing & accessories > clothing > men's clothing > tops > activewear tops
534
+ 537,clothing & accessories > clothing > men's clothing > tops > sleepwear tops
535
+ 538,clothing & accessories > clothing > men's clothing > bottoms
536
+ 539,clothing & accessories > clothing > men's clothing > bottoms > activewear bottoms
537
+ 540,clothing & accessories > clothing > men's clothing > bottoms > sleepwear bottoms
538
+ 541,clothing & accessories > clothing > women's clothing > tops
539
+ 542,clothing & accessories > clothing > women's clothing > tops > activewear tops
540
+ 543,clothing & accessories > clothing > women's clothing > tops > swimwear tops
541
+ 544,clothing & accessories > clothing > women's clothing > bottoms
542
+ 545,clothing & accessories > clothing > women's clothing > bottoms > swimwear bottoms
543
+ 546,clothing & accessories > clothing > men's clothing > swimwear
544
+ 547,baby products > baby bathing > baby scales
545
+ 548,baby products > baby bathing > bath accessories
546
+ 549,baby products > baby bathing > bath tub seats & floats
547
+ 550,baby products > baby bathing > bath tubs
548
+ 551,baby products > baby bathing > shampoo & soap
549
+ 552,baby products > baby bathing > shower visors
550
+ 553,baby products > baby bathing > skin care
551
+ 554,baby products > baby bathing > towels & washcloths
552
+ 555,baby products > baby feeding > baby food
553
+ 556,baby products > baby feeding > bibs & burp cloths
554
+ 557,baby products > baby feeding > booster chairs
555
+ 558,baby products > baby feeding > bottle feeding supplies
556
+ 559,baby products > baby feeding > bottle feeding supplies > baby bottles
557
+ 560,baby products > baby feeding > bottle feeding supplies > baby formula
558
+ 561,baby products > baby feeding > bottle feeding supplies > bottle bags
559
+ 562,baby products > baby feeding > bottle feeding supplies > bottle brushes
560
+ 563,baby products > baby feeding > bottle feeding supplies > bottle drying racks
561
+ 564,baby products > baby feeding > bottle feeding supplies > bottle nipples
562
+ 565,baby products > baby feeding > bottle feeding supplies > bottle sterilizers & cleaning supplies
563
+ 566,baby products > baby feeding > bottle feeding supplies > bottle warmers
564
+ 567,baby products > baby feeding > bottle feeding supplies > formula dispensers
565
+ 568,baby products > baby feeding > breastfeeding & nursing
566
+ 569,baby products > baby feeding > breastfeeding & nursing > breast milk storage
567
+ 570,baby products > baby feeding > breastfeeding & nursing > breast pump parts & accessories
568
+ 571,baby products > baby feeding > breastfeeding & nursing > breast pumps
569
+ 572,baby products > baby feeding > breastfeeding & nursing > nursing covers
570
+ 573,baby products > baby feeding > breastfeeding & nursing > nursing pads & shields
571
+ 574,baby products > baby feeding > breastfeeding & nursing > nursing pillows & pillow covers
572
+ 575,baby products > baby feeding > food grinders & blenders
573
+ 576,baby products > baby feeding > high chairs
574
+ 577,baby products > baby feeding > utensils
575
+ 578,baby products > baby feeding > utensils > bowls & plates
576
+ 579,baby products > baby feeding > utensils > cups & mugs
577
+ 580,baby products > baby feeding > utensils > feeding sets
578
+ 581,baby products > baby feeding > utensils > utensils
579
+ 582,baby products > baby gear
580
+ 583,baby products > baby gear > activity centers
581
+ 584,baby products > baby gear > baby swings
582
+ 585,baby products > baby gear > bouncers & vibrating chairs
583
+ 586,baby products > baby gear > jumpers & exercisers
584
+ 587,baby products > baby gear > play mats & gyms
585
+ 588,baby products > baby gear > play tents & shades
586
+ 589,baby products > baby gear > playpens
587
+ 590,baby products > baby gear > walkers
588
+ 591,baby products > baby health & safety > baby health
589
+ 592,baby products > baby health & safety > baby health > baby thermometers
590
+ 593,baby products > baby health & safety > baby health > health & grooming kits
591
+ 594,baby products > baby health & safety > baby health > hearing protection
592
+ 595,baby products > baby health & safety > baby health > nasal aspirators
593
+ 596,baby products > baby health & safety > baby health > pacifier clips & holders
594
+ 597,baby products > baby health & safety > baby health > pacifier wipes
595
+ 598,baby products > baby health & safety > baby health > pacifiers & teethers
596
+ 599,baby products > baby health & safety > baby safety
597
+ 600,baby products > baby health & safety > baby safety > baby monitors
598
+ 601,baby products > baby health & safety > baby safety > baby proofing supplies
599
+ 602,baby products > baby health & safety > baby safety > baby proofing supplies > corner & edge cushions
600
+ 603,baby products > baby health & safety > baby safety > baby proofing supplies > locks & latches
601
+ 604,baby products > baby health & safety > baby safety > baby proofing supplies > outlet covers
602
+ 605,baby products > baby health & safety > baby safety > baby proofing supplies > stove guards
603
+ 606,baby products > baby health & safety > baby safety > bed rails
604
+ 607,baby products > baby health & safety > baby safety > car decals
605
+ 608,baby products > baby health & safety > baby safety > safety gates
606
+ 609,baby products > baby health & safety > baby safety > safety harnesses & leashes
607
+ 610,baby products > baby health & safety > baby safety > shopping cart covers
608
+ 611,baby products > baby transport > baby carriers > backpacks
609
+ 612,baby products > baby transport > baby carriers > hip seats
610
+ 613,baby products > baby transport > baby carriers > slings
611
+ 614,baby products > baby transport > baby carriers > soft structured carriers
612
+ 615,baby products > baby transport > baby carriers > wraps
613
+ 616,baby products > baby transport > car seats & accessories > booster seats
614
+ 617,baby products > baby transport > car seats & accessories > car seat accessories
615
+ 618,baby products > baby transport > car seats & accessories > convertible car seats
616
+ 619,baby products > baby transport > car seats & accessories > head supports
617
+ 620,baby products > baby transport > car seats & accessories > infant car seats
618
+ 621,baby products > baby transport > strollers & accessories > bassinets
619
+ 622,baby products > baby transport > strollers & accessories > covers & canopies
620
+ 623,baby products > baby transport > strollers & accessories > cup holders & trays
621
+ 624,baby products > baby transport > strollers & accessories > footmuffs
622
+ 625,baby products > baby transport > strollers & accessories > hooks
623
+ 626,baby products > baby transport > strollers & accessories > organizers & nets
624
+ 627,baby products > baby transport > strollers & accessories > seat liners
625
+ 628,baby products > baby transport > strollers & accessories > stroller parts
626
+ 629,baby products > baby transport > strollers & accessories > stroller toys
627
+ 630,baby products > baby transport > strollers & accessories > strollers
628
+ 631,baby products > diapering & potty training > diapering
629
+ 632,baby products > diapering & potty training > diapering > baby wipes
630
+ 633,baby products > diapering & potty training > diapering > changing pads
631
+ 634,baby products > diapering & potty training > diapering > diaper bags
632
+ 635,baby products > diapering & potty training > diapering > diaper changing kits
633
+ 636,baby products > diapering & potty training > diapering > diaper covers
634
+ 637,baby products > diapering & potty training > diapering > diaper pails
635
+ 638,baby products > diapering & potty training > diapering > diaper stackers
636
+ 639,baby products > diapering & potty training > diapering > diapers
637
+ 640,baby products > diapering & potty training > diapering > diapers > cloth diapers
638
+ 641,baby products > diapering & potty training > diapering > diapers > disposable diapers
639
+ 642,baby products > diapering & potty training > diapering > diapers > swim diapers
640
+ 643,baby products > diapering & potty training > diapering > wipe warmers
641
+ 644,baby products > diapering & potty training > potty training
642
+ 645,baby products > diapering & potty training > potty training > potty seats
643
+ 646,baby products > diapering & potty training > potty training > potty training kits
644
+ 647,baby products > diapering & potty training > potty training > potty training pants
645
+ 648,baby products > diapering & potty training > potty training > seat covers
646
+ 649,baby products > diapering & potty training > potty training > step stools
647
+ 650,baby products > keepsakes & gift sets
648
+ 651,baby products > nursery > nursery bedding > bed canopies
649
+ 652,baby products > nursery > nursery bedding > bed pillows
650
+ 653,baby products > nursery > nursery bedding > blankets & throws
651
+ 654,baby products > nursery > nursery bedding > bumpers
652
+ 655,baby products > nursery > nursery bedding > crib sheets
653
+ 656,baby products > nursery > nursery bedding > crib skirts
654
+ 657,baby products > nursery > nursery bedding > duvet covers & inserts
655
+ 658,baby products > nursery > nursery bedding > mattress pads & covers
656
+ 659,baby products > nursery > nursery bedding > nursery bedding sets
657
+ 660,baby products > nursery > nursery bedding > pillowcases
658
+ 661,baby products > nursery > nursery bedding > quilts & coverlets
659
+ 662,baby products > nursery > nursery bedding > sleeping bags & sleepsacks
660
+ 663,baby products > nursery > nursery decor > boxes & storage
661
+ 664,baby products > nursery > nursery decor > clocks
662
+ 665,baby products > nursery > nursery decor > curtains & blinds
663
+ 666,baby products > nursery > nursery decor > lamps & lighting
664
+ 667,baby products > nursery > nursery decor > mats & rugs
665
+ 668,baby products > nursery > nursery decor > mobiles
666
+ 669,baby products > nursery > nursery decor > piggy banks
667
+ 670,baby products > nursery > nursery decor > snow globes
668
+ 671,baby products > nursery > nursery decor > wall decor
669
+ 672,baby products > nursery > nursery furniture > baby dressers
670
+ 673,baby products > nursery > nursery furniture > bassinets & cradles
671
+ 674,baby products > nursery > nursery furniture > bedside sleepers
672
+ 675,baby products > nursery > nursery furniture > chairs
673
+ 676,baby products > nursery > nursery furniture > changing tables
674
+ 677,baby products > nursery > nursery furniture > crib mattresses
675
+ 678,baby products > nursery > nursery furniture > cribs
676
+ 679,baby products > nursery > nursery furniture > nursery furniture sets
677
+ 680,baby products > toys > baby toys > alphabet toys
678
+ 681,baby products > toys > baby toys > baby books
679
+ 682,baby products > toys > baby toys > baby soothers
680
+ 683,baby products > toys > baby toys > bath toys
681
+ 684,"baby products > toys > baby toys > blocks, sorting & stacking toys"
682
+ 685,baby products > toys > baby toys > plush toys
683
+ 686,baby products > toys > baby toys > push & pull toys
684
+ 687,baby products > toys > baby toys > rattles
685
+ 688,clothing & accessories > clothing accessories > newborn & baby fashion accessories
686
+ 689,clothing & accessories > clothing accessories > newborn & baby fashion accessories > bags
687
+ 690,clothing & accessories > clothing accessories > newborn & baby fashion accessories > belts
688
+ 691,clothing & accessories > clothing accessories > newborn & baby fashion accessories > gloves & mittens
689
+ 692,clothing & accessories > clothing accessories > newborn & baby fashion accessories > hats
690
+ 693,clothing & accessories > clothing accessories > newborn & baby fashion accessories > scarves
691
+ 694,clothing & accessories > clothing accessories > newborn & baby fashion accessories > sunglasses
692
+ 695,clothing & accessories > clothing accessories > newborn & baby fashion accessories > ties
693
+ 696,clothing & accessories > costumes
694
+ 697,clothing & accessories > costumes > boys' costumes
695
+ 698,clothing & accessories > costumes > costume accessories
696
+ 699,clothing & accessories > costumes > costume accessories > bags & pouches
697
+ 700,clothing & accessories > costumes > costume accessories > belts & sashes
698
+ 701,clothing & accessories > costumes > costume accessories > boas & leis
699
+ 702,clothing & accessories > costumes > costume accessories > capes & cloaks
700
+ 703,clothing & accessories > costumes > costume accessories > crowns & tiaras
701
+ 704,clothing & accessories > costumes > costume accessories > face paint & makeup
702
+ 705,clothing & accessories > costumes > costume accessories > fans & parasols
703
+ 706,clothing & accessories > costumes > costume accessories > glasses & eyewear
704
+ 707,clothing & accessories > costumes > costume accessories > gloves
705
+ 708,clothing & accessories > costumes > costume accessories > hats & headwear
706
+ 709,clothing & accessories > costumes > costume accessories > masks
707
+ 710,clothing & accessories > costumes > costume accessories > props & handheld items
708
+ 711,clothing & accessories > costumes > costume accessories > prosthetics
709
+ 712,clothing & accessories > costumes > costume accessories > shoes
710
+ 713,clothing & accessories > costumes > costume accessories > wigs & facial hair
711
+ 714,"clothing & accessories > costumes > costume accessories > wings, tails, ears & noses"
712
+ 715,clothing & accessories > costumes > girls' costumes
713
+ 716,clothing & accessories > costumes > infant & toddler costumes
714
+ 717,clothing & accessories > costumes > men's costumes
715
+ 718,clothing & accessories > costumes > unisex costumes
716
+ 719,clothing & accessories > costumes > women's costumes
717
+ 720,clothing & accessories > shoes & footwear > kids' shoes > boys' baby shoes
718
+ 721,clothing & accessories > shoes & footwear > kids' shoes > girls' baby shoes
719
+ 722,clothing & accessories > clothing > baby clothing > boys' baby clothing > sweatshirts & hoodies
720
+ 723,clothing & accessories > clothing > baby clothing > boys' baby clothing > t-shirts
721
+ 724,clothing & accessories > clothing > baby clothing > boys' baby clothing > underwear
722
+ 725,clothing & accessories > clothing > baby clothing > girls' baby clothing > skirts
723
+ 726,clothing & accessories > clothing > baby clothing > girls' baby clothing > sweatshirts & hoodies
724
+ 727,clothing & accessories > clothing > baby clothing > girls' baby clothing > t-shirts
725
+ 728,clothing & accessories > clothing > baby clothing > girls' baby clothing > tights
726
+ 729,clothing & accessories > clothing > baby clothing > girls' baby clothing > underwear
727
+ 730,clothing & accessories > clothing > baby clothing > newborn & baby fashion accessories
728
+ 731,clothing & accessories > clothing > baby clothing > newborn & baby fashion accessories > bags
729
+ 732,clothing & accessories > clothing > baby clothing > newborn & baby fashion accessories > belts
730
+ 733,clothing & accessories > clothing > baby clothing > newborn & baby fashion accessories > gloves & mittens
731
+ 734,clothing & accessories > clothing > baby clothing > newborn & baby fashion accessories > hats
732
+ 735,clothing & accessories > clothing > baby clothing > unisex newborn & baby clothing
733
+ 736,clothing & accessories > clothing > baby clothing > unisex newborn & baby clothing > bodysuits
734
+ 737,clothing & accessories > clothing > baby clothing > unisex newborn & baby clothing > bottoms
735
+ 738,clothing & accessories > clothing > baby clothing > unisex newborn & baby clothing > outerwear
736
+ 739,clothing & accessories > clothing > baby clothing > unisex newborn & baby clothing > outfits & sets
737
+ 740,clothing & accessories > clothing > baby clothing > unisex newborn & baby clothing > sleepwear
738
+ 741,clothing & accessories > clothing > baby clothing > unisex newborn & baby clothing > socks
739
+ 742,clothing & accessories > clothing > baby clothing > unisex newborn & baby clothing > tops & t-shirts
740
+ 743,clothing & accessories > clothing > men's clothing > tops > blazers & sports coats
741
+ 744,health & beauty > beauty > nail care > nail tools > cuticle treatments
742
+ 745,health & beauty > beauty > nail care > nail tools > nail buffers
743
+ 746,health & beauty > beauty > nail care > nail tools > nail clippers
744
+ 747,health & beauty > beauty > nail care > nail tools > nail drills
745
+ 748,health & beauty > beauty > nail care > nail tools > nail dryers & lamps
746
+ 749,health & beauty > beauty > nail care > nail tools > nail files & emery boards
747
+ 750,health & beauty > beauty > nail care > nail tools > nail spas & baths
748
+ 751,health & beauty > beauty > skin care > anti-aging products
749
+ 752,health & beauty > beauty > skin care > eye treatments & masks
750
+ 753,health & beauty > beauty > skin care > facial rollers
751
+ 754,health & beauty > beauty > skin care > facial saunas & steamers
752
+ 755,health & beauty > beauty > skin care > lightening cream
753
+ 756,health & beauty > beauty > skin care > makeup removers
754
+ 757,health & beauty > beauty > skin care > pumice stones
755
+ 758,health & beauty > beauty > skin care > sunscreen > self tanner & sunless tanning products
756
+ 759,health & beauty > beauty > skin care > sunscreen > sun care
757
+ 760,health & beauty > beauty > skin care > sunscreen > sun care > after-sun care
758
+ 761,health & beauty > beauty > skin care > sunscreen > sun care > sunscreen
759
+ 762,health & beauty > beauty > skin care > sunscreen > sun care > tanning oil & lotion
760
+ 763,health & beauty > beauty > skin care > sunscreen > tanning beds & tents
761
+ 764,health & beauty > beauty > bath & body > bath & body gift sets
762
+ 765,health & beauty > beauty > bath & body > body powder
763
+ 766,health & beauty > beauty > bath & body > deodorants & antiperspirants
764
+ 767,health & beauty > beauty > bath & body > hand sanitizers
765
+ 768,health & beauty > beauty > bath & body > hand soaps
766
+ 769,health & beauty > beauty > bath & body > shower caps
767
+ 770,health & beauty > beauty > foot care
768
+ 771,health & beauty > beauty > foot care > bunion care
769
+ 772,health & beauty > beauty > foot care > corn & callus care
770
+ 773,health & beauty > beauty > foot care > foot odor removers
771
+ 774,health & beauty > beauty > foot care > toe spacers
772
+ 775,health & beauty > beauty > hair care & styling > hair extensions & wigs > hair extension & wig supplies
773
+ 776,health & beauty > beauty > hair care & styling > hair extensions & wigs > hair extensions
774
+ 777,health & beauty > beauty > hair care & styling > hair extensions & wigs > wigs & hair pieces
775
+ 778,health & beauty > beauty > hair care & styling > hair relaxers & straightening products
776
+ 779,health & beauty > beauty > hair care & styling > medicated hair treatments
777
+ 780,health & beauty > beauty > hair care & styling > perms
778
+ 781,health & beauty > beauty > hair care & styling > shampoos & conditioners > conditioners
779
+ 782,health & beauty > beauty > hair care & styling > shampoos & conditioners > shampoo & conditioner sets
780
+ 783,health & beauty > beauty > hair care & styling > shampoos & conditioners > shampoos
781
+ 784,health & beauty > beauty > makeup > body makeup
782
+ 785,health & beauty > beauty > makeup > eye makeup > lash growth enhancers & conditioners
783
+ 786,health & beauty > beauty > makeup > lip makeup > lip primers
784
+ 787,health & beauty > beauty > makeup > makeup tools & accessories > blotting paper
785
+ 788,health & beauty > beauty > makeup > makeup tools & accessories > brush cleaners
786
+ 789,health & beauty > beauty > makeup > makeup tools & accessories > brushes & sponges
787
+ 790,health & beauty > beauty > makeup > makeup tools & accessories > eyelash tools
788
+ 791,health & beauty > beauty > makeup > makeup tools & accessories > makeup bags & storage
789
+ 792,health & beauty > beauty > makeup > makeup tools & accessories > makeup finishing sprays
790
+ 793,health & beauty > beauty > makeup > makeup tools & accessories > makeup mirrors
791
+ 794,health & beauty > beauty > makeup > makeup tools & accessories > refillable makeup palettes
792
+ 795,health & beauty > beauty > makeup > makeup tools & accessories > sharpeners
793
+ 796,health & beauty > beauty > makeup > temporary tattoos
794
+ 797,health & beauty > beauty > nail care > artificial nails & accessories > acrylic powders & liquids
795
+ 798,health & beauty > beauty > nail care > artificial nails & accessories > artificial nail tips
796
+ 799,health & beauty > beauty > nail care > artificial nails & accessories > gel nails
797
+ 800,health & beauty > beauty > nail care > artificial nails & accessories > manicure & pedicure spacers
798
+ 801,health & beauty > beauty > nail care > artificial nails & accessories > manicure tool sets
799
+ 802,health & beauty > beauty > nail care > nail polish & art > nail airbrush kits & supplies
800
+ 803,health & beauty > beauty > nail care > nail polish & art > nail art accessories
801
+ 804,health & beauty > beauty > nail care > nail polish & art > nail polish
802
+ 805,health & beauty > beauty > nail care > nail polish & art > nail polish remover
803
+ 806,health & beauty > beauty > nail care > nail tools > cuticle pushers
804
+ 807,health & beauty > beauty > nail care > nail tools > cuticle scissors
805
+ 808,home > home goods > kitchen & dining > kitchen organization
806
+ 809,home > home goods > kitchen & dining > kitchen organization > sink caddies
807
+ 810,home > home goods > kitchen & dining > kitchen organization > sink mats & grids
808
+ 811,home > home goods > kitchen & dining > kitchen organization > spice organizers
809
+ 812,home > home goods > kitchen & dining > kitchen organization > straw holders & dispensers
810
+ 813,home > home goods > kitchen & dining > kitchen organization > sugar caddies
811
+ 814,home > home goods > kitchen & dining > kitchen organization > toothpick holders & dispensers
812
+ 815,home > home goods > kitchen & dining > kitchen tools & utensils > baking peels
813
+ 816,home > home goods > kitchen & dining > kitchen tools & utensils > burger presses
814
+ 817,home > home goods > kitchen & dining > kitchen tools & utensils > can crushers
815
+ 818,home > home goods > kitchen & dining > kitchen tools & utensils > can openers
816
+ 819,home > home goods > kitchen & dining > kitchen tools & utensils > canning supplies
817
+ 820,"home > home goods > kitchen & dining > kitchen tools & utensils > colanders, strainers & sifters"
818
+ 821,home > home goods > kitchen & dining > kitchen tools & utensils > cooking thermometers
819
+ 822,home > home goods > kitchen & dining > kitchen tools & utensils > cooking torches
820
+ 823,home > home goods > kitchen & dining > kitchen tools & utensils > cooking utensils
821
+ 824,home > home goods > kitchen & dining > kitchen tools & utensils > cutting boards
822
+ 825,home > home goods > kitchen & dining > kitchen tools & utensils > dish racks
823
+ 826,home > home goods > kitchen & dining > kitchen tools & utensils > food choppers
824
+ 827,home > home goods > kitchen & dining > kitchen tools & utensils > food scoops
825
+ 828,home > home goods > kitchen & dining > kitchen tools & utensils > food steaming bags
826
+ 829,home > home goods > kitchen & dining > kitchen tools & utensils > food sticks & skewers
827
+ 830,home > home goods > kitchen & dining > kitchen tools & utensils > funnels
828
+ 831,home > home goods > kitchen & dining > kitchen tools & utensils > garlic presses
829
+ 832,home > home goods > kitchen & dining > kitchen tools & utensils > graters & zesters
830
+ 833,home > home goods > kitchen & dining > kitchen tools & utensils > measuring cups & spoons
831
+ 834,home > home goods > kitchen & dining > kitchen tools & utensils > mixed kitchen tool sets
832
+ 835,home > home goods > kitchen & dining > kitchen tools & utensils > mixing bowls
833
+ 836,home > home goods > kitchen & dining > kitchen tools & utensils > mortar & pestles
834
+ 837,home > home goods > kitchen & dining > kitchen tools & utensils > nut & seafood crackers
835
+ 838,home > home goods > kitchen & dining > kitchen tools & utensils > oil & vinegar dispensers
836
+ 839,home > home goods > kitchen & dining > kitchen tools & utensils > oven bags
837
+ 840,home > home goods > kitchen & dining > kitchen tools & utensils > peelers & corers
838
+ 841,home > home goods > kitchen & dining > kitchen tools & utensils > pizza cutters
839
+ 842,home > home goods > kitchen & dining > kitchen tools & utensils > rings & molds
840
+ 843,home > home goods > kitchen & dining > kitchen tools & utensils > salad spinners
841
+ 844,home > home goods > kitchen & dining > kitchen tools & utensils > scrapers
842
+ 845,home > home goods > kitchen & dining > kitchen tools & utensils > spoon rests
843
+ 846,home > home goods > kitchen & dining > kitchen tools & utensils > stove burner covers
844
+ 847,home > home goods > kitchen & dining > kitchen tools & utensils > sushi mats & bento accessories
845
+ 848,home > home goods > kitchen & dining > kitchen tools & utensils > timers
846
+ 849,home > home goods > kitchen & dining > linens & textiles
847
+ 850,home > home goods > kitchen & dining > linens & textiles > aprons
848
+ 851,home > home goods > kitchen & dining > linens & textiles > doilies
849
+ 852,home > home goods > kitchen & dining > linens & textiles > napkin rings & holders
850
+ 853,home > home goods > kitchen & dining > linens & textiles > napkins
851
+ 854,home > home goods > kitchen & dining > linens & textiles > oven mitts & potholders
852
+ 855,home > home goods > kitchen & dining > linens & textiles > placemats
853
+ 856,home > home goods > kitchen & dining > linens & textiles > table linen sets
854
+ 857,home > home goods > kitchen & dining > linens & textiles > table runners
855
+ 858,home > home goods > kitchen & dining > linens & textiles > table skirts
856
+ 859,home > home goods > kitchen & dining > linens & textiles > tablecloths
857
+ 860,home > home goods > kitchen & dining > linens & textiles > tea cozies
858
+ 861,home > home goods > kitchen & dining > linens & textiles > towels & dishcloths
859
+ 862,home > home goods > kitchen & dining > prefabricated kitchens & kitchenettes
860
+ 863,home > home goods > kitchen & dining > small kitchen appliances > beverage warmers
861
+ 864,home > home goods > kitchen & dining > small kitchen appliances > bread makers
862
+ 865,home > home goods > kitchen & dining > small kitchen appliances > coffee makers & espresso machines
863
+ 866,home > home goods > kitchen & dining > small kitchen appliances > coffee makers & espresso machines > coffee grinders
864
+ 867,home > home goods > kitchen & dining > small kitchen appliances > coffee makers & espresso machines > coffee makers
865
+ 868,home > home goods > kitchen & dining > small kitchen appliances > coffee makers & espresso machines > coffee roasters
866
+ 869,home > home goods > kitchen & dining > small kitchen appliances > coffee makers & espresso machines > espresso machines
867
+ 870,home > home goods > kitchen & dining > small kitchen appliances > coffee makers & espresso machines > french presses
868
+ 871,home > home goods > kitchen & dining > small kitchen appliances > coffee makers & espresso machines > milk frothers
869
+ 872,home > home goods > kitchen & dining > small kitchen appliances > coffee makers & espresso machines > percolators & moka pots
870
+ 873,home > home goods > kitchen & dining > small kitchen appliances > coffee makers & espresso machines > tea infusers & strainers
871
+ 874,home > home goods > kitchen & dining > small kitchen appliances > coffee makers & espresso machines > tea kettles
872
+ 875,home > home goods > kitchen & dining > small kitchen appliances > coffee makers & espresso machines > tea makers
873
+ 876,home > home goods > kitchen & dining > small kitchen appliances > cookers & steamers
874
+ 877,home > home goods > kitchen & dining > small kitchen appliances > deep fryers & air fryers
875
+ 878,home > home goods > kitchen & dining > small kitchen appliances > electric skillets & woks
876
+ 879,home > home goods > kitchen & dining > small kitchen appliances > fondue pots
877
+ 880,home > home goods > kitchen & dining > small kitchen appliances > food dehydrators
878
+ 881,home > home goods > kitchen & dining > small kitchen appliances > food processors
879
+ 882,home > home goods > kitchen & dining > small kitchen appliances > griddles & grills
880
+ 883,home > home goods > kitchen & dining > small kitchen appliances > grinders & mills
881
+ 884,home > home goods > kitchen & dining > small kitchen appliances > hot plates
882
+ 885,home > home goods > kitchen & dining > small kitchen appliances > ice crushers & shavers
883
+ 886,home > home goods > kitchen & dining > small kitchen appliances > juicers
884
+ 887,home > home goods > kitchen & dining > small kitchen appliances > kitchen scales
885
+ 888,home > home goods > kitchen & dining > small kitchen appliances > meat grinders
886
+ 889,home > home goods > kitchen & dining > small kitchen appliances > mixers & blenders
887
+ 890,home > home goods > kitchen & dining > small kitchen appliances > pizza makers & ovens
888
+ 891,home > home goods > kitchen & dining > small kitchen appliances > portable stoves
889
+ 892,home > home goods > kitchen & dining > small kitchen appliances > roaster ovens & rotisseries
890
+ 893,home > home goods > kitchen & dining > small kitchen appliances > slicers & electric knives
891
+ 894,home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances
892
+ 895,home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances > cotton candy machines
893
+ 896,"home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances > cupcake, pie & dessert makers"
894
+ 897,home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances > frozen drink makers
895
+ 898,home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances > hot drink makers
896
+ 899,home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances > ice cream makers
897
+ 900,home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances > pasta makers
898
+ 901,home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances > popcorn makers
899
+ 902,home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances > soda makers
900
+ 903,home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances > soy milk makers
901
+ 904,home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances > waffle makers
902
+ 905,home > home goods > kitchen & dining > small kitchen appliances > specialty kitchen appliances > yogurt makers
903
+ 906,home > home goods > kitchen & dining > small kitchen appliances > toasters & toaster ovens
904
+ 907,home > home goods > kitchen & dining > small kitchen appliances > water filters & pitchers
905
+ 908,home > home goods > lamps & lighting > ceiling fans
906
+ 909,home > home goods > lamps & lighting > chandeliers
907
+ 910,home > home goods > lamps & lighting > lamp shades
908
+ 911,home > home goods > lamps & lighting > lamps
909
+ 912,home > home goods > lamps & lighting > lamps > floor lamps
910
+ 913,home > home goods > lamps & lighting > lamps > lamp accessories
911
+ 914,home > home goods > lamps & lighting > lamps > table lamps
912
+ 915,home > home goods > lamps & lighting > light bulbs
913
+ 916,home > home goods > lamps & lighting > night lights
914
+ 917,home > home goods > lamps & lighting > string lights
915
+ 918,home > home goods > lamps & lighting > track lighting
916
+ 919,home > home goods > lamps & lighting > wall fixtures
917
+ 920,home > home goods > storage & organization > clothing storage
918
+ 921,home > home goods > storage & organization > clothing storage > closet organizers
919
+ 922,home > home goods > storage & organization > clothing storage > clothes hangers
920
+ 923,home > home goods > storage & organization > clothing storage > garment racks
921
+ 924,home > home goods > storage & organization > clothing storage > hat boxes
922
+ 925,home > home goods > storage & organization > clothing storage > shoe organizers
923
+ 926,home > home goods > storage & organization > clothing storage > umbrella stands & cases
924
+ 927,home > home goods > storage & organization > general storage
925
+ 928,home > home goods > storage & organization > general storage > hooks & hangers
926
+ 929,home > home goods > storage & organization > general storage > storage bags
927
+ 930,home > home goods > storage & organization > general storage > storage bins & baskets
928
+ 931,home > home goods > storage & organization > general storage > storage drawers
929
+ 932,home > home goods > storage & organization > jewelry organizers
930
+ 933,home > home goods > storage & organization > jewelry organizers > hanging jewelry organizers
931
+ 934,home > home goods > storage & organization > jewelry organizers > jewelry bags & pouches
932
+ 935,home > home goods > storage & organization > jewelry organizers > jewelry boxes
933
+ 936,home > home goods > storage & organization > jewelry organizers > jewelry displays
934
+ 937,home > home goods > storage & organization > jewelry organizers > jewelry drawer inserts
935
+ 938,home > home goods > storage & organization > jewelry organizers > jewelry rolls
936
+ 939,home > home goods > storage & organization > jewelry organizers > jewelry stands
937
+ 940,home > home goods > storage & organization > jewelry organizers > jewelry trays
938
+ 941,home > large appliances > cooktops
939
+ 942,home > large appliances > ice makers
940
+ 943,home > large appliances > large appliance parts & accessories
941
+ 944,home > large appliances > range hoods
942
+ 945,home > large appliances > trash compactors
943
+ 946,home > large appliances > washers & dryers > dryers
944
+ 947,home > large appliances > washers & dryers > washer & dryer sets
945
+ 948,home > large appliances > washers & dryers > washing machines
946
+ 949,home > home goods > bath > bath accessories > soap dishes & dispensers
947
+ 950,home > home goods > bath > bath accessories > tissue box covers
948
+ 951,home > home goods > bath > bath accessories > toilet brushes
949
+ 952,home > home goods > bath > bath accessories > toilet covers
950
+ 953,home > home goods > bath > bath linens
951
+ 954,home > home goods > bath > bath linens > bath mats & rugs
952
+ 955,home > home goods > bath > bath linens > bath pillows
953
+ 956,home > home goods > bath > bath linens > towels & washcloths
954
+ 957,home > home goods > bath > bath storage
955
+ 958,home > home goods > bath > bath storage > bath caddies
956
+ 959,home > home goods > bath > bath storage > medicine cabinets
957
+ 960,home > home goods > bath > bath storage > robe & towel hooks
958
+ 961,home > home goods > bath > bath storage > toilet paper holders
959
+ 962,home > home goods > bath > bath storage > toothbrush holders
960
+ 963,home > home goods > bath > bath storage > towel racks & holders
961
+ 964,home > home goods > bath > shower curtains
962
+ 965,home > home goods > home decor > clocks > alarm clocks
963
+ 966,home > home goods > home decor > clocks > clock parts
964
+ 967,home > home goods > home decor > clocks > clocks
965
+ 968,"home > home goods > home decor > clocks > desk, mantel & shelf clocks"
966
+ 969,home > home goods > home decor > clocks > grandfather clocks
967
+ 970,home > home goods > home decor > clocks > wall clocks
968
+ 971,home > home goods > home decor > decorative accents > artificial food
969
+ 972,home > home goods > home decor > decorative accents > artificial plants & flowers
970
+ 973,home > home goods > home decor > decorative accents > baskets
971
+ 974,home > home goods > home decor > decorative accents > bells
972
+ 975,home > home goods > home decor > decorative accents > bookends
973
+ 976,home > home goods > home decor > decorative accents > bottles
974
+ 977,"home > home goods > home decor > decorative accents > boxes, jars & tins"
975
+ 978,"home > home goods > home decor > decorative accents > decals, stickers & vinyl art"
976
+ 979,"home > home goods > home decor > decorative accents > decorative plates, bowls & trays"
977
+ 980,home > home goods > home decor > decorative accents > door decor
978
+ 981,home > home goods > home decor > decorative accents > door mats
979
+ 982,home > home goods > home decor > decorative accents > doorstops
980
+ 983,home > home goods > home decor > decorative accents > dreamcatchers
981
+ 984,home > home goods > home decor > decorative accents > dried flowers
982
+ 985,home > home goods > home decor > decorative accents > figurines
983
+ 986,home > home goods > home decor > decorative accents > finials
984
+ 987,home > home goods > home decor > decorative accents > frames
985
+ 988,home > home goods > home decor > decorative accents > hourglasses
986
+ 989,home > home goods > home decor > decorative accents > house numbers & letters
987
+ 990,home > home goods > home decor > decorative accents > indoor fountains
988
+ 991,home > home goods > home decor > decorative accents > key & letter holders
989
+ 992,home > home goods > home decor > decorative accents > masks
990
+ 993,home > home goods > home decor > decorative accents > message boards & holders
991
+ 994,home > home goods > home decor > decorative accents > mirrors
992
+ 995,home > home goods > home decor > decorative accents > music boxes
993
+ 996,home > home goods > home decor > decorative accents > piggy banks & money jars
994
+ 997,home > home goods > home decor > decorative accents > plaques & signs
995
+ 998,home > home goods > home decor > decorative accents > plate racks & hangers
996
+ 999,"home > home goods > home decor > decorative accents > posters, prints & paintings"
997
+ 1000,home > home goods > home decor > decorative accents > refrigerator magnets
998
+ 1001,home > home goods > home decor > decorative accents > sculptures
999
+ 1002,home > home goods > home decor > decorative accents > suncatchers & mobiles
1000
+ 1003,home > home goods > home decor > decorative accents > tapestries
1001
+ 1004,home > home goods > home decor > decorative accents > throw pillows
1002
+ 1005,home > home goods > home decor > decorative accents > tile art
1003
+ 1006,home > home goods > home decor > decorative accents > vase fillers
1004
+ 1007,home > home goods > home decor > decorative accents > vases
1005
+ 1008,home > home goods > home decor > decorative accents > wall pockets
1006
+ 1009,home > home goods > home decor > decorative accents > world globes
1007
+ 1010,home > home goods > home decor > decorative accents > wreaths & garlands
1008
+ 1011,home > home goods > home decor > holiday & seasonal decor > advent calendars
1009
+ 1012,home > home goods > home decor > holiday & seasonal decor > christmas lights
1010
+ 1013,home > home goods > home decor > holiday & seasonal decor > christmas trees
1011
+ 1014,home > home goods > home decor > holiday & seasonal decor > easter egg decorating kits
1012
+ 1015,home > home goods > home decor > holiday & seasonal decor > holiday ornament hooks & stands
1013
+ 1016,home > home goods > home decor > holiday & seasonal decor > holiday ornaments
1014
+ 1017,home > home goods > home decor > holiday & seasonal decor > nativity sets
1015
+ 1018,home > home goods > home decor > holiday & seasonal decor > seasonal village sets
1016
+ 1019,home > home goods > home decor > holiday & seasonal decor > snow globes
1017
+ 1020,home > home goods > home decor > holiday & seasonal decor > stockings & hangers
1018
+ 1021,home > home goods > home decor > holiday & seasonal decor > table decor
1019
+ 1022,home > home goods > home decor > holiday & seasonal decor > tree stands & skirts
1020
+ 1023,home > home goods > home decor > holiday & seasonal decor > wall decor
1021
+ 1024,home > home goods > home decor > holiday & seasonal decor > window decorations
1022
+ 1025,"home > home goods > home decor > holiday & seasonal decor > wreaths, garlands & plants"
1023
+ 1026,home > home goods > home decor > holiday & seasonal decor > yard decor
1024
+ 1027,home > home goods > home decor > home fragrances > air fresheners
1025
+ 1028,home > home goods > home decor > home fragrances > candle & oil warmers
1026
+ 1029,home > home goods > home decor > home fragrances > candle holders
1027
+ 1030,home > home goods > home decor > home fragrances > candle snuffers
1028
+ 1031,home > home goods > home decor > home fragrances > candles
1029
+ 1032,home > home goods > home decor > home fragrances > diffusers & fragrance oil
1030
+ 1033,home > home goods > home decor > home fragrances > incense
1031
+ 1034,home > home goods > home decor > home fragrances > incense holders
1032
+ 1035,home > home goods > home decor > home fragrances > potpourri
1033
+ 1036,home > home goods > home decor > home fragrances > wax tarts
1034
+ 1037,home > home goods > home decor > rugs & carpets > area rugs
1035
+ 1038,home > home goods > home decor > rugs & carpets > carpet tiles
1036
+ 1039,home > home goods > home decor > rugs & carpets > floor mats
1037
+ 1040,home > home goods > home decor > rugs & carpets > runners
1038
+ 1041,home > home goods > home decor > rugs & carpets > stair treads
1039
+ 1042,home > home goods > home decor > window treatments & hardware > curtain & drape rings
1040
+ 1043,home > home goods > home decor > window treatments & hardware > curtain & drape rods
1041
+ 1044,home > home goods > home decor > window treatments & hardware > curtain holdbacks & tassels
1042
+ 1045,home > home goods > home decor > window treatments & hardware > curtains & drapes
1043
+ 1046,home > home goods > home decor > window treatments & hardware > shutters
1044
+ 1047,home > home goods > home decor > window treatments & hardware > stained glass panels
1045
+ 1048,home > home goods > home decor > window treatments & hardware > window blinds & shades
1046
+ 1049,home > home goods > home decor > window treatments & hardware > window films
1047
+ 1050,home > home goods > home decor > window treatments & hardware > window magnets
1048
+ 1051,home > home goods > home decor > window treatments & hardware > window screens
1049
+ 1052,home > home goods > home decor > window treatments & hardware > window treatment replacement parts
1050
+ 1053,home > home goods > home decor > window treatments & hardware > window valances & cornices
1051
+ 1054,home > home goods > kitchen & dining > bakeware > bakeware sets
1052
+ 1055,home > home goods > kitchen & dining > bakeware > baking & cookie sheets
1053
+ 1056,home > home goods > kitchen & dining > bakeware > bread pans & molds
1054
+ 1057,home > home goods > kitchen & dining > bakeware > cake pans & molds
1055
+ 1058,home > home goods > kitchen & dining > bakeware > cooling racks
1056
+ 1059,home > home goods > kitchen & dining > bakeware > muffin & pastry pans
1057
+ 1060,home > home goods > kitchen & dining > bakeware > pie & quiche pans
1058
+ 1061,home > home goods > kitchen & dining > bakeware > pizza pans & stones
1059
+ 1062,home > home goods > kitchen & dining > bakeware > ramekins & soufflé dishes
1060
+ 1063,home > home goods > kitchen & dining > bakeware > roasting pans
1061
+ 1064,home > home goods > kitchen & dining > baking accessories
1062
+ 1065,home > home goods > kitchen & dining > baking accessories > baking cups & liners
1063
+ 1066,home > home goods > kitchen & dining > baking accessories > baking weights
1064
+ 1067,home > home goods > kitchen & dining > baking accessories > cake boards
1065
+ 1068,home > home goods > kitchen & dining > baking accessories > cake decorating supplies
1066
+ 1069,home > home goods > kitchen & dining > baking accessories > cookie cutters & presses
1067
+ 1070,home > home goods > kitchen & dining > baking accessories > icing bags
1068
+ 1071,home > home goods > kitchen & dining > baking accessories > pastry cutters
1069
+ 1072,home > home goods > kitchen & dining > baking accessories > pastry forms
1070
+ 1073,home > home goods > kitchen & dining > baking accessories > rolling pins
1071
+ 1074,home > home goods > kitchen & dining > barware > bar ice picks
1072
+ 1075,home > home goods > kitchen & dining > barware > bottle caps
1073
+ 1076,home > home goods > kitchen & dining > barware > bottle stoppers & corks
1074
+ 1077,home > home goods > kitchen & dining > barware > coaster holders
1075
+ 1078,home > home goods > kitchen & dining > barware > coasters
1076
+ 1079,home > home goods > kitchen & dining > barware > cocktail & barware tool sets
1077
+ 1080,home > home goods > kitchen & dining > barware > cocktail shakers
1078
+ 1081,home > home goods > kitchen & dining > barware > cocktail strainers
1079
+ 1082,home > home goods > kitchen & dining > barware > corkscrews & bottle openers
1080
+ 1083,home > home goods > kitchen & dining > barware > decanters
1081
+ 1084,home > home goods > kitchen & dining > barware > ice buckets & wine coolers
1082
+ 1085,home > home goods > kitchen & dining > barware > ice cube trays & molds
1083
+ 1086,home > home goods > kitchen & dining > barware > liquor & beer dispensers
1084
+ 1087,home > home goods > kitchen & dining > barware > muddlers
1085
+ 1088,home > home goods > kitchen & dining > barware > wine aerators
1086
+ 1089,home > home goods > kitchen & dining > barware > wine fridges & cellars
1087
+ 1090,home > home goods > kitchen & dining > barware > wine glass charms
1088
+ 1091,home > home goods > kitchen & dining > barware > wine glass holders
1089
+ 1092,home > home goods > kitchen & dining > barware > wine racks & bottle holders
1090
+ 1093,home > home goods > kitchen & dining > cookware > casserole dishes
1091
+ 1094,"home > home goods > kitchen & dining > cookware > cookware handles, lids & accessories"
1092
+ 1095,home > home goods > kitchen & dining > cookware > cookware sets
1093
+ 1096,home > home goods > kitchen & dining > cookware > crepe & blini pans
1094
+ 1097,home > home goods > kitchen & dining > cookware > double boilers
1095
+ 1098,home > home goods > kitchen & dining > cookware > dutch ovens
1096
+ 1099,home > home goods > kitchen & dining > cookware > fermentation & pickling crocks
1097
+ 1100,home > home goods > kitchen & dining > cookware > griddles & grill pans
1098
+ 1101,home > home goods > kitchen & dining > cookware > grill presses
1099
+ 1102,home > home goods > kitchen & dining > cookware > paella pans
1100
+ 1103,home > home goods > kitchen & dining > cookware > saucepans
1101
+ 1104,home > home goods > kitchen & dining > cookware > skillets & frying pans
1102
+ 1105,home > home goods > kitchen & dining > cookware > stock pots
1103
+ 1106,home > home goods > kitchen & dining > cookware > tagines & clay cooking pots
1104
+ 1107,home > home goods > kitchen & dining > cookware > woks
1105
+ 1108,home > home goods > kitchen & dining > dinnerware > bowls
1106
+ 1109,home > home goods > kitchen & dining > dinnerware > butter dishes
1107
+ 1110,home > home goods > kitchen & dining > dinnerware > creamers & sugar bowls
1108
+ 1111,home > home goods > kitchen & dining > dinnerware > dinnerware sets
1109
+ 1112,home > home goods > kitchen & dining > dinnerware > pitchers & carafes
1110
+ 1113,home > home goods > kitchen & dining > dinnerware > plates
1111
+ 1114,home > home goods > kitchen & dining > dinnerware > platters & trays
1112
+ 1115,home > home goods > kitchen & dining > dinnerware > salt & pepper shakers
1113
+ 1116,home > home goods > kitchen & dining > dinnerware > serving bowls & tureens
1114
+ 1117,home > home goods > kitchen & dining > dinnerware > specialty serving dishes
1115
+ 1118,home > home goods > kitchen & dining > dinnerware > specialty serving dishes > cake stands
1116
+ 1119,home > home goods > kitchen & dining > dinnerware > specialty serving dishes > egg cups
1117
+ 1120,home > home goods > kitchen & dining > dinnerware > specialty serving dishes > gravy & sauce boats
1118
+ 1121,home > home goods > kitchen & dining > dinnerware > specialty serving dishes > punch bowls & sets
1119
+ 1122,home > home goods > kitchen & dining > dinnerware > specialty serving dishes > trivets
1120
+ 1123,home > home goods > kitchen & dining > drinkware > coffee & tea
1121
+ 1124,home > home goods > kitchen & dining > drinkware > coffee & tea > coffee & tea cups
1122
+ 1125,home > home goods > kitchen & dining > drinkware > coffee & tea > coffee & tea saucers
1123
+ 1126,home > home goods > kitchen & dining > drinkware > coffee & tea > coffee & tea sets
1124
+ 1127,home > home goods > kitchen & dining > drinkware > coffee & tea > teapots
1125
+ 1128,home > home goods > kitchen & dining > drinkware > drinkware sets
1126
+ 1129,home > home goods > kitchen & dining > drinkware > mugs
1127
+ 1130,home > home goods > kitchen & dining > drinkware > stemware & liquor glasses
1128
+ 1131,home > home goods > kitchen & dining > drinkware > stemware & liquor glasses > beer glasses
1129
+ 1132,home > home goods > kitchen & dining > drinkware > stemware & liquor glasses > cocktail & liquor glasses
1130
+ 1133,home > home goods > kitchen & dining > drinkware > stemware & liquor glasses > wine & champagne glasses
1131
+ 1134,home > home goods > kitchen & dining > drinkware > tumblers
1132
+ 1135,home > home goods > kitchen & dining > flatware > chopsticks
1133
+ 1136,home > home goods > kitchen & dining > flatware > cutlery & kitchen knives
1134
+ 1137,home > home goods > kitchen & dining > flatware > flatware sets
1135
+ 1138,home > home goods > kitchen & dining > flatware > forks
1136
+ 1139,home > home goods > kitchen & dining > flatware > knife blocks & storage
1137
+ 1140,home > home goods > kitchen & dining > flatware > knife sharpeners
1138
+ 1141,home > home goods > kitchen & dining > flatware > knives
1139
+ 1142,home > home goods > kitchen & dining > flatware > scissors & shears
1140
+ 1143,home > home goods > kitchen & dining > flatware > spoons
1141
+ 1144,home > home goods > kitchen & dining > food & beverage carriers
1142
+ 1145,home > home goods > kitchen & dining > food & beverage carriers > airpots
1143
+ 1146,home > home goods > kitchen & dining > food & beverage carriers > canteens
1144
+ 1147,home > home goods > kitchen & dining > food & beverage carriers > coolers
1145
+ 1148,home > home goods > kitchen & dining > food & beverage carriers > drink sleeves
1146
+ 1149,home > home goods > kitchen & dining > food & beverage carriers > flasks
1147
+ 1150,home > home goods > kitchen & dining > food & beverage carriers > grocery bags
1148
+ 1151,home > home goods > kitchen & dining > food & beverage carriers > insulated bags
1149
+ 1152,home > home goods > kitchen & dining > food & beverage carriers > lunch boxes & totes
1150
+ 1153,home > home goods > kitchen & dining > food & beverage carriers > picnic baskets
1151
+ 1154,home > home goods > kitchen & dining > food & beverage carriers > replacement drink lids
1152
+ 1155,home > home goods > kitchen & dining > food & beverage carriers > reusable straws
1153
+ 1156,home > home goods > kitchen & dining > food & beverage carriers > thermoses
1154
+ 1157,home > home goods > kitchen & dining > food & beverage carriers > water bottles
1155
+ 1158,home > home goods > kitchen & dining > food & beverage carriers > wine carriers
1156
+ 1159,home > home goods > kitchen & dining > food storage
1157
+ 1160,home > home goods > kitchen & dining > food storage > bread boxes
1158
+ 1161,home > home goods > kitchen & dining > food storage > candy buckets
1159
+ 1162,home > home goods > kitchen & dining > food storage > cookie jars
1160
+ 1163,home > home goods > kitchen & dining > food storage > foil
1161
+ 1164,home > home goods > kitchen & dining > food storage > food & beverage labels
1162
+ 1165,home > home goods > kitchen & dining > food storage > food storage bags
1163
+ 1166,home > home goods > kitchen & dining > food storage > food storage containers
1164
+ 1167,home > home goods > kitchen & dining > food storage > food wrap dispensers
1165
+ 1168,home > home goods > kitchen & dining > food storage > honey jars
1166
+ 1169,home > home goods > kitchen & dining > food storage > parchment paper
1167
+ 1170,home > home goods > kitchen & dining > food storage > pastry cloth
1168
+ 1171,home > home goods > kitchen & dining > food storage > plastic wrap
1169
+ 1172,home > home goods > kitchen & dining > food storage > storage canisters & jars
1170
+ 1173,home > home goods > kitchen & dining > food storage > twist ties & bag clips
1171
+ 1174,home > home goods > kitchen & dining > food storage > vacuum sealers
1172
+ 1175,home > home goods > kitchen & dining > food storage > wax paper
1173
+ 1176,home > home goods > kitchen & dining > kitchen organization > cabinet organizers
1174
+ 1177,home > home goods > kitchen & dining > kitchen organization > can organizers
1175
+ 1178,home > home goods > kitchen & dining > kitchen organization > counter organizers
1176
+ 1179,home > home goods > kitchen & dining > kitchen organization > drawer organizer inserts
1177
+ 1180,home > home goods > kitchen & dining > kitchen organization > drinkware holders
1178
+ 1181,home > home goods > kitchen & dining > kitchen organization > flatware storage
1179
+ 1182,home > home goods > kitchen & dining > kitchen organization > paper towel holders
1180
+ 1183,home > home goods > kitchen & dining > kitchen organization > pot racks
1181
+ 1184,home improvement > home heating & cooling > air conditioners
1182
+ 1185,home improvement > home heating & cooling > air filters
1183
+ 1186,home improvement > home heating & cooling > air purifiers
1184
+ 1187,home improvement > home heating & cooling > dehumidifiers
1185
+ 1188,home improvement > home heating & cooling > fans
1186
+ 1189,home improvement > home heating & cooling > fireplaces & stoves
1187
+ 1190,"home improvement > home heating & cooling > fireplaces & stoves > andirons, grates & firedogs"
1188
+ 1191,home improvement > home heating & cooling > fireplaces & stoves > chimney brushes
1189
+ 1192,"home improvement > home heating & cooling > fireplaces & stoves > decorative logs, stone & glass"
1190
+ 1193,home improvement > home heating & cooling > fireplaces & stoves > fireplace hearths
1191
+ 1194,home improvement > home heating & cooling > fireplaces & stoves > fireplace mantels & surrounds
1192
+ 1195,home improvement > home heating & cooling > fireplaces & stoves > fireplace screens & doors
1193
+ 1196,home improvement > home heating & cooling > fireplaces & stoves > fireplaces
1194
+ 1197,home improvement > home heating & cooling > fireplaces & stoves > fuel & firewood
1195
+ 1198,home improvement > home heating & cooling > fireplaces & stoves > heating stoves
1196
+ 1199,home improvement > home heating & cooling > fireplaces & stoves > log holders & carriers
1197
+ 1200,"home improvement > home heating & cooling > fireplaces & stoves > pokers, tools & sets"
1198
+ 1201,home improvement > home heating & cooling > fireplaces & stoves > replacement parts
1199
+ 1202,home improvement > home heating & cooling > fireplaces & stoves > stove & chimney pipes
1200
+ 1203,home improvement > home heating & cooling > furnaces & heating systems
1201
+ 1204,home improvement > home heating & cooling > heated flooring
1202
+ 1205,home improvement > home heating & cooling > humidifiers
1203
+ 1206,home improvement > home heating & cooling > space heaters
1204
+ 1207,home improvement > home heating & cooling > thermostats
1205
+ 1208,home improvement > home heating & cooling > water heaters
1206
+ 1209,home improvement > tools > miscellaneous tools
1207
+ 1210,home improvement > tools > miscellaneous tools > lighters & matches
1208
+ 1211,home improvement > tools > miscellaneous tools > magnetizers & demagnetizers
1209
+ 1212,home improvement > tools > miscellaneous tools > marking tools
1210
+ 1213,home improvement > tools > miscellaneous tools > milling machines
1211
+ 1214,home improvement > tools > miscellaneous tools > pipe & bar benders
1212
+ 1215,home improvement > tools > miscellaneous tools > reamers
1213
+ 1216,home improvement > tools > miscellaneous tools > rivet guns & pliers
1214
+ 1217,home improvement > tools > miscellaneous tools > sanding blocks
1215
+ 1218,home improvement > tools > miscellaneous tools > saw horses
1216
+ 1219,home improvement > tools > miscellaneous tools > shapers
1217
+ 1220,home improvement > tools > miscellaneous tools > socket drivers
1218
+ 1221,"home improvement > tools > miscellaneous tools > tool boxes, belts & storage"
1219
+ 1222,home improvement > tools > miscellaneous tools > welding & soldering tools
1220
+ 1223,home improvement > tools > miscellaneous tools > wet/dry & shop vacuums
1221
+ 1224,home improvement > tools > miscellaneous tools > work benches
1222
+ 1225,home improvement > tools > miscellaneous tools > work lights
1223
+ 1226,home improvement > tools > painting tools > caulk & sealant
1224
+ 1227,home improvement > tools > painting tools > caulking guns
1225
+ 1228,home improvement > tools > painting tools > cleaning solutions
1226
+ 1229,home improvement > tools > painting tools > drop cloths
1227
+ 1230,home improvement > tools > painting tools > extension poles
1228
+ 1231,home improvement > tools > painting tools > paint brushes
1229
+ 1232,home improvement > tools > painting tools > paint buckets
1230
+ 1233,home improvement > tools > painting tools > paint mixers
1231
+ 1234,home improvement > tools > painting tools > paint rollers
1232
+ 1235,home improvement > tools > painting tools > paint sprayers
1233
+ 1236,home improvement > tools > painting tools > paint trays
1234
+ 1237,home improvement > tools > painting tools > painter's tape
1235
+ 1238,home improvement > tools > power tools > buffers & polishers
1236
+ 1239,home improvement > tools > power tools > drills
1237
+ 1240,home improvement > tools > power tools > grinders
1238
+ 1241,home improvement > tools > power tools > heat guns
1239
+ 1242,home improvement > tools > power tools > impact drivers & wrenches
1240
+ 1243,home improvement > tools > power tools > jacks & stands
1241
+ 1244,home improvement > tools > power tools > jigs
1242
+ 1245,home improvement > tools > power tools > joiners
1243
+ 1246,home improvement > tools > power tools > lathes
1244
+ 1247,home improvement > tools > power tools > mixed power tool sets
1245
+ 1248,home improvement > tools > power tools > nail & staple guns
1246
+ 1249,home improvement > tools > power tools > planers
1247
+ 1250,home improvement > tools > power tools > power tool parts & accessories
1248
+ 1251,home improvement > tools > power tools > rotary tools
1249
+ 1252,home improvement > tools > power tools > router bits
1250
+ 1253,home improvement > tools > power tools > router tables
1251
+ 1254,home improvement > tools > power tools > routers
1252
+ 1255,home improvement > tools > power tools > sanders
1253
+ 1256,home improvement > tools > power tools > saws & blades
1254
+ 1257,home improvement > tools > power tools > screwdrivers
1255
+ 1258,home improvement > tools > power tools > sharpeners
1256
+ 1259,home improvement > tools > power tools > winches
1257
+ 1260,home > bedding > bed canopies
1258
+ 1261,home > cleaning supplies > cleaning products & chemicals > carpet shampooers
1259
+ 1262,home > cleaning supplies > cleaning products & chemicals > carpet steamers
1260
+ 1263,home > cleaning supplies > cleaning products & chemicals > cleaning products & solutions
1261
+ 1264,home > cleaning supplies > cleaning tools
1262
+ 1265,home > cleaning supplies > cleaning tools > carpet & floor sweepers
1263
+ 1266,home > cleaning supplies > cleaning tools > cleaning buckets
1264
+ 1267,home > cleaning supplies > cleaning tools > cleaning gloves
1265
+ 1268,home > cleaning supplies > cleaning tools > cleaning towels & cloths
1266
+ 1269,home > cleaning supplies > cleaning tools > dusters
1267
+ 1270,home > cleaning supplies > cleaning tools > dustpans
1268
+ 1271,home > cleaning supplies > cleaning tools > mops & brooms
1269
+ 1272,home > cleaning supplies > cleaning tools > pipe cleaners
1270
+ 1273,home > cleaning supplies > cleaning tools > scrub brushes
1271
+ 1274,home > cleaning supplies > cleaning tools > sponges & scouring pads
1272
+ 1275,home > cleaning supplies > cleaning tools > squeegees
1273
+ 1276,home > cleaning supplies > dishwashing supplies
1274
+ 1277,home > cleaning supplies > dishwashing supplies > dish soaps
1275
+ 1278,home > cleaning supplies > dishwashing supplies > dishwasher detergents
1276
+ 1279,home > cleaning supplies > dishwashing supplies > dishwasher rinse aids
1277
+ 1280,home > cleaning supplies > drawer & shelf liners
1278
+ 1281,home > cleaning supplies > fabric & upholstery protectors
1279
+ 1282,home > cleaning supplies > floor protectors & runners
1280
+ 1283,home > cleaning supplies > household disposables
1281
+ 1284,home > cleaning supplies > household disposables > disposable straws
1282
+ 1285,home > cleaning supplies > household disposables > disposable tableware
1283
+ 1286,home > cleaning supplies > household disposables > disposable tableware > disposable cups
1284
+ 1287,home > cleaning supplies > household disposables > disposable tableware > disposable cutlery
1285
+ 1288,home > cleaning supplies > household disposables > disposable tableware > disposable napkins
1286
+ 1289,home > cleaning supplies > household disposables > disposable tableware > disposable plates
1287
+ 1290,home > cleaning supplies > household disposables > disposable tableware > disposable tablecloths
1288
+ 1291,home > cleaning supplies > household disposables > facial tissues
1289
+ 1292,home > cleaning supplies > household disposables > paper towels
1290
+ 1293,home > cleaning supplies > household disposables > toilet paper
1291
+ 1294,home > cleaning supplies > household disposables > trash bags
1292
+ 1295,home > cleaning supplies > laundry supplies > bleaches & stain removers
1293
+ 1296,home > cleaning supplies > laundry supplies > clothespins
1294
+ 1297,home > cleaning supplies > laundry supplies > dry cleaning kits
1295
+ 1298,home > cleaning supplies > laundry supplies > drying racks & hangers
1296
+ 1299,home > cleaning supplies > laundry supplies > fabric deodorizers
1297
+ 1300,home > cleaning supplies > laundry supplies > fabric shavers
1298
+ 1301,home > cleaning supplies > laundry supplies > fabric softeners & dryer sheets
1299
+ 1302,home > cleaning supplies > laundry supplies > fabric starch
1300
+ 1303,home > cleaning supplies > laundry supplies > garment shields
1301
+ 1304,home > cleaning supplies > laundry supplies > garment steamers
1302
+ 1305,home > cleaning supplies > laundry supplies > hampers & baskets
1303
+ 1306,home > cleaning supplies > laundry supplies > iron rests
1304
+ 1307,home > cleaning supplies > laundry supplies > ironing board covers
1305
+ 1308,home > cleaning supplies > laundry supplies > ironing board racks
1306
+ 1309,home > cleaning supplies > laundry supplies > ironing boards
1307
+ 1310,home > cleaning supplies > laundry supplies > irons
1308
+ 1311,home > cleaning supplies > laundry supplies > laundry balls
1309
+ 1312,home > cleaning supplies > laundry supplies > laundry detergents
1310
+ 1313,home > cleaning supplies > laundry supplies > lint rollers
1311
+ 1314,home > cleaning supplies > laundry supplies > washing bags
1312
+ 1315,home > cleaning supplies > laundry supplies > wrinkle releasers & anti-static sprays
1313
+ 1316,home > cleaning supplies > party supplies
1314
+ 1317,home > cleaning supplies > party supplies > aisle runners
1315
+ 1318,home > cleaning supplies > party supplies > badges & pins
1316
+ 1319,home > cleaning supplies > party supplies > balloons
1317
+ 1320,"home > cleaning supplies > party supplies > banners, bunting & garlands"
1318
+ 1321,home > cleaning supplies > party supplies > cake toppers
1319
+ 1322,home > cleaning supplies > party supplies > candles
1320
+ 1323,home > cleaning supplies > party supplies > card boxes
1321
+ 1324,home > cleaning supplies > party supplies > centerpieces
1322
+ 1325,home > cleaning supplies > party supplies > confetti
1323
+ 1326,home > cleaning supplies > party supplies > gift bags
1324
+ 1327,home > cleaning supplies > party supplies > glow sticks
1325
+ 1328,home > cleaning supplies > party supplies > guest books
1326
+ 1329,home > cleaning supplies > party supplies > invitations & stationery
1327
+ 1330,home > cleaning supplies > party supplies > organizers & planners
1328
+ 1331,home > cleaning supplies > party supplies > party favors
1329
+ 1332,home > cleaning supplies > party supplies > party sets & kits
1330
+ 1333,home > cleaning supplies > party supplies > piñatas
1331
+ 1334,home > cleaning supplies > party supplies > ribbons & bows
1332
+ 1335,home > cleaning supplies > party supplies > tulle
1333
+ 1336,home > cleaning supplies > party supplies > wrapping paper
1334
+ 1337,home > cleaning supplies > shoe care
1335
+ 1338,home > cleaning supplies > shoe care > boot pulls
1336
+ 1339,home > cleaning supplies > shoe care > shoe bags
1337
+ 1340,home > cleaning supplies > shoe care > shoe brushes
1338
+ 1341,home > cleaning supplies > shoe care > shoe care kits
1339
+ 1342,home > cleaning supplies > shoe care > shoe dryers
1340
+ 1343,home > cleaning supplies > shoe care > shoe horns
1341
+ 1344,home > cleaning supplies > shoe care > shoe polishers
1342
+ 1345,home > cleaning supplies > shoe care > shoe polishes & waxes
1343
+ 1346,home > cleaning supplies > shoe care > shoe scrapers
1344
+ 1347,home > cleaning supplies > shoe care > shoe treatments & dyes
1345
+ 1348,home > cleaning supplies > shoe care > shoe trees & shapers
1346
+ 1349,home > cleaning supplies > trash cans & wastebaskets
1347
+ 1350,home > cleaning supplies > vacuums & floor cleaners > canister vacuum cleaners
1348
+ 1351,home > cleaning supplies > vacuums & floor cleaners > handheld vacuum cleaners
1349
+ 1352,home > cleaning supplies > vacuums & floor cleaners > robotic vacuum cleaners
1350
+ 1353,home > cleaning supplies > vacuums & floor cleaners > stick vacuum cleaners
1351
+ 1354,home > cleaning supplies > vacuums & floor cleaners > upright vacuum cleaners
1352
+ 1355,home > cleaning supplies > vacuums & floor cleaners > vacuum cleaner parts & accessories
1353
+ 1356,home > cleaning supplies > vacuums & floor cleaners > vacuum cleaners
1354
+ 1357,home > furniture > bean bags & inflatable furniture
1355
+ 1358,home > furniture > bedroom furniture > armoires & wardrobes
1356
+ 1359,home > furniture > bedroom furniture > bedroom furniture sets
1357
+ 1360,home > furniture > bedroom furniture > beds & mattresses
1358
+ 1361,home > furniture > bedroom furniture > beds & mattresses > bed & waterbed accessories
1359
+ 1362,home > furniture > bedroom furniture > beds & mattresses > beds & bed frames
1360
+ 1363,home > furniture > bedroom furniture > beds & mattresses > headboards & footboards
1361
+ 1364,home > furniture > bedroom furniture > beds & mattresses > inflatable mattresses
1362
+ 1365,home > furniture > bedroom furniture > beds & mattresses > mattress foundations
1363
+ 1366,home > furniture > bedroom furniture > beds & mattresses > mattresses
1364
+ 1367,home > furniture > bedroom furniture > dressers & chests of drawers
1365
+ 1368,home > furniture > bedroom furniture > nightstands
1366
+ 1369,home > furniture > benches
1367
+ 1370,home > furniture > dining room furniture > bar carts & serving carts
1368
+ 1371,home > furniture > dining room furniture > bar stools
1369
+ 1372,home > furniture > dining room furniture > buffets & sideboards
1370
+ 1373,home > furniture > dining room furniture > china cabinets & hutches
1371
+ 1374,home > furniture > dining room furniture > dining chairs
1372
+ 1375,home > furniture > dining room furniture > dining furniture sets
1373
+ 1376,home > furniture > dining room furniture > dining tables
1374
+ 1377,home > furniture > dining room furniture > kitchen islands
1375
+ 1378,home > furniture > furniture parts & accessories
1376
+ 1379,home > furniture > hall trees & coat racks
1377
+ 1380,home > furniture > living room furniture > bookcases
1378
+ 1381,home > furniture > living room furniture > chaise lounges
1379
+ 1382,home > furniture > living room furniture > coffee tables
1380
+ 1383,home > furniture > living room furniture > console tables
1381
+ 1384,home > furniture > living room furniture > end & side tables
1382
+ 1385,home > furniture > living room furniture > entertainment units & tv stands
1383
+ 1386,home > furniture > living room furniture > futons
1384
+ 1387,home > furniture > living room furniture > living room chairs
1385
+ 1388,home > furniture > living room furniture > living room furniture sets
1386
+ 1389,home > furniture > living room furniture > magazine racks
1387
+ 1390,home > furniture > living room furniture > media storage racks
1388
+ 1391,home > furniture > living room furniture > ottomans & footstools
1389
+ 1392,"home > furniture > living room furniture > sofas, loveseats & sectionals"
1390
+ 1393,home > furniture > office furniture > desks
1391
+ 1394,home > furniture > office furniture > office chairs
1392
+ 1395,home > furniture > office furniture > office furniture sets
1393
+ 1396,home > furniture > office furniture > office suites
1394
+ 1397,home > furniture > office furniture > storage & filing cabinets
1395
+ 1398,home > furniture > room dividers
1396
+ 1399,home > furniture > slipcovers
1397
+ 1400,home > furniture > trunks & chests
1398
+ 1401,home > furniture > vanities & makeup tables
1399
+ 1402,home > furniture > wall shelves & ledges
1400
+ 1403,home > home goods > bath > bath accessories > mirrors
1401
+ 1404,home > home goods > bath > bath accessories > plungers
1402
+ 1405,home > home goods > bath > bath accessories > scales
1403
+ 1406,home > home goods > bath > bath accessories > shower curtain hooks & rods
1404
+ 1407,home > home goods > bath > bath accessories > shower heads
1405
+ 1408,home improvement > building supplies & hardware > consumables
1406
+ 1409,home improvement > building supplies & hardware > consumables > grout
1407
+ 1410,home improvement > building supplies & hardware > consumables > insulation
1408
+ 1411,home improvement > building supplies & hardware > consumables > lubricants
1409
+ 1412,home improvement > building supplies & hardware > consumables > paint & varnish
1410
+ 1413,home improvement > building supplies & hardware > consumables > paint & varnish > paint
1411
+ 1414,home improvement > building supplies & hardware > consumables > paint & varnish > paint binders
1412
+ 1415,home improvement > building supplies & hardware > consumables > paint & varnish > paint primers
1413
+ 1416,home improvement > building supplies & hardware > consumables > paint & varnish > stains
1414
+ 1417,home improvement > building supplies & hardware > consumables > paint & varnish > varnishes & finishes
1415
+ 1418,home improvement > building supplies & hardware > consumables > plaster & patching compounds
1416
+ 1419,home improvement > building supplies & hardware > consumables > plumbing primers
1417
+ 1420,home improvement > building supplies & hardware > consumables > protective coatings & sealants
1418
+ 1421,home improvement > building supplies & hardware > consumables > rebar & remesh
1419
+ 1422,home improvement > building supplies & hardware > consumables > solder & flux
1420
+ 1423,"home improvement > building supplies & hardware > consumables > solvents, strippers & thinners"
1421
+ 1424,home improvement > building supplies & hardware > consumables > tape
1422
+ 1425,home improvement > building supplies & hardware > countertops
1423
+ 1426,home improvement > building supplies & hardware > doors & door hardware
1424
+ 1427,home improvement > building supplies & hardware > doors & door hardware > door closers
1425
+ 1428,home improvement > building supplies & hardware > doors & door hardware > door frames
1426
+ 1429,home improvement > building supplies & hardware > doors & door hardware > door hinges
1427
+ 1430,home improvement > building supplies & hardware > doors & door hardware > door keyhole covers & escutcheons
1428
+ 1431,home improvement > building supplies & hardware > doors & door hardware > door knobs & levers
1429
+ 1432,home improvement > building supplies & hardware > doors & door hardware > door knockers
1430
+ 1433,home improvement > building supplies & hardware > doors & door hardware > door locks & lock mechanisms
1431
+ 1434,home improvement > building supplies & hardware > doors & door hardware > door push plates
1432
+ 1435,home improvement > building supplies & hardware > doors & door hardware > door stops
1433
+ 1436,home improvement > building supplies & hardware > doors & door hardware > door strikes
1434
+ 1437,home improvement > building supplies & hardware > doors & door hardware > door viewers
1435
+ 1438,home improvement > building supplies & hardware > doors & door hardware > doorbells
1436
+ 1439,home improvement > building supplies & hardware > doors & door hardware > doors
1437
+ 1440,home improvement > building supplies & hardware > doors & door hardware > latches & bolts
1438
+ 1441,home improvement > building supplies & hardware > doors & door hardware > screen doors
1439
+ 1442,home improvement > building supplies & hardware > doors & door hardware > weather stripping
1440
+ 1443,home improvement > building supplies & hardware > electrical & solar supplies
1441
+ 1444,home improvement > building supplies & hardware > electrical & solar supplies > circuit breakers & fuse boxes
1442
+ 1445,home improvement > building supplies & hardware > electrical & solar supplies > extension cords
1443
+ 1446,home improvement > building supplies & hardware > electrical & solar supplies > generators
1444
+ 1447,home improvement > building supplies & hardware > electrical & solar supplies > plug caps
1445
+ 1448,home improvement > building supplies & hardware > electrical & solar supplies > solar chargers & inverters
1446
+ 1449,home improvement > building supplies & hardware > electrical & solar supplies > solar panels
1447
+ 1450,home improvement > building supplies & hardware > electrical & solar supplies > solar water pumps
1448
+ 1451,home improvement > building supplies & hardware > electrical & solar supplies > switch plates & outlet covers
1449
+ 1452,home improvement > building supplies & hardware > electrical & solar supplies > switches & outlets
1450
+ 1453,home improvement > building supplies & hardware > electrical & solar supplies > wall socket controls & sensors
1451
+ 1454,home improvement > building supplies & hardware > flooring & tiles
1452
+ 1455,home improvement > building supplies & hardware > flooring & tiles > floor & wall tiles
1453
+ 1456,home improvement > building supplies & hardware > flooring & tiles > flooring & tiling accessories
1454
+ 1457,home improvement > building supplies & hardware > flooring & tiles > flooring moldings & trims
1455
+ 1458,home improvement > building supplies & hardware > flooring & tiles > flooring underlayment
1456
+ 1459,home improvement > building supplies & hardware > flooring & tiles > laminate & vinyl flooring
1457
+ 1460,home improvement > building supplies & hardware > flooring & tiles > wood flooring
1458
+ 1461,home improvement > building supplies & hardware > garage doors & openers
1459
+ 1462,home improvement > building supplies & hardware > garage doors & openers > garage door parts & accessories
1460
+ 1463,home improvement > building supplies & hardware > garage doors & openers > garage door remotes
1461
+ 1464,home improvement > building supplies & hardware > garage doors & openers > garage doors
1462
+ 1465,home improvement > building supplies & hardware > garage doors & openers > opener systems
1463
+ 1466,home improvement > building supplies & hardware > locks & keys
1464
+ 1467,home improvement > building supplies & hardware > locks & keys > key blanks
1465
+ 1468,home improvement > building supplies & hardware > locks & keys > key caps
1466
+ 1469,home improvement > building supplies & hardware > locks & keys > key card entry systems
1467
+ 1470,home improvement > building supplies & hardware > locks & keys > locks & latches
1468
+ 1471,home improvement > building supplies & hardware > lumber & composites
1469
+ 1472,home improvement > building supplies & hardware > lumber & composites > lumber
1470
+ 1473,home improvement > building supplies & hardware > lumber & composites > wall paneling
1471
+ 1474,home improvement > building supplies & hardware > lumber & composites > wood composite panels & sheets
1472
+ 1475,home improvement > building supplies & hardware > lumber & composites > wood veneer sheets
1473
+ 1476,home improvement > building supplies & hardware > mailboxes & mailbox hardware
1474
+ 1477,home improvement > building supplies & hardware > mailboxes & mailbox hardware > mail slots
1475
+ 1478,home improvement > building supplies & hardware > mailboxes & mailbox hardware > mailbox covers
1476
+ 1479,home improvement > building supplies & hardware > mailboxes & mailbox hardware > mailbox enclosures
1477
+ 1480,home improvement > building supplies & hardware > mailboxes & mailbox hardware > mailbox flags
1478
+ 1481,home improvement > building supplies & hardware > mailboxes & mailbox hardware > mailbox posts
1479
+ 1482,home improvement > building supplies & hardware > mailboxes & mailbox hardware > mailbox replacement doors
1480
+ 1483,home improvement > building supplies & hardware > mailboxes & mailbox hardware > mailboxes
1481
+ 1484,"home improvement > building supplies & hardware > nails, screws & fasteners"
1482
+ 1485,"home improvement > building supplies & hardware > nails, screws & fasteners > anchors"
1483
+ 1486,"home improvement > building supplies & hardware > nails, screws & fasteners > braces & brackets"
1484
+ 1487,"home improvement > building supplies & hardware > nails, screws & fasteners > chain connectors & links"
1485
+ 1488,"home improvement > building supplies & hardware > nails, screws & fasteners > clamps & shackles"
1486
+ 1489,"home improvement > building supplies & hardware > nails, screws & fasteners > coils"
1487
+ 1490,"home improvement > building supplies & hardware > nails, screws & fasteners > fastener assortments"
1488
+ 1491,"home improvement > building supplies & hardware > nails, screws & fasteners > gear ties"
1489
+ 1492,"home improvement > building supplies & hardware > nails, screws & fasteners > hooks"
1490
+ 1493,"home improvement > building supplies & hardware > nails, screws & fasteners > nails"
1491
+ 1494,"home improvement > building supplies & hardware > nails, screws & fasteners > nuts & bolts"
1492
+ 1495,"home improvement > building supplies & hardware > nails, screws & fasteners > pins"
1493
+ 1496,"home improvement > building supplies & hardware > nails, screws & fasteners > rivets"
1494
+ 1497,"home improvement > building supplies & hardware > nails, screws & fasteners > screw posts"
1495
+ 1498,"home improvement > building supplies & hardware > nails, screws & fasteners > screws"
1496
+ 1499,"home improvement > building supplies & hardware > nails, screws & fasteners > springs"
1497
+ 1500,"home improvement > building supplies & hardware > nails, screws & fasteners > threaded rods"
1498
+ 1501,"home improvement > building supplies & hardware > nails, screws & fasteners > utility buckles"
1499
+ 1502,"home improvement > building supplies & hardware > nails, screws & fasteners > washers"
1500
+ 1503,home improvement > building supplies & hardware > roofing supplies
1501
+ 1504,home improvement > building supplies & hardware > roofing supplies > gutters
1502
+ 1505,home improvement > building supplies & hardware > roofing supplies > roof flashings
1503
+ 1506,home improvement > building supplies & hardware > roofing supplies > shingles & tiles
1504
+ 1507,home improvement > building supplies & hardware > siding
1505
+ 1508,home improvement > building supplies & hardware > staircases
1506
+ 1509,home improvement > building supplies & hardware > wallpaper & accessories
1507
+ 1510,home improvement > building supplies & hardware > wallpaper & accessories > wallpaper borders
1508
+ 1511,home improvement > building supplies & hardware > wallpaper & accessories > wallpaper murals
1509
+ 1512,home improvement > building supplies & hardware > wallpaper & accessories > wallpaper rolls & sheets
1510
+ 1513,home improvement > building supplies & hardware > wallpaper & accessories > wallpaper tools & accessories
1511
+ 1514,home improvement > building supplies & hardware > windows & window hardware
1512
+ 1515,home improvement > building supplies & hardware > windows & window hardware > weather stripping
1513
+ 1516,home improvement > building supplies & hardware > windows & window hardware > window cranks
1514
+ 1517,home improvement > building supplies & hardware > windows & window hardware > window frames
1515
+ 1518,home improvement > building supplies & hardware > windows & window hardware > window hardware
1516
+ 1519,home improvement > building supplies & hardware > windows & window hardware > window screens
1517
+ 1520,home improvement > building supplies & hardware > windows & window hardware > window sills
1518
+ 1521,home improvement > building supplies & hardware > windows & window hardware > windows
1519
+ 1522,home improvement > plumbing & fixtures > bathroom suites
1520
+ 1523,home improvement > plumbing & fixtures > bathtubs
1521
+ 1524,home improvement > plumbing & fixtures > drains
1522
+ 1525,home improvement > plumbing & fixtures > faucets
1523
+ 1526,home improvement > plumbing & fixtures > garbage disposals
1524
+ 1527,home improvement > plumbing & fixtures > pipes
1525
+ 1528,home improvement > plumbing & fixtures > pumps
1526
+ 1529,home improvement > plumbing & fixtures > shower parts & accessories
1527
+ 1530,home improvement > plumbing & fixtures > shower parts & accessories > bathtub & shower jets
1528
+ 1531,home improvement > plumbing & fixtures > shower parts & accessories > electric & power showers
1529
+ 1532,home improvement > plumbing & fixtures > shower parts & accessories > shower arms & connectors
1530
+ 1533,home improvement > plumbing & fixtures > shower parts & accessories > shower bases
1531
+ 1534,home improvement > plumbing & fixtures > shower parts & accessories > shower columns
1532
+ 1535,home improvement > plumbing & fixtures > shower parts & accessories > shower doors & enclosures
1533
+ 1536,home improvement > plumbing & fixtures > shower parts & accessories > shower heads
1534
+ 1537,home improvement > plumbing & fixtures > shower parts & accessories > shower walls & surrounds
1535
+ 1538,home improvement > plumbing & fixtures > shower stalls
1536
+ 1539,home improvement > plumbing & fixtures > sinks
1537
+ 1540,home improvement > plumbing & fixtures > toilet parts & accessories
1538
+ 1541,home improvement > plumbing & fixtures > toilet parts & accessories > ballcocks & flappers
1539
+ 1542,home improvement > plumbing & fixtures > toilet parts & accessories > bidet faucets & sprayers
1540
+ 1543,home improvement > plumbing & fixtures > toilet parts & accessories > toilet & bidet seats
1541
+ 1544,home improvement > plumbing & fixtures > toilet parts & accessories > toilet tank levers
1542
+ 1545,home improvement > plumbing & fixtures > toilet parts & accessories > toilet tanks
1543
+ 1546,home improvement > plumbing & fixtures > toilet parts & accessories > toilet trim
1544
+ 1547,home improvement > plumbing & fixtures > toilets
1545
+ 1548,"home improvement > plumbing & fixtures > valves, fittings & clamps"
1546
+ 1549,home improvement > plumbing & fixtures > vanities
1547
+ 1550,home improvement > plumbing & fixtures > water levelers
1548
+ 1551,home improvement > plumbing & fixtures > water softeners
1549
+ 1552,home improvement > plumbing & fixtures > water timers
1550
+ 1553,home improvement > plumbing & fixtures > well supplies
1551
+ 1554,home improvement > tools > air tools > air compressors
1552
+ 1555,home improvement > tools > air tools > air tool kits
1553
+ 1556,home improvement > tools > air tools > air tool parts & accessories
1554
+ 1557,home improvement > tools > air tools > cut-off tools
1555
+ 1558,home improvement > tools > air tools > drills
1556
+ 1559,home improvement > tools > air tools > grease & sealant guns
1557
+ 1560,home improvement > tools > air tools > grinders
1558
+ 1561,home improvement > tools > air tools > hammers
1559
+ 1562,home improvement > tools > air tools > nailers
1560
+ 1563,home improvement > tools > air tools > ratchets
1561
+ 1564,home improvement > tools > air tools > sandblasters
1562
+ 1565,home improvement > tools > air tools > sanders
1563
+ 1566,home improvement > tools > air tools > wrenches
1564
+ 1567,home improvement > tools > hand tools > chisels
1565
+ 1568,home improvement > tools > hand tools > clamps & vises
1566
+ 1569,home improvement > tools > hand tools > cutters
1567
+ 1570,home improvement > tools > hand tools > files
1568
+ 1571,home improvement > tools > hand tools > hammers & mallets
1569
+ 1572,home improvement > tools > hand tools > hand tool parts & accessories
1570
+ 1573,home improvement > tools > hand tools > knives & blades
1571
+ 1574,home improvement > tools > hand tools > mixed hand tool sets
1572
+ 1575,home improvement > tools > hand tools > multitools
1573
+ 1576,home improvement > tools > hand tools > pickup tools
1574
+ 1577,home improvement > tools > hand tools > planes
1575
+ 1578,home improvement > tools > hand tools > pliers
1576
+ 1579,home improvement > tools > hand tools > pry bars
1577
+ 1580,home improvement > tools > hand tools > punches
1578
+ 1581,home improvement > tools > hand tools > putty knives & scrapers
1579
+ 1582,home improvement > tools > hand tools > saws
1580
+ 1583,home improvement > tools > hand tools > screwdrivers
1581
+ 1584,home improvement > tools > hand tools > taps & dies
1582
+ 1585,home improvement > tools > hand tools > tool keys
1583
+ 1586,home improvement > tools > hand tools > trowels
1584
+ 1587,home improvement > tools > hand tools > winches
1585
+ 1588,home improvement > tools > hand tools > wrenches
1586
+ 1589,home improvement > tools > ladders & scaffolding > ladder carts
1587
+ 1590,home improvement > tools > ladders & scaffolding > ladders
1588
+ 1591,home improvement > tools > ladders & scaffolding > scaffolding
1589
+ 1592,home improvement > tools > ladders & scaffolding > step stools
1590
+ 1593,home improvement > tools > ladders & scaffolding > work platforms
1591
+ 1594,home improvement > tools > masonry tools
1592
+ 1595,home improvement > tools > masonry tools > brick tools
1593
+ 1596,home improvement > tools > masonry tools > cement mixers
1594
+ 1597,home improvement > tools > masonry tools > construction lines
1595
+ 1598,home improvement > tools > masonry tools > floats
1596
+ 1599,home improvement > tools > masonry tools > grout sponges
1597
+ 1600,home improvement > tools > masonry tools > masonry edgers & groovers
1598
+ 1601,home improvement > tools > masonry tools > masonry jointers
1599
+ 1602,home improvement > tools > masonry tools > masonry trowels
1600
+ 1603,home improvement > tools > masonry tools > power trowels
1601
+ 1604,home improvement > tools > measuring tools & sensors > air quality meters
1602
+ 1605,home improvement > tools > measuring tools & sensors > altimeters
1603
+ 1606,home improvement > tools > measuring tools & sensors > anemometers
1604
+ 1607,home improvement > tools > measuring tools & sensors > barometers
1605
+ 1608,home improvement > tools > measuring tools & sensors > calipers
1606
+ 1609,home improvement > tools > measuring tools & sensors > cruising rods
1607
+ 1610,home improvement > tools > measuring tools & sensors > distance meters
1608
+ 1611,home improvement > tools > measuring tools & sensors > dividers
1609
+ 1612,home improvement > tools > measuring tools & sensors > electrical testing tools
1610
+ 1613,home improvement > tools > measuring tools & sensors > flow meters & controllers
1611
+ 1614,home improvement > tools > measuring tools & sensors > gas detectors
1612
+ 1615,home improvement > tools > measuring tools & sensors > gauges
1613
+ 1616,home improvement > tools > measuring tools & sensors > geiger counters
1614
+ 1617,home improvement > tools > measuring tools & sensors > hygrometers
1615
+ 1618,home improvement > tools > measuring tools & sensors > infrared thermometers
1616
+ 1619,home improvement > tools > measuring tools & sensors > knife guides
1617
+ 1620,home improvement > tools > measuring tools & sensors > levels
1618
+ 1621,home improvement > tools > measuring tools & sensors > measuring scales
1619
+ 1622,home improvement > tools > measuring tools & sensors > measuring wheels
1620
+ 1623,home improvement > tools > measuring tools & sensors > moisture meters
1621
+ 1624,home improvement > tools > measuring tools & sensors > multimeters
1622
+ 1625,home improvement > tools > measuring tools & sensors > probes & finders
1623
+ 1626,home improvement > tools > measuring tools & sensors > protractors
1624
+ 1627,home improvement > tools > measuring tools & sensors > rebar locators
1625
+ 1628,home improvement > tools > measuring tools & sensors > rulers & squares
1626
+ 1629,home improvement > tools > measuring tools & sensors > seismometer
1627
+ 1630,home improvement > tools > measuring tools & sensors > sound meters
1628
+ 1631,home improvement > tools > measuring tools & sensors > stud finders
1629
+ 1632,home improvement > tools > measuring tools & sensors > tape measures
1630
+ 1633,home improvement > tools > measuring tools & sensors > theodolites
1631
+ 1634,home improvement > tools > measuring tools & sensors > thermal imaging cameras
1632
+ 1635,home improvement > tools > measuring tools & sensors > thermocouples & thermopiles
1633
+ 1636,home improvement > tools > measuring tools & sensors > transducers
1634
+ 1637,home improvement > tools > measuring tools & sensors > uv light meters
1635
+ 1638,home improvement > tools > measuring tools & sensors > vibration meters
1636
+ 1639,home improvement > tools > measuring tools & sensors > weather forecasters & stations
1637
+ 1640,home improvement > tools > measuring tools & sensors > ph meters
1638
+ 1641,home improvement > tools > miscellaneous tools > anvils
1639
+ 1642,home improvement > tools > miscellaneous tools > blowtorches
1640
+ 1643,home improvement > tools > miscellaneous tools > compactors
1641
+ 1644,home improvement > tools > miscellaneous tools > concrete brooms
1642
+ 1645,home improvement > tools > miscellaneous tools > deburrers
1643
+ 1646,home improvement > tools > miscellaneous tools > dollies & hand trucks
1644
+ 1647,home improvement > tools > miscellaneous tools > flashlights
1645
+ 1648,home improvement > tools > miscellaneous tools > handheld power mixers
1646
+ 1649,home improvement > tools > miscellaneous tools > inspection mirrors
1647
+ 1650,home improvement > tools > miscellaneous tools > light bulb changers
1648
+ 1651,home improvement > tools > miscellaneous tools > magnetic sweepers
1649
+ 1652,home improvement > building supplies & hardware > building plans & blueprints
1650
+ 1653,home improvement > building supplies & hardware > cabinets & cabinet hardware
1651
+ 1654,home improvement > building supplies & hardware > cabinets & cabinet hardware > cabinet & drawer locks
1652
+ 1655,home improvement > building supplies & hardware > cabinets & cabinet hardware > cabinet backplates
1653
+ 1656,home improvement > building supplies & hardware > cabinets & cabinet hardware > cabinet catches
1654
+ 1657,home improvement > building supplies & hardware > cabinets & cabinet hardware > cabinet hinges
1655
+ 1658,home improvement > building supplies & hardware > cabinets & cabinet hardware > cabinet keyhole covers & escutcheons
1656
+ 1659,home improvement > building supplies & hardware > cabinets & cabinet hardware > cabinet knobs & pulls
1657
+ 1660,home improvement > building supplies & hardware > cabinets & cabinet hardware > cabinets
1658
+ 1661,home improvement > building supplies & hardware > cabinets & cabinet hardware > drawer slides
1659
+ 1662,"home improvement > building supplies & hardware > chain, wire & rope"
1660
+ 1663,"home improvement > building supplies & hardware > chain, wire & rope > bungee cords"
1661
+ 1664,"home improvement > building supplies & hardware > chain, wire & rope > chains"
1662
+ 1665,"home improvement > building supplies & hardware > chain, wire & rope > ropes"
1663
+ 1666,"home improvement > building supplies & hardware > chain, wire & rope > tie downs & straps"
1664
+ 1667,"home improvement > building supplies & hardware > chain, wire & rope > twine"
1665
+ 1668,"home improvement > building supplies & hardware > chain, wire & rope > utility wire"
1666
+ 1669,home improvement > building supplies & hardware > consumables > bricks & concrete blocks
1667
+ 1670,"home improvement > building supplies & hardware > consumables > cement, mortar & concrete mixes"
1668
+ 1671,home improvement > building supplies & hardware > consumables > chemicals
1669
+ 1672,home improvement > building supplies & hardware > consumables > drywall
1670
+ 1673,home improvement > building supplies & hardware > consumables > glass
1671
+ 1674,home improvement > building supplies & hardware > consumables > glue & adhesives
1672
+ 1675,jewelry & watches > jewelry > cremation & memorial jewelry
1673
+ 1676,jewelry & watches > jewelry > engagement jewelry
1674
+ 1677,jewelry & watches > jewelry > engagement jewelry > bridal jewelry
1675
+ 1678,jewelry & watches > jewelry > engagement jewelry > engagement & wedding ring sets
1676
+ 1679,jewelry & watches > jewelry > engagement jewelry > engagement rings
1677
+ 1680,jewelry & watches > jewelry > engagement jewelry > wedding & anniversary bands
1678
+ 1681,jewelry & watches > jewelry > loose beads
1679
+ 1682,jewelry & watches > jewelry > loose gemstones
1680
+ 1683,jewelry & watches > jewelry > men's jewelry
1681
+ 1684,jewelry & watches > jewelry > men's jewelry > bolo ties
1682
+ 1685,jewelry & watches > jewelry > men's jewelry > bracelets
1683
+ 1686,jewelry & watches > jewelry > men's jewelry > cufflinks & button studs
1684
+ 1687,jewelry & watches > jewelry > men's jewelry > earrings
1685
+ 1688,jewelry & watches > jewelry > men's jewelry > jewelry sets
1686
+ 1689,jewelry & watches > jewelry > men's jewelry > lapel pins & brooches
1687
+ 1690,jewelry & watches > jewelry > men's jewelry > necklaces
1688
+ 1691,jewelry & watches > jewelry > men's jewelry > rings
1689
+ 1692,jewelry & watches > jewelry > men's jewelry > tie clips
1690
+ 1693,jewelry & watches > watches > watch accessories > watch bands
1691
+ 1694,jewelry & watches > watches > watch accessories > watch boxes & cases
1692
+ 1695,jewelry & watches > watches > watch accessories > watch manuals & guides
1693
+ 1696,jewelry & watches > watches > watch accessories > watch parts
1694
+ 1697,jewelry & watches > watches > watch accessories > watch repair kits & tools
1695
+ 1698,jewelry & watches > watches > watch accessories > watch winders
1696
+ 1699,jewelry & watches > watches > watch parts & accessories
1697
+ 1700,patio & garden > gardening supplies
1698
+ 1701,patio & garden > gardening supplies > landscaping materials
1699
+ 1702,patio & garden > gardening supplies > landscaping materials > edging & borders
1700
+ 1703,patio & garden > gardening supplies > landscaping materials > landscape fabric
1701
+ 1704,patio & garden > gardening supplies > landscaping materials > landscape rocks & pebbles
1702
+ 1705,patio & garden > gardening supplies > landscaping materials > paving & decking
1703
+ 1706,patio & garden > gardening supplies > landscaping materials > sod
1704
+ 1707,patio & garden > gardening supplies > landscaping materials > synthetic grass
1705
+ 1708,patio & garden > gardening supplies > snow removal
1706
+ 1709,patio & garden > gardening supplies > snow removal > ice melt
1707
+ 1710,patio & garden > gardening supplies > snow removal > snow shovels & ice scrapers
1708
+ 1711,patio & garden > gardening supplies > weed & pest control
1709
+ 1712,patio & garden > gardening supplies > weed & pest control > insect & grub control
1710
+ 1713,patio & garden > gardening supplies > weed & pest control > insect & grub control > foggers
1711
+ 1714,patio & garden > gardening supplies > weed & pest control > insect & grub control > insect repellent sprays
1712
+ 1715,patio & garden > gardening supplies > weed & pest control > insect & grub control > insect traps & baits
1713
+ 1716,patio & garden > gardening supplies > weed & pest control > insect & grub control > insect zappers
1714
+ 1717,patio & garden > gardening supplies > weed & pest control > insect & grub control > insecticides
1715
+ 1718,patio & garden > gardening supplies > weed & pest control > insect & grub control > swatters
1716
+ 1719,patio & garden > gardening supplies > weed & pest control > protective netting/mesh
1717
+ 1720,patio & garden > gardening supplies > weed & pest control > rodent & animal traps
1718
+ 1721,patio & garden > gardening supplies > weed & pest control > rodenticides & baits
1719
+ 1722,patio & garden > gardening supplies > weed & pest control > ultrasonic pest repellers
1720
+ 1723,patio & garden > gardening supplies > weed & pest control > weed control
1721
+ 1724,patio & garden > gardening supplies > weed & pest control > weed control > herbicides & fungicides
1722
+ 1725,patio & garden > gardening supplies > weed & pest control > weed control > weed control fabric
1723
+ 1726,patio & garden > gardening supplies > weed & pest control > weed control > weed preventers
1724
+ 1727,patio & garden > gardening supplies > weed & pest control > weed control > weeders
1725
+ 1728,patio & garden > outdoor furniture > hammocks
1726
+ 1729,patio & garden > outdoor furniture > outdoor beds
1727
+ 1730,patio & garden > outdoor furniture > outdoor blankets
1728
+ 1731,"patio & garden > outdoor furniture > outdoor chairs, benches & swings"
1729
+ 1732,patio & garden > outdoor furniture > outdoor cushions
1730
+ 1733,patio & garden > outdoor furniture > outdoor furniture covers
1731
+ 1734,patio & garden > outdoor furniture > outdoor furniture parts & accessories
1732
+ 1735,patio & garden > outdoor furniture > outdoor furniture sets
1733
+ 1736,patio & garden > outdoor furniture > outdoor heaters
1734
+ 1737,patio & garden > outdoor furniture > outdoor ottomans
1735
+ 1738,patio & garden > outdoor furniture > outdoor sofas
1736
+ 1739,patio & garden > outdoor furniture > outdoor storage boxes
1737
+ 1740,patio & garden > outdoor furniture > outdoor tables
1738
+ 1741,patio & garden > outdoor lighting > garden & patio torches
1739
+ 1742,patio & garden > outdoor lighting > landscape & walkway lights
1740
+ 1743,patio & garden > outdoor lighting > outdoor decor candle lanterns
1741
+ 1744,patio & garden > outdoor lighting > outdoor security & floodlights
1742
+ 1745,patio & garden > outdoor lighting > outdoor string lights
1743
+ 1746,patio & garden > outdoor lighting > outdoor wall & porch lights
1744
+ 1747,patio & garden > outdoor power equipment > chainsaws
1745
+ 1748,"patio & garden > outdoor power equipment > chippers, shredders & mulchers"
1746
+ 1749,patio & garden > outdoor power equipment > edgers
1747
+ 1750,patio & garden > outdoor power equipment > grass shears
1748
+ 1751,patio & garden > outdoor power equipment > hedge & weed trimmers
1749
+ 1752,patio & garden > outdoor power equipment > hole diggers & augers
1750
+ 1753,patio & garden > outdoor power equipment > lawn mower parts & accessories
1751
+ 1754,patio & garden > outdoor power equipment > lawn mowers
1752
+ 1755,patio & garden > outdoor power equipment > leaf blowers & vacuums
1753
+ 1756,patio & garden > outdoor power equipment > log splitters
1754
+ 1757,patio & garden > outdoor power equipment > outdoor power equipment batteries
1755
+ 1758,patio & garden > outdoor power equipment > outdoor power equipment sets
1756
+ 1759,patio & garden > outdoor power equipment > pressure washers
1757
+ 1760,patio & garden > outdoor power equipment > snow blowers
1758
+ 1761,patio & garden > outdoor power equipment > sweepers
1759
+ 1762,patio & garden > outdoor power equipment > tillers
1760
+ 1763,"patio & garden > plant care, soil & accessories > bark mulch & wood chips"
1761
+ 1764,"patio & garden > plant care, soil & accessories > fertilizers"
1762
+ 1765,"patio & garden > plant care, soil & accessories > frost protection"
1763
+ 1766,"patio & garden > plant care, soil & accessories > garden sprayers"
1764
+ 1767,"patio & garden > plant care, soil & accessories > moisture & ph meters"
1765
+ 1768,"patio & garden > plant care, soil & accessories > plant hooks & hangers"
1766
+ 1769,"patio & garden > plant care, soil & accessories > plant labels"
1767
+ 1770,"patio & garden > plant care, soil & accessories > plant stands"
1768
+ 1771,"patio & garden > plant care, soil & accessories > plant ties & supports"
1769
+ 1772,"patio & garden > plant care, soil & accessories > planter liners"
1770
+ 1773,"patio & garden > plant care, soil & accessories > pots & planters"
1771
+ 1774,"patio & garden > plant care, soil & accessories > seed starting pots & trays"
1772
+ 1775,"patio & garden > plant care, soil & accessories > seeders & spreaders"
1773
+ 1776,"patio & garden > plant care, soil & accessories > soil & soil amendments"
1774
+ 1777,"patio & garden > plants, seeds & bulbs > moss"
1775
+ 1778,"patio & garden > plants, seeds & bulbs > mushrooms, spawns & kits"
1776
+ 1779,"patio & garden > plants, seeds & bulbs > plant growing kits"
1777
+ 1780,"patio & garden > plants, seeds & bulbs > plants & seedlings"
1778
+ 1781,"patio & garden > plants, seeds & bulbs > seeds & bulbs"
1779
+ 1782,patio & garden > ponds & water features > outdoor fountains
1780
+ 1783,patio & garden > ponds & water features > pond & fountain pumps
1781
+ 1784,patio & garden > ponds & water features > pond de-icers
1782
+ 1785,patio & garden > ponds & water features > pond decor
1783
+ 1786,patio & garden > ponds & water features > pond filter media
1784
+ 1787,patio & garden > ponds & water features > pond filtration equipment
1785
+ 1788,patio & garden > ponds & water features > pond lights
1786
+ 1789,patio & garden > ponds & water features > pond liners
1787
+ 1790,patio & garden > ponds & water features > pond vacuums
1788
+ 1791,patio & garden > ponds & water features > pond water testing & treatments
1789
+ 1792,patio & garden > ponds & water features > ponds
1790
+ 1793,patio & garden > ponds & water features > waterfall boxes & spillways
1791
+ 1794,patio & garden > pools & spas > pool chemicals & testing
1792
+ 1795,patio & garden > pools & spas > pool chemicals & testing > pool & spa thermometers
1793
+ 1796,patio & garden > pools & spas > pool chemicals & testing > pool chemicals & clarifiers
1794
+ 1797,patio & garden > pools & spas > pool chemicals & testing > pool water testing & kits
1795
+ 1798,patio & garden > pools & spas > pool cleaning tools
1796
+ 1799,patio & garden > pools & spas > pool cleaning tools > handheld pool brushes & nets
1797
+ 1800,patio & garden > pools & spas > pool cleaning tools > pool cleaners & vacuums
1798
+ 1801,patio & garden > pools & spas > pool cleaning tools > pool hoses
1799
+ 1802,patio & garden > pools & spas > pool equipment & parts
1800
+ 1803,patio & garden > pools & spas > pool equipment & parts > pool & spa lights
1801
+ 1804,patio & garden > pools & spas > pool equipment & parts > pool chlorine generators
1802
+ 1805,patio & garden > pools & spas > pool equipment & parts > pool covers & rollers
1803
+ 1806,patio & garden > pools & spas > pool equipment & parts > pool fences
1804
+ 1807,patio & garden > pools & spas > pool equipment & parts > pool filters
1805
+ 1808,patio & garden > pools & spas > pool equipment & parts > pool heaters & solar panels
1806
+ 1809,patio & garden > pools & spas > pool equipment & parts > pool ladders & steps
1807
+ 1810,patio & garden > pools & spas > pool equipment & parts > pool liners
1808
+ 1811,patio & garden > pools & spas > pool equipment & parts > pool pumps
1809
+ 1812,patio & garden > pools & spas > pool equipment & parts > pool skimmer systems & baskets
1810
+ 1813,patio & garden > pools & spas > pool equipment & parts > pool slides & diving boards
1811
+ 1814,patio & garden > pools & spas > pool floats & rafts
1812
+ 1815,patio & garden > pools & spas > pool toys
1813
+ 1816,patio & garden > pools & spas > sauna heaters
1814
+ 1817,patio & garden > pools & spas > saunas
1815
+ 1818,patio & garden > pools & spas > spa & hot tub covers
1816
+ 1819,patio & garden > pools & spas > spas & hot tubs
1817
+ 1820,patio & garden > pools & spas > swimming pools
1818
+ 1821,patio & garden > structures
1819
+ 1822,patio & garden > structures > arbors & arches
1820
+ 1823,patio & garden > structures > awnings & canopies
1821
+ 1824,patio & garden > structures > bridges
1822
+ 1825,patio & garden > structures > gazebos
1823
+ 1826,patio & garden > structures > greenhouses
1824
+ 1827,patio & garden > structures > marquees & tents
1825
+ 1828,patio & garden > structures > pergolas
1826
+ 1829,patio & garden > structures > shade sails
1827
+ 1830,patio & garden > structures > storage sheds
1828
+ 1831,patio & garden > structures > umbrellas
1829
+ 1832,"patio & garden > watering equipment > connectors, clamps & fittings"
1830
+ 1833,patio & garden > watering equipment > drip irrigation
1831
+ 1834,patio & garden > watering equipment > globes & spikes
1832
+ 1835,patio & garden > watering equipment > hose guides
1833
+ 1836,patio & garden > watering equipment > hose nozzles & wands
1834
+ 1837,patio & garden > watering equipment > hose reels & storage
1835
+ 1838,patio & garden > watering equipment > hoses
1836
+ 1839,patio & garden > watering equipment > lawn sprinklers
1837
+ 1840,patio & garden > watering equipment > spigots
1838
+ 1841,patio & garden > watering equipment > valves
1839
+ 1842,patio & garden > watering equipment > water pumps & pressure tanks
1840
+ 1843,patio & garden > watering equipment > water storage & rain barrels
1841
+ 1844,patio & garden > watering equipment > watering cans
1842
+ 1845,patio & garden > watering equipment > watering timers & controllers
1843
+ 1846,patio & garden > barbecues & outdoor cooking > bbq & grill replacement parts
1844
+ 1847,patio & garden > barbecues & outdoor cooking > bbq tools & accessories
1845
+ 1848,patio & garden > barbecues & outdoor cooking > barbecue & grill covers
1846
+ 1849,"patio & garden > barbecues & outdoor cooking > barbecues, grills & smokers"
1847
+ 1850,patio & garden > barbecues & outdoor cooking > fire pits & chimineas
1848
+ 1851,patio & garden > bird & wildlife accessories
1849
+ 1852,patio & garden > bird & wildlife accessories > bird feeders
1850
+ 1853,patio & garden > bird & wildlife accessories > birdbaths
1851
+ 1854,patio & garden > bird & wildlife accessories > birdhouses
1852
+ 1855,patio & garden > bird & wildlife accessories > butterfly feeders
1853
+ 1856,patio & garden > bird & wildlife accessories > squirrel feeders
1854
+ 1857,patio & garden > bird & wildlife accessories > wildlife houses
1855
+ 1858,patio & garden > fencing
1856
+ 1859,patio & garden > fencing > chain link fencing
1857
+ 1860,patio & garden > fencing > fence panels
1858
+ 1861,patio & garden > fencing > fence pickets
1859
+ 1862,patio & garden > fencing > fence posts
1860
+ 1863,patio & garden > fencing > gates
1861
+ 1864,patio & garden > fencing > hardware cloth & metal mesh
1862
+ 1865,"patio & garden > fencing > post bases, supports & spikes"
1863
+ 1866,patio & garden > fencing > post caps & drivers
1864
+ 1867,patio & garden > fencing > privacy screens & windscreens
1865
+ 1868,patio & garden > fencing > railings
1866
+ 1869,patio & garden > fencing > trellises
1867
+ 1870,patio & garden > garden decor > flags & flag poles
1868
+ 1871,patio & garden > garden decor > outdoor thermometers
1869
+ 1872,patio & garden > garden decor > plaques & signs
1870
+ 1873,patio & garden > garden decor > rain gauges
1871
+ 1874,patio & garden > garden decor > statues & lawn ornaments
1872
+ 1875,patio & garden > garden decor > stepping stones
1873
+ 1876,patio & garden > garden decor > sundials
1874
+ 1877,patio & garden > garden decor > weathervanes
1875
+ 1878,patio & garden > garden decor > wind chimes
1876
+ 1879,patio & garden > garden decor > windmills & spinners
1877
+ 1880,patio & garden > garden hand tools & equipment > axes & hatchets
1878
+ 1881,patio & garden > garden hand tools & equipment > bonsai tools
1879
+ 1882,patio & garden > garden hand tools & equipment > forks
1880
+ 1883,patio & garden > garden hand tools & equipment > fruit pickers
1881
+ 1884,patio & garden > garden hand tools & equipment > garden tool racks
1882
+ 1885,patio & garden > garden hand tools & equipment > garden tool sets
1883
+ 1886,patio & garden > garden hand tools & equipment > hedge & grass shears
1884
+ 1887,patio & garden > garden hand tools & equipment > hoes & cultivators
1885
+ 1888,patio & garden > garden hand tools & equipment > lawn aerators
1886
+ 1889,patio & garden > garden hand tools & equipment > lawn rollers
1887
+ 1890,patio & garden > garden hand tools & equipment > loppers
1888
+ 1891,patio & garden > garden hand tools & equipment > manual edgers
1889
+ 1892,patio & garden > garden hand tools & equipment > mattocks & picks
1890
+ 1893,patio & garden > garden hand tools & equipment > parts & accessories
1891
+ 1894,patio & garden > garden hand tools & equipment > post hole diggers & augers
1892
+ 1895,patio & garden > garden hand tools & equipment > pruning shears & snips
1893
+ 1896,patio & garden > garden hand tools & equipment > rakes
1894
+ 1897,patio & garden > garden hand tools & equipment > saws
1895
+ 1898,patio & garden > garden hand tools & equipment > scythes & sickles
1896
+ 1899,patio & garden > garden hand tools & equipment > shovels
1897
+ 1900,patio & garden > garden hand tools & equipment > trowels
1898
+ 1901,"patio & garden > garden hand tools & equipment > wheelbarrows, carts & wagons"
1899
+ 1902,patio & garden > gardening supplies > composting & yard waste
1900
+ 1903,patio & garden > gardening supplies > composting & yard waste > compost
1901
+ 1904,patio & garden > gardening supplies > composting & yard waste > compost accelerators
1902
+ 1905,patio & garden > gardening supplies > composting & yard waste > compost aerators
1903
+ 1906,patio & garden > gardening supplies > composting & yard waste > compost waste bags
1904
+ 1907,patio & garden > gardening supplies > composting & yard waste > compost worms
1905
+ 1908,patio & garden > gardening supplies > composting & yard waste > composters
1906
+ 1909,patio & garden > gardening supplies > garden clothing & gear
1907
+ 1910,"patio & garden > gardening supplies > garden clothing & gear > garden kneelers, pads & seats"
1908
+ 1911,patio & garden > gardening supplies > garden clothing & gear > gardening boots & shoes
1909
+ 1912,patio & garden > gardening supplies > garden clothing & gear > gardening gloves
1910
+ 1913,"patio & garden > gardening supplies > garden clothing & gear > tool carriers, aprons & belts"
1911
+ 1914,patio & garden > gardening supplies > hydroponics & seed starting
1912
+ 1915,patio & garden > gardening supplies > hydroponics & seed starting > environmental controls
1913
+ 1916,patio & garden > gardening supplies > hydroponics & seed starting > grow light ballasts
1914
+ 1917,patio & garden > gardening supplies > hydroponics & seed starting > grow light bulbs
1915
+ 1918,patio & garden > gardening supplies > hydroponics & seed starting > grow light kits
1916
+ 1919,patio & garden > gardening supplies > hydroponics & seed starting > grow light parts & accessories
1917
+ 1920,patio & garden > gardening supplies > hydroponics & seed starting > growing media
1918
+ 1921,patio & garden > gardening supplies > hydroponics & seed starting > hydroponic parts & accessories
1919
+ 1922,patio & garden > gardening supplies > hydroponics & seed starting > hydroponic systems
1920
+ 1923,"patio & garden > gardening supplies > hydroponics & seed starting > nutrients, ph & supplements"
1921
+ 1924,"patio & garden > gardening supplies > hydroponics & seed starting > tents, tarps & shelves"
1922
+ 1925,"patio & garden > gardening supplies > landscaping materials > anchor pins, staples & stakes"
1923
+ 1926,sporting goods > emergency preparedness
1924
+ 1927,sporting goods > emergency preparedness > earthquake alarms
1925
+ 1928,sporting goods > emergency preparedness > emergency blankets
1926
+ 1929,sporting goods > emergency preparedness > emergency food kits
1927
+ 1930,sporting goods > emergency preparedness > emergency tools & kits
1928
+ 1931,sporting goods > sports equipment > broomball
1929
+ 1932,sporting goods > sports equipment > broomball > broomball brooms
1930
+ 1933,sporting goods > sports equipment > broomball > broomballs
1931
+ 1934,sporting goods > sports equipment > broomball > clothing & shoes
1932
+ 1935,sporting goods > sports equipment > broomball > protective gear
1933
+ 1936,sporting goods > sports equipment > broomball > protective gear > chest protectors
1934
+ 1937,sporting goods > sports equipment > broomball > protective gear > gloves
1935
+ 1938,sporting goods > sports equipment > broomball > protective gear > goalie masks
1936
+ 1939,sporting goods > sports equipment > broomball > protective gear > helmets
1937
+ 1940,sporting goods > sports equipment > broomball > protective gear > knee & elbow guards
1938
+ 1941,sporting goods > sports equipment > broomball > protective gear > shin guards
1939
+ 1942,sporting goods > sports equipment > cheerleading
1940
+ 1943,sporting goods > sports equipment > cheerleading > clothing & accessories
1941
+ 1944,sporting goods > sports equipment > cheerleading > clothing & accessories > hair accessories
1942
+ 1945,sporting goods > sports equipment > cheerleading > clothing & accessories > outfits
1943
+ 1946,sporting goods > sports equipment > cheerleading > clothing & accessories > pom poms
1944
+ 1947,sporting goods > sports equipment > cheerleading > clothing & accessories > shoes
1945
+ 1948,sporting goods > sports equipment > cheerleading > training equipment
1946
+ 1949,sporting goods > sports equipment > cheerleading > training equipment > floor systems & tracks
1947
+ 1950,sporting goods > sports equipment > cheerleading > training equipment > landing mats
1948
+ 1951,sporting goods > sports equipment > cheerleading > training equipment > safety pits
1949
+ 1952,sporting goods > sports equipment > cheerleading > training equipment > spring boards & trampolines
1950
+ 1953,sporting goods > sports equipment > cheerleading > training equipment > training shapes
1951
+ 1954,sporting goods > sports equipment > coaching & referee gear
1952
+ 1955,sporting goods > sports equipment > coaching & referee gear > captains armbands
1953
+ 1956,sporting goods > sports equipment > coaching & referee gear > flip coins & discs
1954
+ 1957,sporting goods > sports equipment > coaching & referee gear > linesman flags & boundary markers
1955
+ 1958,sporting goods > sports equipment > coaching & referee gear > megaphones
1956
+ 1959,sporting goods > sports equipment > coaching & referee gear > penalty cards & flags
1957
+ 1960,sporting goods > sports equipment > coaching & referee gear > referee stands & chairs
1958
+ 1961,sporting goods > sports equipment > coaching & referee gear > referee wallets
1959
+ 1962,sporting goods > sports equipment > coaching & referee gear > score boards & cards
1960
+ 1963,sporting goods > sports equipment > coaching & referee gear > uniforms
1961
+ 1964,sporting goods > sports equipment > coaching & referee gear > whistles
1962
+ 1965,sporting goods > sports equipment > fencing
1963
+ 1966,sporting goods > sports equipment > fencing > clothing & shoes
1964
+ 1967,sporting goods > sports equipment > fencing > fencing weapons
1965
+ 1968,sporting goods > sports equipment > fencing > protective gear
1966
+ 1969,sporting goods > sports equipment > fencing > protective gear > chest protectors
1967
+ 1970,sporting goods > sports equipment > fencing > protective gear > gloves & cuffs
1968
+ 1971,sporting goods > sports equipment > fencing > protective gear > jackets & lames
1969
+ 1972,sporting goods > sports equipment > fencing > protective gear > masks
1970
+ 1973,sporting goods > sports equipment > fencing > protective gear > uniforms
1971
+ 1974,sporting goods > sports equipment > general purpose equipment
1972
+ 1975,sporting goods > sports equipment > general purpose equipment > athletic cups
1973
+ 1976,sporting goods > sports equipment > general purpose equipment > ball carrying carts
1974
+ 1977,sporting goods > sports equipment > general purpose equipment > ball pumps
1975
+ 1978,sporting goods > sports equipment > general purpose equipment > elevation training masks
1976
+ 1979,sporting goods > sports equipment > general purpose equipment > exercise mat storage racks
1977
+ 1980,sporting goods > sports equipment > general purpose equipment > fitness & activity monitors
1978
+ 1981,sporting goods > sports equipment > general purpose equipment > grip spray & chalk
1979
+ 1982,sporting goods > sports equipment > general purpose equipment > gym mats
1980
+ 1983,sporting goods > sports equipment > general purpose equipment > mouth guards
1981
+ 1984,sporting goods > sports equipment > general purpose equipment > reflective gear
1982
+ 1985,"sporting goods > sports equipment > general purpose equipment > speed & agility ladders, hurdles & cones"
1983
+ 1986,sporting goods > sports equipment > general purpose equipment > stadium seats & cushions
1984
+ 1987,sporting goods > sports equipment > general purpose equipment > stopwatches
1985
+ 1988,sporting goods > sports equipment > gymnastics
1986
+ 1989,sporting goods > sports equipment > gymnastics > bars & balance beams
1987
+ 1990,sporting goods > sports equipment > gymnastics > floor systems
1988
+ 1991,sporting goods > sports equipment > gymnastics > gymnastics bars
1989
+ 1992,sporting goods > sports equipment > gymnastics > gymnastics grips
1990
+ 1993,sporting goods > sports equipment > gymnastics > gymnastics rings
1991
+ 1994,sporting goods > sports equipment > gymnastics > springboards
1992
+ 1995,sporting goods > sports equipment > gymnastics > vaulting & pommel horses
1993
+ 1996,sporting goods > sports equipment > ice skating
1994
+ 1997,sporting goods > sports equipment > ice skating > blade guards
1995
+ 1998,sporting goods > sports equipment > ice skating > clothing
1996
+ 1999,sporting goods > sports equipment > ice skating > figure skating boots
1997
+ 2000,sporting goods > sports equipment > ice skating > ice skate blades
1998
+ 2001,sporting goods > sports equipment > ice skating > ice skate sharpeners
1999
+ 2002,sporting goods > sports equipment > ice skating > ice skates
2000
+ 2003,sporting goods > sports equipment > ice skating > lace tighteners
2001
+ 2004,sporting goods > sports equipment > ice skating > protective gear
2002
+ 2005,sporting goods > sports equipment > ice skating > protective gear > chest protectors
2003
+ 2006,sporting goods > sports equipment > ice skating > protective gear > hand wraps
2004
+ 2007,sporting goods > sports equipment > ice skating > protective gear > headgear
2005
+ 2008,sporting goods > sports equipment > ice skating > protective gear > knee & elbow guards
2006
+ 2009,sporting goods > sports equipment > rugby > jerseys & cleats
2007
+ 2010,sporting goods > sports equipment > rugby > protective gear
2008
+ 2011,sporting goods > sports equipment > rugby > protective gear > rugby gloves
2009
+ 2012,sporting goods > sports equipment > rugby > protective gear > rugby headgear
2010
+ 2013,sporting goods > sports equipment > rugby > protective gear > shoulder pads
2011
+ 2014,sporting goods > sports equipment > rugby > protective gear > tackle suits
2012
+ 2015,sporting goods > sports equipment > rugby > rugby balls
2013
+ 2016,sporting goods > sports equipment > rugby > rugby posts
2014
+ 2017,sporting goods > sports equipment > rugby > training aids
2015
+ 2018,sporting goods > sports equipment > soccer > jerseys & cleats
2016
+ 2019,sporting goods > sports equipment > soccer > protective gear
2017
+ 2020,sporting goods > sports equipment > soccer > protective gear > goalkeeper bottoms
2018
+ 2021,sporting goods > sports equipment > soccer > protective gear > goalkeeper tops
2019
+ 2022,sporting goods > sports equipment > soccer > protective gear > headguards
2020
+ 2023,sporting goods > sports equipment > soccer > protective gear > shin guards
2021
+ 2024,sporting goods > sports equipment > soccer > protective gear > soccer gloves
2022
+ 2025,sporting goods > sports equipment > soccer > soccer balls
2023
+ 2026,sporting goods > sports equipment > soccer > soccer goals & nets
2024
+ 2027,sporting goods > sports equipment > soccer > training equipment
2025
+ 2028,sporting goods > sports equipment > tennis & racquet sports > badminton
2026
+ 2029,sporting goods > sports equipment > tennis & racquet sports > badminton > badminton nets
2027
+ 2030,sporting goods > sports equipment > tennis & racquet sports > badminton > badminton racquets
2028
+ 2031,sporting goods > sports equipment > tennis & racquet sports > badminton > shuttlecocks
2029
+ 2032,sporting goods > sports equipment > tennis & racquet sports > ball & racquet accessories
2030
+ 2033,sporting goods > sports equipment > tennis & racquet sports > ball & racquet accessories > racquet accessories
2031
+ 2034,sporting goods > sports equipment > tennis & racquet sports > ball & racquet accessories > racquet stringing machines
2032
+ 2035,sporting goods > sports equipment > tennis & racquet sports > ball & racquet accessories > tennis ball hoppers & carts
2033
+ 2036,sporting goods > sports equipment > tennis & racquet sports > ball & racquet accessories > tennis ball machines
2034
+ 2037,sporting goods > sports equipment > tennis & racquet sports > ball & racquet accessories > tennis ball savers
2035
+ 2038,sporting goods > sports equipment > tennis & racquet sports > clothing & shoes
2036
+ 2039,sporting goods > sports equipment > tennis & racquet sports > pickleball & paddle tennis equipment
2037
+ 2040,sporting goods > sports equipment > tennis & racquet sports > racquetball & squash
2038
+ 2041,sporting goods > sports equipment > tennis & racquet sports > racquetball & squash > racquetball & squash balls
2039
+ 2042,sporting goods > sports equipment > tennis & racquet sports > racquetball & squash > racquetball & squash gloves
2040
+ 2043,sporting goods > sports equipment > tennis & racquet sports > racquetball & squash > racquetball & squash goggles
2041
+ 2044,sporting goods > sports equipment > tennis & racquet sports > racquetball & squash > racquetball & squash racquets
2042
+ 2045,sporting goods > sports equipment > tennis & racquet sports > tennis
2043
+ 2046,sporting goods > sports equipment > tennis & racquet sports > tennis > tennis bags
2044
+ 2047,sporting goods > sports equipment > tennis & racquet sports > tennis > tennis balls
2045
+ 2048,sporting goods > sports equipment > tennis & racquet sports > tennis > tennis nets
2046
+ 2049,sporting goods > sports equipment > tennis & racquet sports > tennis > tennis racquets
2047
+ 2050,sporting goods > sports equipment > track & field > discus
2048
+ 2051,sporting goods > sports equipment > track & field > high jump crossbars
2049
+ 2052,sporting goods > sports equipment > track & field > javelins
2050
+ 2053,sporting goods > sports equipment > track & field > shot puts
2051
+ 2054,sporting goods > sports equipment > track & field > throwing hammers
2052
+ 2055,sporting goods > sports equipment > track & field > track & field accessories
2053
+ 2056,sporting goods > sports equipment > track & field > track & field pits
2054
+ 2057,sporting goods > sports equipment > track & field > track hurdles
2055
+ 2058,sporting goods > sports equipment > track & field > track starting blocks
2056
+ 2059,sporting goods > sports equipment > track & field > vaulting poles
2057
+ 2060,sporting goods > sports equipment > volleyball > protective gear
2058
+ 2061,sporting goods > sports equipment > volleyball > protective gear > braces & supports
2059
+ 2062,sporting goods > sports equipment > volleyball > protective gear > knee pads
2060
+ 2063,sporting goods > sports equipment > volleyball > volleyball accessories
2061
+ 2064,sporting goods > sports equipment > volleyball > volleyball accessories > carts & hammocks
2062
+ 2065,sporting goods > sports equipment > volleyball > volleyball accessories > training equipment
2063
+ 2066,sporting goods > sports equipment > volleyball > volleyball accessories > volleyball bags
2064
+ 2067,sporting goods > sports equipment > volleyball > volleyball nets & poles
2065
+ 2068,sporting goods > sports equipment > volleyball > volleyballs
2066
+ 2069,sporting goods > sports equipment > wrestling
2067
+ 2070,sporting goods > sports equipment > wrestling > clothing & shoes
2068
+ 2071,sporting goods > sports equipment > wrestling > protective gear
2069
+ 2072,sporting goods > sports equipment > wrestling > protective gear > headgear
2070
+ 2073,sporting goods > sports equipment > wrestling > protective gear > knee pads
2071
+ 2074,sporting goods > sports equipment > wrestling > wrestling mats
2072
+ 2075,sporting goods > outdoor recreation > hunting & shooting
2073
+ 2076,sporting goods > outdoor recreation > hunting & shooting > hunting accessories
2074
+ 2077,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > wildlife attractants
2075
+ 2078,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > wildlife attractants > game calls
2076
+ 2079,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > wildlife attractants > game feeders
2077
+ 2080,"sporting goods > outdoor recreation > hunting & shooting > hunting accessories > wildlife attractants > hunting bait, feed & minerals"
2078
+ 2081,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > wildlife attractants > hunting decoys
2079
+ 2082,sporting goods > outdoor recreation > hunting & shooting > hunting clothing
2080
+ 2083,sporting goods > outdoor recreation > hunting & shooting > hunting clothing > ghillie suits
2081
+ 2084,sporting goods > outdoor recreation > hunting & shooting > hunting clothing > hunting gloves
2082
+ 2085,sporting goods > outdoor recreation > hunting & shooting > hunting clothing > hunting jackets
2083
+ 2086,sporting goods > outdoor recreation > hunting & shooting > hunting clothing > hunting vests
2084
+ 2087,sporting goods > outdoor recreation > hunting & shooting > hunting clothing > hunting waders
2085
+ 2088,sporting goods > outdoor recreation > hunting & shooting > shooting accessories
2086
+ 2089,sporting goods > outdoor recreation > hunting & shooting > shooting accessories > clay pigeon throwers
2087
+ 2090,sporting goods > outdoor recreation > hunting & shooting > shooting accessories > clay pigeons
2088
+ 2091,sporting goods > outdoor recreation > hunting & shooting > shooting accessories > gun coatings & wraps
2089
+ 2092,sporting goods > outdoor recreation > hunting & shooting > shooting accessories > shooting glasses
2090
+ 2093,sporting goods > outdoor recreation > hunting & shooting > shooting accessories > shooting rests
2091
+ 2094,sporting goods > outdoor recreation > hunting & shooting > shooting accessories > shooting sticks & bipods
2092
+ 2095,sporting goods > outdoor recreation > hunting & shooting > shooting accessories > shooting targets
2093
+ 2096,sporting goods > outdoor recreation > hunting & shooting > tactical gear
2094
+ 2097,sporting goods > outdoor recreation > hunting & shooting > tactical gear > body armor
2095
+ 2098,sporting goods > outdoor recreation > hunting & shooting > tactical gear > tactical bags
2096
+ 2099,sporting goods > outdoor recreation > hunting & shooting > tactical gear > tactical gloves
2097
+ 2100,sporting goods > outdoor recreation > hunting & shooting > tactical gear > tactical leg rigs
2098
+ 2101,sporting goods > outdoor recreation > hunting & shooting > tactical gear > tactical pants
2099
+ 2102,sporting goods > outdoor recreation > hunting & shooting > tactical gear > tactical shoes
2100
+ 2103,sporting goods > outdoor recreation > hunting & shooting > tactical gear > tactical slings
2101
+ 2104,sporting goods > outdoor recreation > hunting & shooting > tactical gear > tactical vests & chest rigs
2102
+ 2105,sporting goods > outdoor recreation > hunting & shooting > taxidermy animals
2103
+ 2106,sporting goods > outdoor recreation > hunting & shooting > taxidermy supplies
2104
+ 2107,sporting goods > outdoor recreation > kite buggying
2105
+ 2108,sporting goods > outdoor recreation > paintball & airsoft
2106
+ 2109,sporting goods > outdoor recreation > paintball & airsoft > airsoft
2107
+ 2110,sporting goods > outdoor recreation > paintball & airsoft > airsoft > airsoft gun parts & accessories
2108
+ 2111,sporting goods > outdoor recreation > paintball & airsoft > airsoft > airsoft gun parts & accessories > airsoft foregrips
2109
+ 2112,sporting goods > outdoor recreation > paintball & airsoft > airsoft > airsoft gun parts & accessories > airsoft gun barrels
2110
+ 2113,sporting goods > outdoor recreation > paintball & airsoft > airsoft > airsoft gun parts & accessories > airsoft gun batteries
2111
+ 2114,sporting goods > outdoor recreation > paintball & airsoft > airsoft > airsoft gun parts & accessories > airsoft magazines
2112
+ 2115,sporting goods > outdoor recreation > paintball & airsoft > airsoft > airsoft guns
2113
+ 2116,sporting goods > outdoor recreation > paintball & airsoft > airsoft > airsoft pellets
2114
+ 2117,sporting goods > outdoor recreation > paintball & airsoft > paintball
2115
+ 2118,sporting goods > outdoor recreation > paintball & airsoft > paintball & airsoft equipment bags
2116
+ 2119,sporting goods > outdoor recreation > paintball & airsoft > paintball & airsoft holsters
2117
+ 2120,sporting goods > outdoor recreation > paintball & airsoft > paintball & airsoft optics
2118
+ 2121,sporting goods > outdoor recreation > paintball & airsoft > paintball & airsoft sets
2119
+ 2122,sporting goods > outdoor recreation > paintball & airsoft > paintball & airsoft targets
2120
+ 2123,sporting goods > outdoor recreation > paintball & airsoft > paintball > clothing & shoes
2121
+ 2124,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball filling stations
2122
+ 2125,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball grenade launchers
2123
+ 2126,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball gun parts & accessories
2124
+ 2127,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball gun parts & accessories > paintball drop forwards
2125
+ 2128,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball gun parts & accessories > paintball feednecks
2126
+ 2129,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball gun parts & accessories > paintball grips
2127
+ 2130,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball gun parts & accessories > paintball gun barrels
2128
+ 2131,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball gun parts & accessories > paintball hoppers & loaders
2129
+ 2132,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball gun parts & accessories > paintball regulators
2130
+ 2133,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball gun parts & accessories > paintball tanks
2131
+ 2134,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball gun parts & accessories > paintball triggers & frames
2132
+ 2135,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball guns
2133
+ 2136,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintball harnesses & packs
2134
+ 2137,sporting goods > outdoor recreation > paintball & airsoft > paintball > paintballs
2135
+ 2138,sporting goods > outdoor recreation > paintball & airsoft > protective gear
2136
+ 2139,sporting goods > outdoor recreation > paintball & airsoft > protective gear > paintball & airsoft chest protectors
2137
+ 2140,sporting goods > outdoor recreation > paintball & airsoft > protective gear > paintball & airsoft gloves
2138
+ 2141,sporting goods > outdoor recreation > paintball & airsoft > protective gear > paintball & airsoft masks
2139
+ 2142,sporting goods > outdoor recreation > paintball & airsoft > protective gear > paintball & airsoft pads
2140
+ 2143,sporting goods > outdoor recreation > skydiving & hangliding
2141
+ 2144,sporting goods > outdoor recreation > skydiving & hangliding > airframes
2142
+ 2145,sporting goods > outdoor recreation > skydiving & hangliding > clothing & protective gear
2143
+ 2146,sporting goods > outdoor recreation > skydiving & hangliding > clothing & protective gear > jumpsuits
2144
+ 2147,sporting goods > outdoor recreation > skydiving & hangliding > clothing & protective gear > skydiving goggles
2145
+ 2148,sporting goods > outdoor recreation > skydiving & hangliding > clothing & protective gear > skydiving harness systems
2146
+ 2149,sporting goods > outdoor recreation > skydiving & hangliding > clothing & protective gear > skydiving helmets
2147
+ 2150,sporting goods > outdoor recreation > skydiving & hangliding > clothing & protective gear > wing suits & air suits
2148
+ 2151,sporting goods > outdoor recreation > skydiving & hangliding > complete gear packages
2149
+ 2152,sporting goods > outdoor recreation > skydiving & hangliding > hang gliders
2150
+ 2153,sporting goods > outdoor recreation > skydiving & hangliding > parachute canopies
2151
+ 2154,sporting goods > outdoor recreation > skydiving & hangliding > parachutes
2152
+ 2155,sporting goods > outdoor recreation > skydiving & hangliding > paragliders
2153
+ 2156,sporting goods > outdoor recreation > skydiving & hangliding > variometers & altimeters
2154
+ 2157,sporting goods > sports equipment > baseball & softball > baseball & softball bats
2155
+ 2158,sporting goods > sports equipment > baseball & softball > baseballs & softballs
2156
+ 2159,sporting goods > sports equipment > baseball & softball > field equipment
2157
+ 2160,sporting goods > sports equipment > baseball & softball > field equipment > backstop netting
2158
+ 2161,sporting goods > sports equipment > baseball & softball > field equipment > bases & plates
2159
+ 2162,sporting goods > sports equipment > baseball & softball > field equipment > pitching & batting mats
2160
+ 2163,sporting goods > sports equipment > baseball & softball > gloves & mitts
2161
+ 2164,sporting goods > sports equipment > baseball & softball > jerseys & cleats
2162
+ 2165,sporting goods > sports equipment > baseball & softball > protective gear
2163
+ 2166,sporting goods > sports equipment > baseball & softball > protective gear > batting helmets
2164
+ 2167,sporting goods > sports equipment > baseball & softball > protective gear > chest protectors
2165
+ 2168,sporting goods > sports equipment > baseball & softball > protective gear > leg guards
2166
+ 2169,sporting goods > sports equipment > baseball & softball > protective gear > umpire's equipment
2167
+ 2170,sporting goods > sports equipment > baseball & softball > training equipment
2168
+ 2171,sporting goods > sports equipment > baseball & softball > training equipment > batting tees
2169
+ 2172,sporting goods > sports equipment > baseball & softball > training equipment > pitch counters
2170
+ 2173,sporting goods > sports equipment > baseball & softball > training equipment > pitching machines
2171
+ 2174,sporting goods > sports equipment > baseball & softball > training equipment > radar guns & speed sensors
2172
+ 2175,sporting goods > sports equipment > baseball & softball > training equipment > umpire indicators
2173
+ 2176,sporting goods > sports equipment > baseball & softball > training equipment > weighted balls & bats
2174
+ 2177,sporting goods > sports equipment > basketball > basketballs
2175
+ 2178,sporting goods > sports equipment > basketball > hoops & hoop accessories
2176
+ 2179,sporting goods > sports equipment > basketball > hoops & hoop accessories > backboards
2177
+ 2180,sporting goods > sports equipment > basketball > hoops & hoop accessories > hoop padding
2178
+ 2181,sporting goods > sports equipment > basketball > hoops & hoop accessories > hoop posts
2179
+ 2182,sporting goods > sports equipment > basketball > hoops & hoop accessories > hoops
2180
+ 2183,sporting goods > sports equipment > basketball > hoops & hoop accessories > rims & nets
2181
+ 2184,sporting goods > sports equipment > basketball > jerseys
2182
+ 2185,sporting goods > sports equipment > basketball > training aids
2183
+ 2186,sporting goods > sports equipment > boxing & martial arts > boxing rings
2184
+ 2187,sporting goods > sports equipment > boxing & martial arts > clothing & accessories
2185
+ 2188,sporting goods > sports equipment > boxing & martial arts > clothing & accessories > boxing & martial arts gloves
2186
+ 2189,sporting goods > sports equipment > boxing & martial arts > clothing & accessories > boxing & martial arts shorts
2187
+ 2190,sporting goods > sports equipment > boxing & martial arts > clothing & accessories > martial arts belts
2188
+ 2191,sporting goods > sports equipment > boxing & martial arts > clothing & accessories > martial arts uniforms & outfits
2189
+ 2192,sporting goods > sports equipment > boxing & martial arts > martial arts weapons
2190
+ 2193,sporting goods > sports equipment > boxing & martial arts > protective gear
2191
+ 2194,sporting goods > sports equipment > boxing & martial arts > protective gear > arm guards
2192
+ 2195,sporting goods > sports equipment > boxing & martial arts > protective gear > chest guards
2193
+ 2196,sporting goods > sports equipment > boxing & martial arts > protective gear > hand wraps
2194
+ 2197,sporting goods > sports equipment > boxing & martial arts > protective gear > headgear
2195
+ 2198,sporting goods > sports equipment > boxing & martial arts > protective gear > knee & elbow guards
2196
+ 2199,sporting goods > sports equipment > boxing & martial arts > protective gear > shin guards
2197
+ 2200,sporting goods > sports equipment > boxing & martial arts > training equipment
2198
+ 2201,sporting goods > sports equipment > boxing & martial arts > training equipment > blockers & targets
2199
+ 2202,sporting goods > sports equipment > boxing & martial arts > training equipment > floor mats & pads
2200
+ 2203,sporting goods > sports equipment > boxing & martial arts > training equipment > grappling dummies
2201
+ 2204,sporting goods > sports equipment > boxing & martial arts > training equipment > punching bags
2202
+ 2205,sporting goods > sports equipment > boxing & martial arts > training equipment > strike pads & mitts
2203
+ 2206,sporting goods > sports equipment > cricket > clothing & shoes
2204
+ 2207,sporting goods > sports equipment > cricket > cricket balls
2205
+ 2208,sporting goods > sports equipment > cricket > cricket bats
2206
+ 2209,sporting goods > sports equipment > cricket > cricket sets
2207
+ 2210,sporting goods > sports equipment > cricket > cricket stumps
2208
+ 2211,sporting goods > sports equipment > cricket > protective gear
2209
+ 2212,sporting goods > sports equipment > cricket > protective gear > chest & leg guards
2210
+ 2213,sporting goods > sports equipment > cricket > protective gear > gloves
2211
+ 2214,sporting goods > sports equipment > cricket > protective gear > helmets
2212
+ 2215,sporting goods > sports equipment > dance & gymnastics > baby & toddler dancewear
2213
+ 2216,sporting goods > sports equipment > dance & gymnastics > children's dancewear
2214
+ 2217,sporting goods > sports equipment > dance & gymnastics > children's dancewear > dresses & tutus
2215
+ 2218,sporting goods > sports equipment > dance & gymnastics > children's dancewear > leg warmers
2216
+ 2219,sporting goods > sports equipment > dance & gymnastics > children's dancewear > leggings & tights
2217
+ 2220,sporting goods > sports equipment > dance & gymnastics > children's dancewear > leotards & unitards
2218
+ 2221,sporting goods > sports equipment > dance & gymnastics > children's dancewear > pants & shorts
2219
+ 2222,sporting goods > sports equipment > dance & gymnastics > children's dancewear > tops & shirts
2220
+ 2223,sporting goods > sports equipment > dance & gymnastics > dance accessories
2221
+ 2224,sporting goods > sports equipment > dance & gymnastics > dance equipment
2222
+ 2225,sporting goods > sports equipment > dance & gymnastics > dance equipment > ballet barres
2223
+ 2226,sporting goods > sports equipment > dance & gymnastics > dance equipment > dance floors
2224
+ 2227,sporting goods > sports equipment > dance & gymnastics > dance equipment > glassless mirrors
2225
+ 2228,sporting goods > sports equipment > dance & gymnastics > dance shoes
2226
+ 2229,sporting goods > sports equipment > dance & gymnastics > dancewear
2227
+ 2230,sporting goods > sports equipment > dance & gymnastics > leotards & unitards
2228
+ 2231,sporting goods > sports equipment > dance & gymnastics > men's dancewear
2229
+ 2232,sporting goods > sports equipment > dance & gymnastics > men's dancewear > leg warmers
2230
+ 2233,sporting goods > sports equipment > dance & gymnastics > men's dancewear > leggings & tights
2231
+ 2234,sporting goods > sports equipment > dance & gymnastics > men's dancewear > pants & shorts
2232
+ 2235,sporting goods > sports equipment > dance & gymnastics > men's dancewear > tops & shirts
2233
+ 2236,sporting goods > sports equipment > dance & gymnastics > women's dancewear
2234
+ 2237,sporting goods > sports equipment > dance & gymnastics > women's dancewear > leg warmers
2235
+ 2238,sporting goods > sports equipment > dance & gymnastics > women's dancewear > leggings & tights
2236
+ 2239,sporting goods > sports equipment > dance & gymnastics > women's dancewear > leotards & unitards
2237
+ 2240,sporting goods > sports equipment > dance & gymnastics > women's dancewear > pants & shorts
2238
+ 2241,sporting goods > sports equipment > dance & gymnastics > women's dancewear > skirts
2239
+ 2242,sporting goods > sports equipment > dance & gymnastics > women's dancewear > tops & shirts
2240
+ 2243,sporting goods > sports equipment > field hockey & lacrosse > field hockey
2241
+ 2244,sporting goods > sports equipment > field hockey & lacrosse > field hockey > field hockey balls
2242
+ 2245,sporting goods > sports equipment > field hockey & lacrosse > field hockey > field hockey goals
2243
+ 2246,sporting goods > sports equipment > field hockey & lacrosse > field hockey > field hockey sticks
2244
+ 2247,sporting goods > sports equipment > field hockey & lacrosse > lacrosse
2245
+ 2248,sporting goods > sports equipment > field hockey & lacrosse > lacrosse > lacrosse balls
2246
+ 2249,sporting goods > sports equipment > field hockey & lacrosse > lacrosse > lacrosse equipment sets
2247
+ 2250,sporting goods > sports equipment > field hockey & lacrosse > lacrosse > lacrosse goals
2248
+ 2251,sporting goods > sports equipment > field hockey & lacrosse > lacrosse > lacrosse sticks
2249
+ 2252,sporting goods > sports equipment > field hockey & lacrosse > protective gear
2250
+ 2253,sporting goods > sports equipment > field hockey & lacrosse > protective gear > gloves
2251
+ 2254,sporting goods > sports equipment > field hockey & lacrosse > protective gear > goggles & masks
2252
+ 2255,sporting goods > sports equipment > field hockey & lacrosse > protective gear > helmets
2253
+ 2256,sporting goods > sports equipment > field hockey & lacrosse > protective gear > pads & body protectors
2254
+ 2257,sporting goods > sports equipment > field hockey & lacrosse > training aids
2255
+ 2258,sporting goods > sports equipment > football > clothing & shoes
2256
+ 2259,sporting goods > sports equipment > football > football dummies & sleds
2257
+ 2260,sporting goods > sports equipment > football > football gloves
2258
+ 2261,sporting goods > sports equipment > football > football goal posts
2259
+ 2262,sporting goods > sports equipment > football > football kicking tees
2260
+ 2263,sporting goods > sports equipment > football > footballs
2261
+ 2264,sporting goods > sports equipment > football > protective gear
2262
+ 2265,sporting goods > sports equipment > football > protective gear > football pants
2263
+ 2266,sporting goods > sports equipment > football > protective gear > girdles
2264
+ 2267,sporting goods > sports equipment > football > protective gear > helmets
2265
+ 2268,sporting goods > sports equipment > football > protective gear > neck rolls
2266
+ 2269,sporting goods > sports equipment > football > protective gear > rib protection shirts
2267
+ 2270,sporting goods > sports equipment > football > protective gear > shoulder pads
2268
+ 2271,sporting goods > sports equipment > golf > golf accessories
2269
+ 2272,sporting goods > sports equipment > golf > golf accessories > golf accessory sets
2270
+ 2273,sporting goods > sports equipment > golf > golf accessories > golf bag covers
2271
+ 2274,sporting goods > sports equipment > golf > golf accessories > golf bags
2272
+ 2275,sporting goods > sports equipment > golf > golf accessories > golf divot tools
2273
+ 2276,sporting goods > sports equipment > golf > golf accessories > golf flags
2274
+ 2277,sporting goods > sports equipment > golf > golf accessories > golf gloves
2275
+ 2278,sporting goods > sports equipment > golf > golf accessories > golf groove sharpeners
2276
+ 2279,sporting goods > sports equipment > golf > golf accessories > golf push carts
2277
+ 2280,sporting goods > sports equipment > golf > golf accessories > golf rangefinders
2278
+ 2281,sporting goods > sports equipment > golf > golf accessories > golf stroke counters
2279
+ 2282,sporting goods > sports equipment > golf > golf accessories > golf tees
2280
+ 2283,sporting goods > sports equipment > golf > golf accessories > golf towels
2281
+ 2284,sporting goods > sports equipment > golf > golf accessories > golf umbrellas
2282
+ 2285,sporting goods > sports equipment > golf > golf ball accessories
2283
+ 2286,sporting goods > sports equipment > golf > golf ball accessories > golf ball markers
2284
+ 2287,sporting goods > sports equipment > golf > golf ball accessories > golf ball pickups & retrievers
2285
+ 2288,sporting goods > sports equipment > golf > golf ball accessories > golf ball tags
2286
+ 2289,sporting goods > sports equipment > golf > golf balls
2287
+ 2290,sporting goods > sports equipment > golf > golf club parts & accessories
2288
+ 2291,sporting goods > sports equipment > golf > golf club parts & accessories > golf club grips
2289
+ 2292,sporting goods > sports equipment > golf > golf club parts & accessories > golf club headcovers
2290
+ 2293,sporting goods > sports equipment > golf > golf club parts & accessories > golf club heads
2291
+ 2294,sporting goods > sports equipment > golf > golf club parts & accessories > golf club shafts
2292
+ 2295,sporting goods > sports equipment > golf > golf clubs
2293
+ 2296,sporting goods > sports equipment > golf > golf training aids
2294
+ 2297,"sporting goods > sports equipment > golf > golf training aids > golf nets, cages & mats"
2295
+ 2298,sporting goods > sports equipment > golf > golf training aids > putting greens
2296
+ 2299,sporting goods > sports equipment > golf > golf training aids > swing trainers
2297
+ 2300,sporting goods > sports equipment > ice & roller hockey > clothing & shoes
2298
+ 2301,sporting goods > sports equipment > ice & roller hockey > hockey balls & pucks
2299
+ 2302,sporting goods > sports equipment > ice & roller hockey > hockey goals
2300
+ 2303,sporting goods > sports equipment > ice & roller hockey > hockey skates
2301
+ 2304,sporting goods > sports equipment > ice & roller hockey > hockey sledges
2302
+ 2305,sporting goods > sports equipment > ice & roller hockey > hockey sticks
2303
+ 2306,sporting goods > sports equipment > ice & roller hockey > protective gear
2304
+ 2307,sporting goods > sports equipment > ice & roller hockey > protective gear > chest protectors
2305
+ 2308,sporting goods > sports equipment > ice & roller hockey > protective gear > elbow pads
2306
+ 2309,sporting goods > sports equipment > ice & roller hockey > protective gear > gloves
2307
+ 2310,sporting goods > sports equipment > ice & roller hockey > protective gear > goalie equipment
2308
+ 2311,sporting goods > sports equipment > ice & roller hockey > protective gear > helmets
2309
+ 2312,sporting goods > sports equipment > ice & roller hockey > protective gear > pants
2310
+ 2313,sporting goods > sports equipment > ice & roller hockey > protective gear > shin guards
2311
+ 2314,sporting goods > sports equipment > ice & roller hockey > protective gear > suspenders & belts
2312
+ 2315,sporting goods > outdoor recreation > archery
2313
+ 2316,sporting goods > outdoor recreation > archery > archery accessories
2314
+ 2317,sporting goods > outdoor recreation > archery > archery accessories > archery bags & cases
2315
+ 2318,sporting goods > outdoor recreation > archery > archery accessories > archery releases
2316
+ 2319,sporting goods > outdoor recreation > archery > archery accessories > archery sights
2317
+ 2320,sporting goods > outdoor recreation > archery > archery accessories > archery stabilizers
2318
+ 2321,sporting goods > outdoor recreation > archery > archery accessories > archery targets
2319
+ 2322,sporting goods > outdoor recreation > archery > archery accessories > arrow rests
2320
+ 2323,sporting goods > outdoor recreation > archery > archery accessories > bow slings
2321
+ 2324,sporting goods > outdoor recreation > archery > archery accessories > bow strings
2322
+ 2325,sporting goods > outdoor recreation > archery > archery accessories > quivers
2323
+ 2326,sporting goods > outdoor recreation > archery > archery arrows & bolts
2324
+ 2327,sporting goods > outdoor recreation > archery > archery sets
2325
+ 2328,sporting goods > outdoor recreation > archery > arrow parts
2326
+ 2329,sporting goods > outdoor recreation > archery > arrow parts > arrow fletchings
2327
+ 2330,sporting goods > outdoor recreation > archery > arrow parts > arrow nocks
2328
+ 2331,sporting goods > outdoor recreation > archery > arrow parts > arrow points & arrowheads
2329
+ 2332,sporting goods > outdoor recreation > archery > arrow parts > arrow shafts
2330
+ 2333,sporting goods > outdoor recreation > archery > bows
2331
+ 2334,sporting goods > outdoor recreation > archery > bows > compound bows
2332
+ 2335,sporting goods > outdoor recreation > archery > bows > crossbows
2333
+ 2336,sporting goods > outdoor recreation > archery > bows > recurve & longbows
2334
+ 2337,sporting goods > outdoor recreation > archery > protective gear
2335
+ 2338,sporting goods > outdoor recreation > archery > protective gear > archery gloves
2336
+ 2339,sporting goods > outdoor recreation > archery > protective gear > arm guards & chest guards
2337
+ 2340,sporting goods > outdoor recreation > archery > protective gear > finger guards
2338
+ 2341,sporting goods > outdoor recreation > equestrian
2339
+ 2342,sporting goods > outdoor recreation > equestrian > clothing & shoes
2340
+ 2343,sporting goods > outdoor recreation > equestrian > clothing & shoes > chaps & pants
2341
+ 2344,sporting goods > outdoor recreation > equestrian > clothing & shoes > hats
2342
+ 2345,sporting goods > outdoor recreation > equestrian > clothing & shoes > jackets
2343
+ 2346,sporting goods > outdoor recreation > equestrian > clothing & shoes > jodhpurs & breeches
2344
+ 2347,sporting goods > outdoor recreation > equestrian > clothing & shoes > riding boots
2345
+ 2348,sporting goods > outdoor recreation > equestrian > clothing & shoes > riding gloves
2346
+ 2349,sporting goods > outdoor recreation > equestrian > clothing & shoes > shirts
2347
+ 2350,sporting goods > outdoor recreation > equestrian > clothing & shoes > vests
2348
+ 2351,sporting goods > outdoor recreation > equestrian > horse care
2349
+ 2352,sporting goods > outdoor recreation > equestrian > horse care > fly & insect repellents
2350
+ 2353,sporting goods > outdoor recreation > equestrian > horse care > grooming kits
2351
+ 2354,sporting goods > outdoor recreation > equestrian > horse care > hoof oil & moisturizer
2352
+ 2355,sporting goods > outdoor recreation > equestrian > horse care > hoof rasps & farrier tools
2353
+ 2356,sporting goods > outdoor recreation > equestrian > horse care > horse clippers
2354
+ 2357,sporting goods > outdoor recreation > equestrian > horse care > horse combs & brushes
2355
+ 2358,sporting goods > outdoor recreation > equestrian > horse care > horse shampoo & conditioner
2356
+ 2359,sporting goods > outdoor recreation > equestrian > horse care > horse wormers
2357
+ 2360,sporting goods > outdoor recreation > equestrian > horse care > sweat scrapers
2358
+ 2361,sporting goods > outdoor recreation > equestrian > horse care > tail extensions
2359
+ 2362,sporting goods > outdoor recreation > equestrian > horse carts & carriages
2360
+ 2363,sporting goods > outdoor recreation > equestrian > horse feed
2361
+ 2364,sporting goods > outdoor recreation > equestrian > horse feed > horse feed
2362
+ 2365,sporting goods > outdoor recreation > equestrian > horse feed > horse supplements
2363
+ 2366,sporting goods > outdoor recreation > equestrian > horse feed > horse treats
2364
+ 2367,sporting goods > outdoor recreation > equestrian > horse jumps & arena equipment
2365
+ 2368,sporting goods > outdoor recreation > equestrian > horse jumps & arena equipment > horse jumps
2366
+ 2369,sporting goods > outdoor recreation > equestrian > horse jumps & arena equipment > lunge lines & cavessons
2367
+ 2370,sporting goods > outdoor recreation > equestrian > horse jumps & arena equipment > lunging rollers & pads
2368
+ 2371,sporting goods > outdoor recreation > equestrian > horse jumps & arena equipment > rodeo & roping equipment
2369
+ 2372,sporting goods > outdoor recreation > equestrian > horse wear
2370
+ 2373,sporting goods > outdoor recreation > equestrian > horse wear > fly masks
2371
+ 2374,sporting goods > outdoor recreation > equestrian > horse wear > grazing muzzles
2372
+ 2375,sporting goods > outdoor recreation > equestrian > horse wear > hoods & neck covers
2373
+ 2376,sporting goods > outdoor recreation > equestrian > horse wear > horse blankets & sheets
2374
+ 2377,sporting goods > outdoor recreation > equestrian > horse wear > horse boots & leg wraps
2375
+ 2378,sporting goods > outdoor recreation > equestrian > horse wear > shoulder guards
2376
+ 2379,sporting goods > outdoor recreation > equestrian > horse wear > tail bags & wraps
2377
+ 2380,sporting goods > outdoor recreation > equestrian > protective gear
2378
+ 2381,sporting goods > outdoor recreation > equestrian > protective gear > body protectors
2379
+ 2382,sporting goods > outdoor recreation > equestrian > protective gear > riding helmets
2380
+ 2383,sporting goods > outdoor recreation > equestrian > protective gear > safety vests
2381
+ 2384,sporting goods > outdoor recreation > equestrian > saddles & tack
2382
+ 2385,sporting goods > outdoor recreation > equestrian > saddles & tack > breast collars
2383
+ 2386,sporting goods > outdoor recreation > equestrian > saddles & tack > bridle bits
2384
+ 2387,sporting goods > outdoor recreation > equestrian > saddles & tack > bridles
2385
+ 2388,sporting goods > outdoor recreation > equestrian > saddles & tack > cinches
2386
+ 2389,sporting goods > outdoor recreation > equestrian > saddles & tack > halters
2387
+ 2390,sporting goods > outdoor recreation > equestrian > saddles & tack > harnesses
2388
+ 2391,sporting goods > outdoor recreation > equestrian > saddles & tack > lead ropes
2389
+ 2392,sporting goods > outdoor recreation > equestrian > saddles & tack > martingales & breastplates
2390
+ 2393,sporting goods > outdoor recreation > equestrian > saddles & tack > reins
2391
+ 2394,sporting goods > outdoor recreation > equestrian > saddles & tack > riding crops & whips
2392
+ 2395,sporting goods > outdoor recreation > equestrian > saddles & tack > saddle accessories
2393
+ 2396,sporting goods > outdoor recreation > equestrian > saddles & tack > saddle accessories > saddle bags
2394
+ 2397,sporting goods > outdoor recreation > equestrian > saddles & tack > saddle accessories > saddle covers
2395
+ 2398,sporting goods > outdoor recreation > equestrian > saddles & tack > saddle accessories > saddle pads
2396
+ 2399,sporting goods > outdoor recreation > equestrian > saddles & tack > saddle accessories > seat savers
2397
+ 2400,sporting goods > outdoor recreation > equestrian > saddles & tack > saddles
2398
+ 2401,sporting goods > outdoor recreation > equestrian > saddles & tack > spurs & spur straps
2399
+ 2402,sporting goods > outdoor recreation > equestrian > saddles & tack > stirrups
2400
+ 2403,sporting goods > outdoor recreation > equestrian > stable accessories
2401
+ 2404,sporting goods > outdoor recreation > equestrian > stable accessories > bridle & halter bags
2402
+ 2405,sporting goods > outdoor recreation > equestrian > stable accessories > feeders & waterers
2403
+ 2406,sporting goods > outdoor recreation > equestrian > stable accessories > hay nets & bags
2404
+ 2407,sporting goods > outdoor recreation > equestrian > stable accessories > saddle racks & stands
2405
+ 2408,"sporting goods > outdoor recreation > equestrian > stable accessories > tack hooks, racks & boxes"
2406
+ 2409,sporting goods > outdoor recreation > equestrian > stable accessories > toys & salt licks
2407
+ 2410,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories
2408
+ 2411,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun maintenance
2409
+ 2412,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun maintenance > cleaning supplies
2410
+ 2413,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun maintenance > gun smithing equipment
2411
+ 2414,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun maintenance > gun vises
2412
+ 2415,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun parts
2413
+ 2416,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun storage
2414
+ 2417,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun storage > ammunition cases
2415
+ 2418,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun storage > gun cabinets & safes
2416
+ 2419,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun storage > gun cases
2417
+ 2420,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun storage > gun locks
2418
+ 2421,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun storage > gun racks
2419
+ 2422,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > gun storage > gun sleeves
2420
+ 2423,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > holsters & pouches
2421
+ 2424,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > holsters & pouches > ammunition belts & bandoliers
2422
+ 2425,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > holsters & pouches > gun holsters
2423
+ 2426,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > holsters & pouches > magazine pouches
2424
+ 2427,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > holsters & pouches > shell caddies
2425
+ 2428,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > reloading equipment
2426
+ 2429,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > reloading equipment > powder measures & scales
2427
+ 2430,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > reloading equipment > reloading dies
2428
+ 2431,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > reloading equipment > reloading molds
2429
+ 2432,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > reloading equipment > reloading powders & primers
2430
+ 2433,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > reloading equipment > reloading presses
2431
+ 2434,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > shooting optics
2432
+ 2435,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > shooting optics > hunting rangefinders
2433
+ 2436,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > shooting optics > mounted flashlights
2434
+ 2437,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > shooting optics > night vision viewers & scopes
2435
+ 2438,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > shooting optics > red dot & laser sights
2436
+ 2439,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > shooting optics > rifle scopes
2437
+ 2440,sporting goods > outdoor recreation > hunting & shooting > gun parts & accessories > shooting optics > spotting scopes
2438
+ 2441,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > animal traps
2439
+ 2442,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > camouflage materials
2440
+ 2443,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > game & trail cameras
2441
+ 2444,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > game carts & gambrels
2442
+ 2445,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > game ears & hearing aids
2443
+ 2446,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > hunting bags
2444
+ 2447,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > hunting blinds & screens
2445
+ 2448,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > hunting dog equipment
2446
+ 2449,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > hunting dog equipment > check cords
2447
+ 2450,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > hunting dog equipment > dog boots & leg protectors
2448
+ 2451,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > hunting dog equipment > protective vests
2449
+ 2452,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > hunting dog equipment > retriever dummies
2450
+ 2453,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > hunting dog equipment > tail protectors
2451
+ 2454,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > hunting dog equipment > tracking collars
2452
+ 2455,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > hunting knives
2453
+ 2456,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > trail markers & game finders
2454
+ 2457,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > tree stands
2455
+ 2458,sporting goods > outdoor recreation > hunting & shooting > hunting accessories > wildlife attractants > cover scents & attractants
2456
+ 2459,"sporting goods > outdoor recreation > water sports & boating > boating, rafting & paddling"
2457
+ 2460,"sporting goods > outdoor recreation > water sports & boating > boating, rafting & paddling > boat storage racks"
2458
+ 2461,"sporting goods > outdoor recreation > water sports & boating > boating, rafting & paddling > canoes"
2459
+ 2462,"sporting goods > outdoor recreation > water sports & boating > boating, rafting & paddling > kayaks"
2460
+ 2463,"sporting goods > outdoor recreation > water sports & boating > boating, rafting & paddling > paddleboards"
2461
+ 2464,"sporting goods > outdoor recreation > water sports & boating > boating, rafting & paddling > paddles & oars"
2462
+ 2465,"sporting goods > outdoor recreation > water sports & boating > boating, rafting & paddling > pedal boats"
2463
+ 2466,"sporting goods > outdoor recreation > water sports & boating > boating, rafting & paddling > pontoon boats"
2464
+ 2467,"sporting goods > outdoor recreation > water sports & boating > boating, rafting & paddling > rafts"
2465
+ 2468,"sporting goods > outdoor recreation > water sports & boating > boating, rafting & paddling > row boats"
2466
+ 2469,"sporting goods > outdoor recreation > water sports & boating > boating, rafting & paddling > sailing gloves"
2467
+ 2470,sporting goods > outdoor recreation > water sports & boating > kitesurfing
2468
+ 2471,sporting goods > outdoor recreation > water sports & boating > kitesurfing > kiteboard cases
2469
+ 2472,sporting goods > outdoor recreation > water sports & boating > kitesurfing > kiteboards
2470
+ 2473,sporting goods > outdoor recreation > water sports & boating > kitesurfing > kitesurfing harnesses
2471
+ 2474,sporting goods > outdoor recreation > water sports & boating > kitesurfing > kitesurfing kites
2472
+ 2475,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling
2473
+ 2476,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > buoyancy compensators
2474
+ 2477,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > dive computers
2475
+ 2478,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > diving & snorkeling equipment sets
2476
+ 2479,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > diving & snorkeling fins
2477
+ 2480,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > diving & snorkeling masks
2478
+ 2481,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > diving belts
2479
+ 2482,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > diving flags
2480
+ 2483,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > diving gauges & compasses
2481
+ 2484,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > diving knives & shears
2482
+ 2485,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > diving lights
2483
+ 2486,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > diving regulators
2484
+ 2487,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > sea scooters
2485
+ 2488,sporting goods > outdoor recreation > water sports & boating > scuba diving & snorkeling > snorkels
2486
+ 2489,sporting goods > outdoor recreation > water sports & boating > surfing
2487
+ 2490,sporting goods > outdoor recreation > water sports & boating > surfing > bodyboards
2488
+ 2491,sporting goods > outdoor recreation > water sports & boating > surfing > skimboards
2489
+ 2492,sporting goods > outdoor recreation > water sports & boating > surfing > surfboards
2490
+ 2493,sporting goods > outdoor recreation > water sports & boating > surfing > surfing accessories
2491
+ 2494,sporting goods > outdoor recreation > water sports & boating > surfing > surfing accessories > surf leashes
2492
+ 2495,sporting goods > outdoor recreation > water sports & boating > surfing > surfing accessories > surfboard car & storage racks
2493
+ 2496,sporting goods > outdoor recreation > water sports & boating > surfing > surfing accessories > surfboard cases
2494
+ 2497,sporting goods > outdoor recreation > water sports & boating > surfing > surfing accessories > surfboard fins
2495
+ 2498,sporting goods > outdoor recreation > water sports & boating > surfing > surfing accessories > surfboard wax
2496
+ 2499,sporting goods > outdoor recreation > water sports & boating > surfing > surfing accessories > surfing gloves
2497
+ 2500,sporting goods > outdoor recreation > water sports & boating > surfing > surfing accessories > surfing tail pads
2498
+ 2501,sporting goods > outdoor recreation > water sports & boating > swimming
2499
+ 2502,sporting goods > outdoor recreation > water sports & boating > swimming > hand paddles
2500
+ 2503,sporting goods > outdoor recreation > water sports & boating > swimming > kickboards
2501
+ 2504,sporting goods > outdoor recreation > water sports & boating > swimming > pull buoys
2502
+ 2505,sporting goods > outdoor recreation > water sports & boating > swimming > swim belts
2503
+ 2506,sporting goods > outdoor recreation > water sports & boating > swimming > swim gloves
2504
+ 2507,sporting goods > outdoor recreation > water sports & boating > swimming > swim nose clips
2505
+ 2508,sporting goods > outdoor recreation > water sports & boating > swimming > swim weights
2506
+ 2509,sporting goods > outdoor recreation > water sports & boating > swimming > swimming aids
2507
+ 2510,sporting goods > outdoor recreation > water sports & boating > swimming > swimming fins
2508
+ 2511,sporting goods > outdoor recreation > water sports & boating > swimming > swimming machines
2509
+ 2512,sporting goods > outdoor recreation > water sports & boating > wakeboarding & water skiing
2510
+ 2513,sporting goods > outdoor recreation > water sports & boating > wakeboarding & water skiing > kneeboards
2511
+ 2514,sporting goods > outdoor recreation > water sports & boating > wakeboarding & water skiing > towable rafts & tubes
2512
+ 2515,sporting goods > outdoor recreation > water sports & boating > wakeboarding & water skiing > wakeboarding & water skiing accessories
2513
+ 2516,sporting goods > outdoor recreation > water sports & boating > wakeboarding & water skiing > wakeboarding & water skiing accessories > sit-down hydrofoils
2514
+ 2517,sporting goods > outdoor recreation > water sports & boating > wakeboarding & water skiing > wakeboarding & water skiing accessories > tow cables
2515
+ 2518,sporting goods > outdoor recreation > water sports & boating > wakeboarding & water skiing > wakeboarding & water skiing accessories > wakeboard & water ski bindings
2516
+ 2519,sporting goods > outdoor recreation > water sports & boating > wakeboarding & water skiing > wakeboarding & water skiing accessories > wakeboard & water ski cases
2517
+ 2520,sporting goods > outdoor recreation > water sports & boating > wakeboarding & water skiing > wakeboards
2518
+ 2521,sporting goods > outdoor recreation > water sports & boating > wakeboarding & water skiing > water skis
2519
+ 2522,sporting goods > outdoor recreation > water sports & boating > water polo
2520
+ 2523,sporting goods > outdoor recreation > water sports & boating > water polo > caps & head guards
2521
+ 2524,sporting goods > outdoor recreation > water sports & boating > water polo > training equipment
2522
+ 2525,sporting goods > outdoor recreation > water sports & boating > water polo > water polo balls
2523
+ 2526,sporting goods > outdoor recreation > water sports & boating > water polo > water polo goals
2524
+ 2527,sporting goods > outdoor recreation > water sports & boating > water sport apparel & accessories
2525
+ 2528,sporting goods > outdoor recreation > water sports & boating > water sport apparel & accessories > drysuits
2526
+ 2529,sporting goods > outdoor recreation > water sports & boating > water sport apparel & accessories > helmets
2527
+ 2530,sporting goods > outdoor recreation > water sports & boating > water sport apparel & accessories > life vests
2528
+ 2531,sporting goods > outdoor recreation > water sports & boating > water sport apparel & accessories > rash guards
2529
+ 2532,sporting goods > outdoor recreation > water sports & boating > water sport apparel & accessories > swim caps
2530
+ 2533,sporting goods > outdoor recreation > water sports & boating > water sport apparel & accessories > swim goggles
2531
+ 2534,sporting goods > outdoor recreation > water sports & boating > water sport apparel & accessories > water shoes
2532
+ 2535,sporting goods > outdoor recreation > water sports & boating > water sport apparel & accessories > wetsuits
2533
+ 2536,sporting goods > outdoor recreation > water sports & boating > windsurfing
2534
+ 2537,sporting goods > outdoor recreation > water sports & boating > windsurfing > windsurfing boards
2535
+ 2538,sporting goods > outdoor recreation > water sports & boating > windsurfing > windsurfing fins
2536
+ 2539,sporting goods > outdoor recreation > water sports & boating > windsurfing > windsurfing masts
2537
+ 2540,sporting goods > outdoor recreation > water sports & boating > windsurfing > windsurfing sails
2538
+ 2541,sporting goods > outdoor recreation > winter sports > skiing & snowboarding
2539
+ 2542,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > ski & snowboard accessories
2540
+ 2543,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > ski & snowboard accessories > ski & snowboard storage racks
2541
+ 2544,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > ski & snowboard accessories > ski & snowboard tuning supplies
2542
+ 2545,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > ski & snowboard accessories > ski & snowboard wax
2543
+ 2546,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > skiing
2544
+ 2547,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > skiing > ski bindings
2545
+ 2548,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > skiing > ski boots
2546
+ 2549,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > skiing > ski poles
2547
+ 2550,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > skiing > skis
2548
+ 2551,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > snowboarding
2549
+ 2552,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > snowboarding > snowboard bindings
2550
+ 2553,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > snowboarding > snowboard boots
2551
+ 2554,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > snowboarding > snowboards
2552
+ 2555,sporting goods > outdoor recreation > winter sports > sleds & snow tubes
2553
+ 2556,sporting goods > outdoor recreation > winter sports > snowball makers
2554
+ 2557,sporting goods > outdoor recreation > winter sports > snowshoes
2555
+ 2558,sporting goods > outdoor recreation > winter sports > winter clothing
2556
+ 2559,sporting goods > outdoor recreation > winter sports > winter clothing > goggles & masks
2557
+ 2560,sporting goods > outdoor recreation > winter sports > winter clothing > rain suits
2558
+ 2561,sporting goods > outdoor recreation > winter sports > winter clothing > snow suits
2559
+ 2562,sporting goods > outdoor recreation > camping & hiking > camping cooking supplies
2560
+ 2563,sporting goods > outdoor recreation > camping & hiking > camping cooking supplies > camping cookware
2561
+ 2564,sporting goods > outdoor recreation > camping & hiking > camping cooking supplies > camping coolers
2562
+ 2565,sporting goods > outdoor recreation > camping & hiking > camping cooking supplies > camping food
2563
+ 2566,sporting goods > outdoor recreation > camping & hiking > camping cooking supplies > camping grills
2564
+ 2567,sporting goods > outdoor recreation > camping & hiking > camping cooking supplies > camping kettles & coffee pots
2565
+ 2568,sporting goods > outdoor recreation > camping & hiking > camping cooking supplies > camping ovens
2566
+ 2569,sporting goods > outdoor recreation > camping & hiking > camping cooking supplies > camping stoves & burners
2567
+ 2570,sporting goods > outdoor recreation > camping & hiking > camping cooking supplies > camping tableware & dinnerware
2568
+ 2571,sporting goods > outdoor recreation > camping & hiking > camping cooking supplies > cooking utensils
2569
+ 2572,sporting goods > outdoor recreation > camping & hiking > camping cooking supplies > water carriers
2570
+ 2573,sporting goods > outdoor recreation > camping & hiking > camping gear
2571
+ 2574,sporting goods > outdoor recreation > camping & hiking > camping gear > camping chairs
2572
+ 2575,sporting goods > outdoor recreation > camping & hiking > camping gear > camping generators
2573
+ 2576,sporting goods > outdoor recreation > camping & hiking > camping gear > camping heaters
2574
+ 2577,sporting goods > outdoor recreation > camping & hiking > camping gear > compasses
2575
+ 2578,sporting goods > outdoor recreation > camping & hiking > camping gear > fire starters
2576
+ 2579,sporting goods > outdoor recreation > camping & hiking > camping gear > gaiters
2577
+ 2580,sporting goods > outdoor recreation > camping & hiking > camping gear > hand warmers
2578
+ 2581,sporting goods > outdoor recreation > camping & hiking > camping gear > insect repellent
2579
+ 2582,sporting goods > outdoor recreation > camping & hiking > camping gear > mosquito nets & insect screens
2580
+ 2583,sporting goods > outdoor recreation > camping & hiking > camping gear > paracord
2581
+ 2584,sporting goods > outdoor recreation > camping & hiking > camping gear > survival & safety whistles
2582
+ 2585,sporting goods > outdoor recreation > camping & hiking > camping gear > water filters & purifiers
2583
+ 2586,sporting goods > outdoor recreation > camping & hiking > camping lights & lanterns
2584
+ 2587,sporting goods > outdoor recreation > camping & hiking > camping lights & lanterns > flashlights
2585
+ 2588,sporting goods > outdoor recreation > camping & hiking > camping lights & lanterns > headlamps
2586
+ 2589,sporting goods > outdoor recreation > camping & hiking > camping lights & lanterns > lanterns
2587
+ 2590,sporting goods > outdoor recreation > camping & hiking > camping tools
2588
+ 2591,sporting goods > outdoor recreation > camping & hiking > camping tools > camping axes & hatchets
2589
+ 2592,sporting goods > outdoor recreation > camping & hiking > camping tools > camping trowels
2590
+ 2593,sporting goods > outdoor recreation > camping & hiking > camping tools > multitools
2591
+ 2594,sporting goods > outdoor recreation > camping & hiking > camping tools > survival knives
2592
+ 2595,sporting goods > outdoor recreation > camping & hiking > hiking backpacks
2593
+ 2596,sporting goods > outdoor recreation > camping & hiking > hiking backpacks > backpacking packs
2594
+ 2597,sporting goods > outdoor recreation > camping & hiking > hiking backpacks > daypacks
2595
+ 2598,sporting goods > outdoor recreation > camping & hiking > hiking backpacks > dry bags & boxes
2596
+ 2599,sporting goods > outdoor recreation > camping & hiking > hiking backpacks > hydration packs
2597
+ 2600,sporting goods > outdoor recreation > camping & hiking > outdoor sleeping gear
2598
+ 2601,sporting goods > outdoor recreation > camping & hiking > outdoor sleeping gear > compression sacks
2599
+ 2602,sporting goods > outdoor recreation > camping & hiking > outdoor sleeping gear > cots
2600
+ 2603,sporting goods > outdoor recreation > camping & hiking > outdoor sleeping gear > hammocks
2601
+ 2604,sporting goods > outdoor recreation > camping & hiking > outdoor sleeping gear > sleeping bag liners
2602
+ 2605,sporting goods > outdoor recreation > camping & hiking > outdoor sleeping gear > sleeping bags
2603
+ 2606,sporting goods > outdoor recreation > camping & hiking > outdoor sleeping gear > sleeping mats & pads
2604
+ 2607,sporting goods > outdoor recreation > camping & hiking > portable toilets & showers
2605
+ 2608,sporting goods > outdoor recreation > camping & hiking > portable toilets & showers > portable showers & privacy enclosures
2606
+ 2609,sporting goods > outdoor recreation > camping & hiking > portable toilets & showers > portable toilets
2607
+ 2610,sporting goods > outdoor recreation > camping & hiking > portable toilets & showers > portable urination devices
2608
+ 2611,sporting goods > outdoor recreation > camping & hiking > tent accessories
2609
+ 2612,sporting goods > outdoor recreation > camping & hiking > tent accessories > inner tents
2610
+ 2613,sporting goods > outdoor recreation > camping & hiking > tent accessories > tent footprints
2611
+ 2614,sporting goods > outdoor recreation > camping & hiking > tent accessories > tent poles & stakes
2612
+ 2615,sporting goods > outdoor recreation > camping & hiking > tent accessories > tent vestibules
2613
+ 2616,sporting goods > outdoor recreation > camping & hiking > tent accessories > windbreaks
2614
+ 2617,sporting goods > outdoor recreation > camping & hiking > tents & camping shelters
2615
+ 2618,sporting goods > outdoor recreation > camping & hiking > trekking poles
2616
+ 2619,sporting goods > outdoor recreation > climbing > ice climbing
2617
+ 2620,sporting goods > outdoor recreation > climbing > ice climbing > crampons
2618
+ 2621,sporting goods > outdoor recreation > climbing > ice climbing > ice screws
2619
+ 2622,sporting goods > outdoor recreation > cycling > bicycle accessories
2620
+ 2623,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle bags & panniers
2621
+ 2624,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle baskets
2622
+ 2625,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle bells & horns
2623
+ 2626,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle cages
2624
+ 2627,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle child seats
2625
+ 2628,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle computers
2626
+ 2629,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle covers
2627
+ 2630,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle fenders
2628
+ 2631,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle front & rear racks
2629
+ 2632,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle lights & reflectors
2630
+ 2633,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle locks
2631
+ 2634,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle mirrors
2632
+ 2635,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle pumps
2633
+ 2636,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle saddle pads & seat covers
2634
+ 2637,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle spoke beads
2635
+ 2638,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle stands & storage
2636
+ 2639,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle tire repair supplies & kits
2637
+ 2640,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle toe straps & clips
2638
+ 2641,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle tools
2639
+ 2642,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle trailers
2640
+ 2643,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle trainers
2641
+ 2644,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle training wheels
2642
+ 2645,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle transport bags & cases
2643
+ 2646,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle water bottle cages
2644
+ 2647,sporting goods > outdoor recreation > cycling > bicycle accessories > bicycle water sport board racks
2645
+ 2648,sporting goods > outdoor recreation > cycling > bicycle accessories > electric bicycle conversion kits
2646
+ 2649,sporting goods > outdoor recreation > cycling > bicycle parts
2647
+ 2650,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle brake parts
2648
+ 2651,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle brake parts > bicycle brake calipers
2649
+ 2652,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle brake parts > bicycle brake levers
2650
+ 2653,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle brake parts > bicycle brake rotors
2651
+ 2654,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle brake parts > bicycle brakes
2652
+ 2655,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle cables & housings
2653
+ 2656,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle drivetrain parts
2654
+ 2657,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle drivetrain parts > bicycle bottom brackets
2655
+ 2658,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle drivetrain parts > bicycle cassettes & freewheels
2656
+ 2659,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle drivetrain parts > bicycle chain guards
2657
+ 2660,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle drivetrain parts > bicycle chainrings
2658
+ 2661,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle drivetrain parts > bicycle chains
2659
+ 2662,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle drivetrain parts > bicycle cranks
2660
+ 2663,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle drivetrain parts > bicycle derailleurs
2661
+ 2664,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle drivetrain parts > bicycle groupsets
2662
+ 2665,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle drivetrain parts > bicycle pedals
2663
+ 2666,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle drivetrain parts > bicycle shifters
2664
+ 2667,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle frames
2665
+ 2668,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle handlebars & accessories
2666
+ 2669,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle handlebars & accessories > bicycle handlebar extensions
2667
+ 2670,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle handlebars & accessories > bicycle handlebar grips & pads
2668
+ 2671,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle handlebars & accessories > bicycle handlebars
2669
+ 2672,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle headsets & headset parts
2670
+ 2673,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle headsets & headset parts > bicycle headset bearings
2671
+ 2674,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle headsets & headset parts > bicycle headset spacers
2672
+ 2675,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle headsets & headset parts > bicycle headsets
2673
+ 2676,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle kickstands
2674
+ 2677,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle saddles & seatposts
2675
+ 2678,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle saddles & seatposts > bicycle saddles
2676
+ 2679,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle saddles & seatposts > bicycle seatpost clamps
2677
+ 2680,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle saddles & seatposts > bicycle seatposts
2678
+ 2681,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle stems
2679
+ 2682,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle suspension parts
2680
+ 2683,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle suspension parts > bicycle forks
2681
+ 2684,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle suspension parts > bicycle shock pumps
2682
+ 2685,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle suspension parts > bicycle shocks
2683
+ 2686,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle tires & tire parts
2684
+ 2687,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle tires & tire parts > bicycle tire valve adapters
2685
+ 2688,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle tires & tire parts > bicycle tire valve caps
2686
+ 2689,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle tires & tire parts > bicycle tire valves
2687
+ 2690,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle tires & tire parts > bicycle tires
2688
+ 2691,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle tires & tire parts > bicycle tubes
2689
+ 2692,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle wheels & wheel parts
2690
+ 2693,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle wheels & wheel parts > bicycle foot pegs
2691
+ 2694,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle wheels & wheel parts > bicycle hubs
2692
+ 2695,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle wheels & wheel parts > bicycle rim strips
2693
+ 2696,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle wheels & wheel parts > bicycle spokes
2694
+ 2697,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle wheels & wheel parts > bicycle wheel axles & skewers
2695
+ 2698,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle wheels & wheel parts > bicycle wheel nipples
2696
+ 2699,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle wheels & wheel parts > bicycle wheel rims
2697
+ 2700,sporting goods > outdoor recreation > cycling > bicycle parts > bicycle wheels & wheel parts > bicycle wheels
2698
+ 2701,sporting goods > outdoor recreation > cycling > bicycles
2699
+ 2702,sporting goods > outdoor recreation > cycling > cycling clothing
2700
+ 2703,sporting goods > outdoor recreation > cycling > cycling clothing > bicycle bibs
2701
+ 2704,sporting goods > outdoor recreation > cycling > cycling clothing > bicycle jerseys
2702
+ 2705,sporting goods > outdoor recreation > cycling > cycling clothing > bicycle shorts & briefs
2703
+ 2706,sporting goods > outdoor recreation > cycling > cycling clothing > bicycle skinsuits
2704
+ 2707,sporting goods > outdoor recreation > cycling > cycling clothing > bicycle tights
2705
+ 2708,sporting goods > outdoor recreation > cycling > cycling shoes & protective gear
2706
+ 2709,sporting goods > outdoor recreation > cycling > cycling shoes & protective gear > bicycle cleat accessories
2707
+ 2710,sporting goods > outdoor recreation > cycling > cycling shoes & protective gear > bicycle cleat accessories > bicycle cleat bolts
2708
+ 2711,sporting goods > outdoor recreation > cycling > cycling shoes & protective gear > bicycle cleat accessories > bicycle cleat covers
2709
+ 2712,sporting goods > outdoor recreation > cycling > cycling shoes & protective gear > bicycle cleat accessories > bicycle cleat shims & wedges
2710
+ 2713,sporting goods > outdoor recreation > cycling > cycling shoes & protective gear > bicycle cleats
2711
+ 2714,sporting goods > outdoor recreation > cycling > cycling shoes & protective gear > bicycle gloves
2712
+ 2715,sporting goods > outdoor recreation > cycling > cycling shoes & protective gear > bicycle helmets
2713
+ 2716,sporting goods > outdoor recreation > cycling > cycling shoes & protective gear > bicycle protective pads
2714
+ 2717,sporting goods > outdoor recreation > cycling > cycling shoes & protective gear > bicycle shoe covers
2715
+ 2718,sporting goods > outdoor recreation > cycling > tricycles
2716
+ 2719,sporting goods > outdoor recreation > cycling > unicycles
2717
+ 2720,sporting goods > outdoor recreation > fishing > fishing baits & lures
2718
+ 2721,sporting goods > outdoor recreation > fishing > fishing baits & lures > attractants
2719
+ 2722,sporting goods > outdoor recreation > fishing > fishing baits & lures > bait & lure kits
2720
+ 2723,sporting goods > outdoor recreation > fishing > fishing baits & lures > fishing flies
2721
+ 2724,sporting goods > outdoor recreation > fishing > fishing baits & lures > hard baits
2722
+ 2725,sporting goods > outdoor recreation > fishing > fishing baits & lures > jigs & rigs
2723
+ 2726,sporting goods > outdoor recreation > fishing > fishing baits & lures > live bait
2724
+ 2727,sporting goods > outdoor recreation > fishing > fishing baits & lures > soft baits
2725
+ 2728,sporting goods > outdoor recreation > fishing > fishing baits & lures > spinnerbaits
2726
+ 2729,sporting goods > outdoor recreation > fishing > fishing equipment
2727
+ 2730,sporting goods > outdoor recreation > fishing > fishing equipment > bait & fillet knives
2728
+ 2731,sporting goods > outdoor recreation > fishing > fishing equipment > bait buckets
2729
+ 2732,sporting goods > outdoor recreation > fishing > fishing equipment > bite alarms
2730
+ 2733,sporting goods > outdoor recreation > fishing > fishing equipment > fishfinders
2731
+ 2734,sporting goods > outdoor recreation > fishing > fishing equipment > fishing nets
2732
+ 2735,sporting goods > outdoor recreation > fishing > fishing equipment > fishing scalers & skinners
2733
+ 2736,sporting goods > outdoor recreation > fishing > fishing equipment > fishing spears & gaffs
2734
+ 2737,sporting goods > outdoor recreation > fishing > fishing equipment > fishing traps
2735
+ 2738,sporting goods > outdoor recreation > fishing > fishing equipment > fly tying materials
2736
+ 2739,sporting goods > outdoor recreation > fishing > fishing equipment > pliers & hook removers
2737
+ 2740,sporting goods > outdoor recreation > fishing > fishing rod & reel accessories
2738
+ 2741,sporting goods > outdoor recreation > fishing > fishing rod & reel accessories > fishing reel bags & cases
2739
+ 2742,sporting goods > outdoor recreation > fishing > fishing rod & reel accessories > fishing reel lubricants
2740
+ 2743,sporting goods > outdoor recreation > fishing > fishing rod & reel accessories > fishing reel spools
2741
+ 2744,sporting goods > outdoor recreation > fishing > fishing rod & reel accessories > fishing rod bags & cases
2742
+ 2745,sporting goods > outdoor recreation > fishing > fishing rod & reel accessories > fishing rod holders & racks
2743
+ 2746,sporting goods > outdoor recreation > fishing > fishing rods & reels
2744
+ 2747,sporting goods > outdoor recreation > fishing > fishing rods & reels > fishing reels
2745
+ 2748,sporting goods > outdoor recreation > fishing > fishing rods & reels > fishing rod & reel combos
2746
+ 2749,sporting goods > outdoor recreation > fishing > fishing rods & reels > fishing rods
2747
+ 2750,sporting goods > outdoor recreation > fishing > fishing tackle
2748
+ 2751,sporting goods > outdoor recreation > fishing > fishing tackle > fishing floats
2749
+ 2752,sporting goods > outdoor recreation > fishing > fishing tackle > fishing hooks
2750
+ 2753,sporting goods > outdoor recreation > fishing > fishing tackle > fishing lines & leaders
2751
+ 2754,sporting goods > outdoor recreation > fishing > fishing tackle > fishing sinkers
2752
+ 2755,sporting goods > outdoor recreation > fishing > fishing tackle > fishing snaps & swivels
2753
+ 2756,sporting goods > outdoor recreation > fishing > fishing waders
2754
+ 2757,sporting goods > outdoor recreation > fishing > tackle bags & boxes
2755
+ 2758,sporting goods > outdoor recreation > inline & roller skating > inline skates
2756
+ 2759,sporting goods > outdoor recreation > inline & roller skating > protective gear
2757
+ 2760,sporting goods > outdoor recreation > inline & roller skating > protective gear > helmets
2758
+ 2761,sporting goods > outdoor recreation > inline & roller skating > protective gear > knee & elbow pads
2759
+ 2762,sporting goods > outdoor recreation > inline & roller skating > protective gear > protective gear sets
2760
+ 2763,sporting goods > outdoor recreation > inline & roller skating > protective gear > wrist guards
2761
+ 2764,sporting goods > outdoor recreation > inline & roller skating > roller skates
2762
+ 2765,sporting goods > outdoor recreation > inline & roller skating > roller skis
2763
+ 2766,sporting goods > outdoor recreation > inline & roller skating > skate wheels
2764
+ 2767,sporting goods > outdoor recreation > outdoor games > deck shuffleboard
2765
+ 2768,sporting goods > outdoor recreation > outdoor games > deck shuffleboard > deck shuffleboard courts
2766
+ 2769,sporting goods > outdoor recreation > outdoor games > deck shuffleboard > deck shuffleboard cues
2767
+ 2770,sporting goods > outdoor recreation > outdoor games > deck shuffleboard > deck shuffleboard pucks
2768
+ 2771,sporting goods > outdoor recreation > outdoor games > disc golf
2769
+ 2772,sporting goods > outdoor recreation > outdoor games > disc golf > disc golf bags
2770
+ 2773,sporting goods > outdoor recreation > outdoor games > disc golf > disc golf discs
2771
+ 2774,sporting goods > outdoor recreation > outdoor games > disc golf > disc golf sets
2772
+ 2775,sporting goods > outdoor recreation > outdoor games > disc golf > disc golf targets
2773
+ 2776,sporting goods > outdoor recreation > outdoor games > lawn games
2774
+ 2777,sporting goods > outdoor recreation > outdoor games > lawn games > bocce ball
2775
+ 2778,sporting goods > outdoor recreation > outdoor games > lawn games > cornhole bag toss
2776
+ 2779,sporting goods > outdoor recreation > outdoor games > lawn games > croquet
2777
+ 2780,sporting goods > outdoor recreation > outdoor games > lawn games > horseshoes
2778
+ 2781,sporting goods > outdoor recreation > outdoor games > tetherball
2779
+ 2782,sporting goods > outdoor recreation > outdoor games > tetherball > tetherball poles
2780
+ 2783,sporting goods > outdoor recreation > outdoor games > tetherball > tetherball sets
2781
+ 2784,sporting goods > outdoor recreation > outdoor games > tetherball > tetherballs
2782
+ 2785,sporting goods > outdoor recreation > skateboarding > skateboard parts
2783
+ 2786,sporting goods > outdoor recreation > skateboarding > skateboard parts > skateboard bearings
2784
+ 2787,sporting goods > outdoor recreation > skateboarding > skateboard parts > skateboard decks
2785
+ 2788,sporting goods > outdoor recreation > skateboarding > skateboard parts > skateboard trucks
2786
+ 2789,sporting goods > outdoor recreation > skateboarding > skateboard parts > skateboard wheels
2787
+ 2790,sporting goods > outdoor recreation > skateboarding > skateboard protective gear
2788
+ 2791,sporting goods > outdoor recreation > skateboarding > skateboard protective gear > skateboarding gloves
2789
+ 2792,sporting goods > outdoor recreation > skateboarding > skateboard protective gear > skateboarding helmets
2790
+ 2793,sporting goods > outdoor recreation > skateboarding > skateboard protective gear > skateboarding knee & elbow pads
2791
+ 2794,sporting goods > outdoor recreation > skateboarding > skateboard ramps & rails
2792
+ 2795,sporting goods > outdoor recreation > skateboarding > skateboards & longboards
2793
+ 2796,sporting goods > outdoor recreation > winter sports > avalanche safety
2794
+ 2797,sporting goods > outdoor recreation > winter sports > avalanche safety > avalanche probes
2795
+ 2798,sporting goods > outdoor recreation > winter sports > avalanche safety > avalanche safety airbags
2796
+ 2799,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > ski & snowboard accessories > ski & snowboard bags
2797
+ 2800,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > ski & snowboard accessories > ski & snowboard helmets
2798
+ 2801,sporting goods > outdoor recreation > winter sports > skiing & snowboarding > ski & snowboard accessories > ski & snowboard leashes
2799
+ 2802,sporting goods > exercise & fitness > ab exercisers
2800
+ 2803,sporting goods > exercise & fitness > aerobic steps
2801
+ 2804,sporting goods > exercise & fitness > balance trainers
2802
+ 2805,sporting goods > exercise & fitness > cardio equipment > cardio machine accessories
2803
+ 2806,sporting goods > exercise & fitness > cardio equipment > elliptical trainers
2804
+ 2807,sporting goods > exercise & fitness > cardio equipment > exercise bikes
2805
+ 2808,sporting goods > exercise & fitness > cardio equipment > jump ropes
2806
+ 2809,sporting goods > exercise & fitness > cardio equipment > rowing machines
2807
+ 2810,sporting goods > exercise & fitness > cardio equipment > stair climbers & step machines
2808
+ 2811,sporting goods > exercise & fitness > cardio equipment > treadmills
2809
+ 2812,sporting goods > exercise & fitness > exercise balls
2810
+ 2813,sporting goods > exercise & fitness > exercise bands
2811
+ 2814,sporting goods > exercise & fitness > exercise benches & wedges
2812
+ 2815,sporting goods > exercise & fitness > foam rollers & massagers
2813
+ 2816,sporting goods > exercise & fitness > hand exercisers
2814
+ 2817,sporting goods > exercise & fitness > inversion tables
2815
+ 2818,sporting goods > exercise & fitness > power towers
2816
+ 2819,sporting goods > exercise & fitness > push up & pull up bars
2817
+ 2820,sporting goods > exercise & fitness > reaction balls
2818
+ 2821,sporting goods > exercise & fitness > running
2819
+ 2822,sporting goods > exercise & fitness > running > speed & resistance parachutes
2820
+ 2823,sporting goods > exercise & fitness > suspension trainers
2821
+ 2824,sporting goods > exercise & fitness > vibration exercise machines
2822
+ 2825,sporting goods > exercise & fitness > weight lifting equipment > dumbbells
2823
+ 2826,sporting goods > exercise & fitness > weight lifting equipment > kettlebells
2824
+ 2827,sporting goods > exercise & fitness > weight lifting equipment > medicine balls
2825
+ 2828,sporting goods > exercise & fitness > weight lifting equipment > weight bars & collars
2826
+ 2829,sporting goods > exercise & fitness > weight lifting equipment > weight lifting accessories
2827
+ 2830,sporting goods > exercise & fitness > weight lifting equipment > weight lifting accessories > exercise equipment mats
2828
+ 2831,sporting goods > exercise & fitness > weight lifting equipment > weight lifting accessories > weight lifting belts
2829
+ 2832,sporting goods > exercise & fitness > weight lifting equipment > weight lifting accessories > weight lifting gloves
2830
+ 2833,sporting goods > exercise & fitness > weight lifting equipment > weight lifting accessories > weight lifting machine accessories
2831
+ 2834,sporting goods > exercise & fitness > weight lifting equipment > weight lifting accessories > weight storage racks
2832
+ 2835,sporting goods > exercise & fitness > weight lifting equipment > weight lifting machines & racks
2833
+ 2836,sporting goods > exercise & fitness > weight lifting equipment > weight plates
2834
+ 2837,sporting goods > exercise & fitness > weight lifting equipment > weighted clothing
2835
+ 2838,sporting goods > exercise & fitness > yoga & pilates > pilates machines
2836
+ 2839,sporting goods > exercise & fitness > yoga & pilates > yoga & pilates towels
2837
+ 2840,sporting goods > exercise & fitness > yoga & pilates > yoga bags & mat carriers
2838
+ 2841,sporting goods > exercise & fitness > yoga & pilates > yoga blocks
2839
+ 2842,sporting goods > exercise & fitness > yoga & pilates > yoga mats
2840
+ 2843,sporting goods > exercise & fitness > yoga & pilates > yoga straps & bands
2841
+ 2844,sporting goods > indoor games > air hockey
2842
+ 2845,sporting goods > indoor games > air hockey > air hockey paddles
2843
+ 2846,sporting goods > indoor games > air hockey > air hockey pucks
2844
+ 2847,sporting goods > indoor games > air hockey > air hockey tables
2845
+ 2848,sporting goods > indoor games > billiards
2846
+ 2849,sporting goods > indoor games > billiards > billiard ball racks
2847
+ 2850,sporting goods > indoor games > billiards > billiard balls
2848
+ 2851,sporting goods > indoor games > billiards > billiard cue accessories
2849
+ 2852,sporting goods > indoor games > billiards > billiard cue accessories > billiard cue cases
2850
+ 2853,sporting goods > indoor games > billiards > billiard cue accessories > billiard cue chalk
2851
+ 2854,sporting goods > indoor games > billiards > billiard cue accessories > billiard cue racks
2852
+ 2855,sporting goods > indoor games > billiards > billiard cue accessories > billiard cue tips
2853
+ 2856,sporting goods > indoor games > billiards > billiard cues & bridges
2854
+ 2857,sporting goods > indoor games > billiards > billiard gloves
2855
+ 2858,sporting goods > indoor games > billiards > billiard table accessories
2856
+ 2859,sporting goods > indoor games > billiards > billiard table accessories > billiard pockets
2857
+ 2860,sporting goods > indoor games > billiards > billiard table accessories > billiard table brushes
2858
+ 2861,sporting goods > indoor games > billiards > billiard table accessories > billiard table covers & cloth
2859
+ 2862,sporting goods > indoor games > billiards > billiard table accessories > billiard table lights
2860
+ 2863,sporting goods > indoor games > billiards > billiard tables
2861
+ 2864,sporting goods > indoor games > bowling
2862
+ 2865,sporting goods > indoor games > bowling > bowling bags
2863
+ 2866,sporting goods > indoor games > bowling > bowling balls
2864
+ 2867,sporting goods > indoor games > bowling > bowling gloves & wrist supports
2865
+ 2868,sporting goods > indoor games > bowling > bowling pins
2866
+ 2869,sporting goods > indoor games > bowling > clothing & shoes
2867
+ 2870,sporting goods > indoor games > darts
2868
+ 2871,sporting goods > indoor games > darts > dart parts
2869
+ 2872,sporting goods > indoor games > darts > dart parts > dart flights
2870
+ 2873,sporting goods > indoor games > darts > dart parts > dart shafts
2871
+ 2874,sporting goods > indoor games > darts > dart parts > dart tips
2872
+ 2875,sporting goods > indoor games > darts > dart sets
2873
+ 2876,sporting goods > indoor games > darts > dartboard backboards
2874
+ 2877,sporting goods > indoor games > darts > dartboard cabinets
2875
+ 2878,sporting goods > indoor games > darts > dartboards
2876
+ 2879,sporting goods > indoor games > darts > throwing darts
2877
+ 2880,sporting goods > indoor games > foosball
2878
+ 2881,sporting goods > indoor games > foosball > foosball balls
2879
+ 2882,sporting goods > indoor games > foosball > foosball figures
2880
+ 2883,sporting goods > indoor games > foosball > foosball handles
2881
+ 2884,sporting goods > indoor games > foosball > foosball tables
2882
+ 2885,sporting goods > indoor games > multi-game tables
2883
+ 2886,sporting goods > indoor games > ping pong & table tennis
2884
+ 2887,sporting goods > indoor games > ping pong & table tennis > ping pong balls
2885
+ 2888,sporting goods > indoor games > ping pong & table tennis > ping pong nets & posts
2886
+ 2889,sporting goods > indoor games > ping pong & table tennis > ping pong paddles
2887
+ 2890,sporting goods > indoor games > ping pong & table tennis > ping pong robots
2888
+ 2891,sporting goods > indoor games > ping pong & table tennis > ping pong tables
2889
+ 2892,sporting goods > indoor games > table shuffleboard
2890
+ 2893,sporting goods > indoor games > table shuffleboard > shuffleboard tables
2891
+ 2894,sporting goods > indoor games > table shuffleboard > table shuffleboard powder & wax
2892
+ 2895,sporting goods > indoor games > table shuffleboard > table shuffleboard pucks
2893
+ 2896,sporting goods > outdoor recreation > climbing > climbing accessories
2894
+ 2897,sporting goods > outdoor recreation > climbing > climbing accessories > chalk bags
2895
+ 2898,sporting goods > outdoor recreation > climbing > climbing accessories > climbing brushes
2896
+ 2899,sporting goods > outdoor recreation > climbing > climbing accessories > climbing gloves
2897
+ 2900,sporting goods > outdoor recreation > climbing > climbing accessories > climbing helmets
2898
+ 2901,sporting goods > outdoor recreation > climbing > climbing accessories > climbing tape
2899
+ 2902,sporting goods > outdoor recreation > climbing > climbing accessories > crash pads & mats
2900
+ 2903,sporting goods > outdoor recreation > climbing > climbing accessories > rope bags
2901
+ 2904,sporting goods > outdoor recreation > climbing > climbing hardware
2902
+ 2905,sporting goods > outdoor recreation > climbing > climbing hardware > ascenders & descenders
2903
+ 2906,sporting goods > outdoor recreation > climbing > climbing hardware > belay & rappel devices
2904
+ 2907,sporting goods > outdoor recreation > climbing > climbing hardware > cams & nuts
2905
+ 2908,sporting goods > outdoor recreation > climbing > climbing hardware > carabiners
2906
+ 2909,sporting goods > outdoor recreation > climbing > climbing hardware > climbing harnesses
2907
+ 2910,sporting goods > outdoor recreation > climbing > climbing hardware > climbing rope & webbing
2908
+ 2911,sporting goods > outdoor recreation > climbing > climbing hardware > indoor climbing holds
2909
+ 2912,sporting goods > outdoor recreation > climbing > climbing hardware > pulleys
2910
+ 2913,sporting goods > outdoor recreation > climbing > climbing hardware > quickdraws
2911
+ 2914,sporting goods > outdoor recreation > climbing > clothing & shoes
2912
+ 2915,sporting goods > outdoor recreation > climbing > ice climbing > ice axes
2913
+ 2916,health & beauty > beauty > nail care > nail tools > hand & nail treatment creams
2914
+ 2917,home > cleaning supplies > party supplies > piñatas
admin/partials/woo-feed-edit-config.php CHANGED
@@ -65,8 +65,13 @@ if ( ! defined( 'ABSPATH' ) ) {
65
  <span <?php echo ( 'pattern' == $attr_type[ $k ] ) ? '' : 'style=" display: none;" '; ?>class="wf_default wf_attributes">
66
  <select name="default[<?php echo esc_attr( $k ); ?>]" class="selectize" data-placeholder="<?php esc_attr_e( 'Select A Category', 'woo-feed' ); ?>">
67
  <?php
68
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
69
- echo $wooFeedDropDown->googleTaxonomy( esc_attr( $default[ $k ] ) );
 
 
 
 
 
70
  ?>
71
  </select>
72
  </span>
65
  <span <?php echo ( 'pattern' == $attr_type[ $k ] ) ? '' : 'style=" display: none;" '; ?>class="wf_default wf_attributes">
66
  <select name="default[<?php echo esc_attr( $k ); ?>]" class="selectize" data-placeholder="<?php esc_attr_e( 'Select A Category', 'woo-feed' ); ?>">
67
  <?php
68
+ if( "fb_product_category" === $mAttribute ) {
69
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
70
+ echo $wooFeedDropDown->facebookTaxonomy( esc_attr( $default[ $k ] ) );
71
+ }else {
72
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
73
+ echo $wooFeedDropDown->googleTaxonomy( esc_attr( $default[ $k ] ) );
74
+ }
75
  ?>
76
  </select>
77
  </span>
includes/classes/class-woo-feed-default-attributes.php CHANGED
@@ -776,6 +776,99 @@ class Woo_Feed_Default_Attributes {
776
  );
777
  }
778
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
779
  /**
780
  * Google Dynamic Ads Attribute List
781
  *
776
  );
777
  }
778
 
779
+ /**
780
+ * Facebook Attribute List
781
+ *
782
+ * @return array
783
+ */
784
+ public function facebookAttributes() {
785
+ return array(
786
+ '--1' => 'Basic Information',
787
+ 'id' => 'Product Id[id]',
788
+ 'title' => 'Product Title[title]',
789
+ 'description' => 'Product Description[description]',
790
+ 'link' => 'Product URL[link]',
791
+ 'mobile_link' => 'Product URL[mobile_link]',
792
+ 'product_type' => 'Product Categories[product_type] ',
793
+ 'fb_product_category' => 'Facebook Product Category[fb_product_category]',
794
+ 'current_category' => 'Google Product Category[google_product_category]',
795
+ 'image' => 'Main Image[image_link]',
796
+ 'images' => 'Additional Images [additional_image_link]',
797
+ 'images_1' => 'Additional Image 1 [additional_image_link]',
798
+ 'images_2' => 'Additional Image 2 [additional_image_link]',
799
+ 'images_3' => 'Additional Image 3 [additional_image_link]',
800
+ 'images_4' => 'Additional Image 4 [additional_image_link]',
801
+ 'images_5' => 'Additional Image 5 [additional_image_link]',
802
+ 'images_6' => 'Additional Image 6 [additional_image_link]',
803
+ 'images_7' => 'Additional Image 7 [additional_image_link]',
804
+ 'images_8' => 'Additional Image 8 [additional_image_link]',
805
+ 'images_9' => 'Additional Image 9 [additional_image_link]',
806
+ 'images_10' => 'Additional Image 10 [additional_image_link]',
807
+ 'condition' => 'Condition[condition]',
808
+ '---1' => '',
809
+ '--2' => 'Availability & Price',
810
+ 'availability' => 'Stock Status[availability]',
811
+ 'availability_date' => 'Availability Date[availability_date]',
812
+ 'price' => 'Regular Price[price]',
813
+ 'sale_price' => 'Sale Price[sale_price]',
814
+ 'sale_price_effective_date' => 'Sale Price Effective Date[sale_price_effective_date]',
815
+ '---2' => '',
816
+ '--3' => 'Unique Product Identifiers',
817
+ 'brand' => 'Manufacturer[brand]',
818
+ 'gtin' => 'GTIN[gtin]',
819
+ 'mpn' => 'MPN[mpn]',
820
+ 'identifier_exists' => 'Identifier Exist[identifier_exists]',
821
+ '---3' => '',
822
+ '--4' => 'Detailed Product Attributes',
823
+ 'item_group_id' => 'Item Group Id[item_group_id]',
824
+ 'color' => 'Color[color]',
825
+ 'gender' => 'Gender[gender]',
826
+ 'age_group' => 'Age Group[age_group]',
827
+ 'material' => 'Material[material]',
828
+ 'pattern' => 'Pattern[pattern]',
829
+ 'size' => 'Size of the item[size]',
830
+ '---4' => '',
831
+ '--5' => 'Tax & Shipping',
832
+ 'tax' => 'Tax[tax]',
833
+ 'tax_country' => 'Tax Country[tax_country]',
834
+ 'tax_region' => 'Tax Region[tax_region]',
835
+ 'tax_rate' => 'Tax Rate[tax_rate]',
836
+ 'tax_ship' => 'Tax Ship[tax_ship]',
837
+ 'tax_category' => 'Tax[tax_category]',
838
+ 'shipping' => 'Shipping',
839
+ 'shipping_weight' => 'Shipping Weight[shipping_weight]',
840
+ '---5' => '',
841
+ '--6' => 'Custom Label Attributes',
842
+ 'custom_label_0' => 'Custom label 0 [custom_label_0]',
843
+ 'custom_label_1' => 'Custom label 1 [custom_label_1]',
844
+ 'custom_label_2' => 'Custom label 2 [custom_label_2]',
845
+ 'custom_label_3' => 'Custom label 3 [custom_label_3]',
846
+ 'custom_label_4' => 'Custom label 4 [custom_label_4]',
847
+ '---6' => '',
848
+ '--7' => 'Additional Attributes',
849
+ 'status' => 'Status [status]',
850
+ 'video' => 'Video [video]',
851
+ 'unit_price_value' => 'Unit Price > Value [unit_price_value]',
852
+ 'unit_price_currency' => 'Unit Price > Currency [unit_price_currency]',
853
+ 'unit_price_unit' => 'Unit Price > Unit [unit_price_unit]',
854
+ 'quantity_to_sell_on_facebook' => 'Quantity to Sell on Facebook [quantity_to_sell_on_facebook]',
855
+ 'commerce_tax_category' => 'Commerce Tax Category [commerce_tax_category]',
856
+ 'expiration_date' => 'Expiration Date[expiration_date]',
857
+ 'marked_for_product_launch' => 'Marked for Product Launce [marked_for_product_launch]',
858
+ 'rich_text_description' => 'Rich Text Description [rich_text_description]',
859
+ 'visibility' => 'Visibility [visibility]',
860
+ 'additional_variant_label' => 'Additional Variant Attribute > Label [Variant Label]',
861
+ 'additional_variant_value' => 'Additional Variant Attribute > Value [Variant Value]',
862
+ 'applink' => 'Applink [applink]',
863
+ 'origin_country' => 'Origin Country [origin_country]',
864
+ 'importer_name' => 'Importer Name [importer_name]',
865
+ 'importer_address' => 'Importer Address [importer_address]',
866
+ 'manufacturer_info' => 'Manufacturer Info [manufacturer_info]',
867
+ 'return_policy_info' => 'Return Policy Info [return_policy_info]',
868
+ '---7' => '',
869
+ );
870
+ }
871
+
872
  /**
873
  * Google Dynamic Ads Attribute List
874
  *
includes/classes/class-woo-feed-dropdown.php CHANGED
@@ -168,6 +168,70 @@ class Woo_Feed_Dropdown {
168
  return $taxonomy;
169
  }
170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
  /**
172
  * Get product related post meta keys (filtered)
173
  *
@@ -331,6 +395,7 @@ class Woo_Feed_Dropdown {
331
  'availability' => esc_html__( 'Availability', 'woo-feed' ),
332
  'availability_date' => esc_html__( 'Availability Date', 'woo-feed'),
333
  'quantity' => esc_html__( 'Quantity', 'woo-feed' ),
 
334
  'price' => esc_html__( 'Regular Price', 'woo-feed' ),
335
  'current_price' => esc_html__( 'Price', 'woo-feed' ),
336
  'sale_price' => esc_html__( 'Sale Price', 'woo-feed' ),
@@ -753,6 +818,23 @@ class Woo_Feed_Dropdown {
753
  return $options;
754
  }
755
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
756
  /**
757
  * Dropdown of Google Local Inventory Ads Template
758
  *
@@ -1004,18 +1086,6 @@ class Woo_Feed_Dropdown {
1004
  return $options;
1005
  }
1006
 
1007
- /**
1008
- * Facebook Attribute list
1009
- * Alias of google attribute dropdown for facebook
1010
- *
1011
- * @param string $selected
1012
- *
1013
- * @return string
1014
- */
1015
- public function facebookAttributesDropdown( $selected = '' ) {
1016
- return $this->googleAttributesDropdown( $selected, [ 'facebook' ] );
1017
- }
1018
-
1019
  /**
1020
  * Pinterest Attribute list
1021
  * Alias of google attribute dropdown for pinterest
168
  return $taxonomy;
169
  }
170
 
171
+ /**
172
+ * Read txt file which contains facebook taxonomy list
173
+ *
174
+ * @param string $selected
175
+ *
176
+ * @return string
177
+ */
178
+ public function facebookTaxonomy( $selected = '' ) {
179
+ // Get All Facebook Taxonomies
180
+ $fileName = WOO_FEED_FREE_ADMIN_PATH . '/partials/templates/taxonomies/fb_taxonomy.txt';
181
+ $customTaxonomyFile = fopen( $fileName, 'r' ); // phpcs:ignore
182
+ $str = '';
183
+ if ( ! empty( $selected ) ) {
184
+ $selected = trim( $selected );
185
+ if ( ! is_numeric( $selected ) ) {
186
+ $selected = html_entity_decode( $selected );
187
+ } else {
188
+ $selected = (int) $selected;
189
+ }
190
+ }
191
+ if ( $customTaxonomyFile ) {
192
+ // First line contains metadata, ignore it
193
+ fgets( $customTaxonomyFile ); // phpcs:ignore
194
+ while ( $line = fgets( $customTaxonomyFile ) ) { // phpcs:ignore
195
+ list( $catId, $cat ) = explode( ',', $line );
196
+ $catId = (int) trim( $catId );
197
+ $cat = trim( $cat );
198
+ $is_selected = selected( $selected, is_numeric( $selected ) ? $catId : $cat, false );
199
+ $str .= "<option value='{$catId}' {$is_selected} >{$cat}</option>";
200
+ }
201
+ }
202
+ if ( ! empty( $str ) ) {
203
+ $str = '<option></option>' . $str;
204
+ }
205
+
206
+ return $str;
207
+ }
208
+
209
+ /**
210
+ * Read txt file which contains facebook taxonomy list
211
+ *
212
+ * @return array
213
+ */
214
+ public function facebookTaxonomyArray() {
215
+ // Get All Facebook Taxonomies
216
+ $fileName = WOO_FEED_FREE_ADMIN_PATH . '/partials/templates/taxonomies/fb_taxonomy.txt';
217
+ $customTaxonomyFile = fopen( $fileName, 'r' ); // phpcs:ignore
218
+ $taxonomy = array();
219
+ if ( $customTaxonomyFile ) {
220
+ // First line contains metadata, ignore it
221
+ fgets( $customTaxonomyFile ); // phpcs:ignore
222
+ while ( $line = fgets( $customTaxonomyFile ) ) { // phpcs:ignore
223
+ list( $catId, $cat ) = explode( ',', $line );
224
+ $taxonomy[] = array(
225
+ 'value' => absint( trim( $catId ) ),
226
+ 'text' => trim( $cat ),
227
+ );
228
+ }
229
+ }
230
+ $taxonomy = array_filter( $taxonomy );
231
+
232
+ return $taxonomy;
233
+ }
234
+
235
  /**
236
  * Get product related post meta keys (filtered)
237
  *
395
  'availability' => esc_html__( 'Availability', 'woo-feed' ),
396
  'availability_date' => esc_html__( 'Availability Date', 'woo-feed'),
397
  'quantity' => esc_html__( 'Quantity', 'woo-feed' ),
398
+ 'currency' => esc_html__( 'Currency', 'woo-feed' ),
399
  'price' => esc_html__( 'Regular Price', 'woo-feed' ),
400
  'current_price' => esc_html__( 'Price', 'woo-feed' ),
401
  'sale_price' => esc_html__( 'Sale Price', 'woo-feed' ),
818
  return $options;
819
  }
820
 
821
+ /**
822
+ * Dropdown of Facebook Template
823
+ *
824
+ * @param string $selected
825
+ *
826
+ * @return string
827
+ */
828
+ public function facebookAttributesDropdown( $selected = '' ) {
829
+ $options = $this->get_cached_dropdown( 'facebookAttributesDropdown', $selected );
830
+
831
+ if ( false === $options ) {
832
+ $attributes = new Woo_Feed_Default_Attributes();
833
+ return $this->cache_dropdown( 'facebookAttributesDropdown', $attributes->facebookAttributes(), $selected );
834
+ }
835
+ return $options;
836
+ }
837
+
838
  /**
839
  * Dropdown of Google Local Inventory Ads Template
840
  *
1086
  return $options;
1087
  }
1088
 
 
 
 
 
 
 
 
 
 
 
 
 
1089
  /**
1090
  * Pinterest Attribute list
1091
  * Alias of google attribute dropdown for pinterest
includes/classes/class-woo-feed-products-v3.php CHANGED
@@ -162,6 +162,11 @@ class Woo_Feed_Products_v3
162
  'section_name',
163
  'attribute_name',
164
  'attribute_value',
 
 
 
 
 
165
  );
166
  /**
167
  * XML Wrapper Array
@@ -217,6 +222,11 @@ class Woo_Feed_Products_v3
217
  'section_name',
218
  'attribute_name',
219
  'attribute_value',
 
 
 
 
 
220
  ),
221
  'bing' => array(
222
  'shipping_country',
@@ -882,7 +892,11 @@ class Woo_Feed_Products_v3
882
  $ins = 0; // Installment Index
883
  $installment = "";
884
  $product_detail = '';
 
 
885
  $pd = 0;
 
 
886
 
887
 
888
  // Format Shipping and Tax data for CSV and TXT feed only for google and facebook
@@ -924,6 +938,37 @@ class Woo_Feed_Products_v3
924
  $product_detail .= ':' . $output;
925
  }
926
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
927
  if ('installment_months' == $value) {
928
  $ins++;
929
  $installment .= $output;
@@ -1061,6 +1106,63 @@ class Woo_Feed_Products_v3
1061
  $product_detail .= '<g:attribute_value>' . $output . '</g:attribute_value>' . "\n";
1062
  }
1063
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1064
  if ('installment_months' === $value) {
1065
  if (0 == $ins) {
1066
  $installment .= '<g:installment>';
@@ -1079,6 +1181,19 @@ class Woo_Feed_Products_v3
1079
  $product_detail .= '</g:product_detail>';
1080
  }
1081
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1082
  if (1 == $s) {
1083
  $shipping .= '</g:shipping>';
1084
  }
@@ -2822,6 +2937,22 @@ class Woo_Feed_Products_v3
2822
  return apply_filters('woo_feed_filter_product_quantity', $quantity, $product, $this->config);
2823
  }
2824
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2825
  /**
2826
  * Get Store currency code.
2827
  *
162
  'section_name',
163
  'attribute_name',
164
  'attribute_value',
165
+ 'unit_price_value',
166
+ 'unit_price_currency',
167
+ 'unit_price_unit',
168
+ 'additional_variant_label',
169
+ 'additional_variant_value',
170
  );
171
  /**
172
  * XML Wrapper Array
222
  'section_name',
223
  'attribute_name',
224
  'attribute_value',
225
+ 'unit_price_value',
226
+ 'unit_price_currency',
227
+ 'unit_price_unit',
228
+ 'additional_variant_label',
229
+ 'additional_variant_value',
230
  ),
231
  'bing' => array(
232
  'shipping_country',
892
  $ins = 0; // Installment Index
893
  $installment = "";
894
  $product_detail = '';
895
+ $unit_price = '';
896
+ $additional_variant_attribute = '';
897
  $pd = 0;
898
+ $up = 0; //Unit Price for facebook
899
+ $av = 0; //Additional Variant Attribute for facebook
900
 
901
 
902
  // Format Shipping and Tax data for CSV and TXT feed only for google and facebook
938
  $product_detail .= ':' . $output;
939
  }
940
 
941
+ //facebook nested attributes
942
+ if( isset($this->config['provider']) && "facebook" === $this->config['provider'] ) {
943
+ if ('unit_price_value' == $value) {
944
+ $up++;
945
+ $unit_price .= $output;
946
+ }
947
+ if ('unit_price_currency' == $value) {
948
+ $unit_price .= ':' . $output;
949
+ }
950
+ if ('unit_price_unit' == $value) {
951
+ $unit_price .= ':' . $output;
952
+ }
953
+
954
+ if ('additional_variant_label' == $value) {
955
+ $av++;
956
+ $additional_variant_attribute .= $output;
957
+ }
958
+ if ('additional_variant_value' == $value) {
959
+ $additional_variant_attribute .= ':' . $output;
960
+ }
961
+
962
+ if (0 < $up) {
963
+ $this->products[$this->pi]["unit_price"] = $unit_price;
964
+ }
965
+
966
+ if (0 < $av) {
967
+ $this->products[$this->pi]["additional_variant_attribute"] = $additional_variant_attribute;
968
+ }
969
+ }
970
+
971
+
972
  if ('installment_months' == $value) {
973
  $ins++;
974
  $installment .= $output;
1106
  $product_detail .= '<g:attribute_value>' . $output . '</g:attribute_value>' . "\n";
1107
  }
1108
 
1109
+ if( isset($this->config['provider']) && "facebook" === $this->config['provider'] ) {
1110
+
1111
+ // unit_price configure
1112
+ if ('unit_price_value' == $value) {
1113
+ if (0 == $up) {
1114
+ $unit_price .= '<unit_price>';
1115
+ $up = 1;
1116
+ } else {
1117
+ $unit_price .= '</unit_price>' . "\n";
1118
+ $unit_price .= '<unit_price>';
1119
+ }
1120
+ } elseif (!in_array('unit_price_value', $merchantAttributes) && 'unit_price_currency' == $value) {
1121
+ if (0 == $up) {
1122
+ $unit_price .= '<unit_price>';
1123
+ $up = 1;
1124
+ } else {
1125
+ $unit_price .= '</unit_price>' . "\n";
1126
+ $unit_price .= '<unit_price>';
1127
+ }
1128
+ }
1129
+
1130
+ if ('unit_price_value' == $value) {
1131
+ $unit_price .= '<value>' . $output . '</value>' . "\n";
1132
+ } elseif ('unit_price_currency' == $value) {
1133
+ $unit_price .= '<currency>' . $output . '</currency>' . "\n";
1134
+ } elseif ('unit_price_unit' == $value) {
1135
+ $unit_price .= '<unit>' . $output . '</unit>' . "\n";
1136
+ }
1137
+
1138
+ // additional_variant_attribute configure
1139
+ if ('additional_variant_label' == $value) {
1140
+ if (0 == $av) {
1141
+ $additional_variant_attribute .= '<additional_variant_attribute>';
1142
+ $av = 1;
1143
+ } else {
1144
+ $additional_variant_attribute .= '</additional_variant_attribute>' . "\n";
1145
+ $additional_variant_attribute .= '<additional_variant_attribute>';
1146
+ }
1147
+ } elseif (!in_array('additional_variant_label', $merchantAttributes) && 'additional_variant_value' == $value) {
1148
+ if (0 == $av) {
1149
+ $additional_variant_attribute .= '<additional_variant_attribute>';
1150
+ $av = 1;
1151
+ } else {
1152
+ $additional_variant_attribute .= '</additional_variant_attribute>' . "\n";
1153
+ $additional_variant_attribute .= '<additional_variant_attribute>';
1154
+ }
1155
+ }
1156
+
1157
+ if ('additional_variant_label' == $value) {
1158
+ $additional_variant_attribute .= '<label>' . $output . '</label>' . "\n";
1159
+ } elseif ('additional_variant_value' == $value) {
1160
+ $additional_variant_attribute .= '<value>' . $output . '</value>' . "\n";
1161
+ }
1162
+
1163
+ }
1164
+
1165
+
1166
  if ('installment_months' === $value) {
1167
  if (0 == $ins) {
1168
  $installment .= '<g:installment>';
1181
  $product_detail .= '</g:product_detail>';
1182
  }
1183
 
1184
+ if( isset($this->config['provider']) && "facebook" === $this->config['provider'] ) {
1185
+ if (1 == $up) {
1186
+ $unit_price .= '</unit_price>';
1187
+ }
1188
+
1189
+ if (1 == $av) {
1190
+ $additional_variant_attribute .= '</additional_variant_attribute>';
1191
+ }
1192
+
1193
+ $this->feedBody .= $unit_price;
1194
+ $this->feedBody .= $additional_variant_attribute;
1195
+ }
1196
+
1197
  if (1 == $s) {
1198
  $shipping .= '</g:shipping>';
1199
  }
2937
  return apply_filters('woo_feed_filter_product_quantity', $quantity, $product, $this->config);
2938
  }
2939
 
2940
+ /**
2941
+ * Get Product Currency
2942
+ *
2943
+ * @param WC_Product $product
2944
+ *
2945
+ * @return mixed
2946
+ * @since 4.4.39
2947
+ *
2948
+ */
2949
+ protected function currency($product)
2950
+ {
2951
+ $quantity = get_option( 'woocommerce_currency' );
2952
+
2953
+ return apply_filters('woo_feed_filter_product_currency', $quantity, $product, $this->config);
2954
+ }
2955
+
2956
  /**
2957
  * Get Store currency code.
2958
  *
includes/helper.php CHANGED
@@ -590,12 +590,13 @@ if (!function_exists('woo_feed_merchant_require_google_category')) {
590
  'google_shopping_action',
591
  'google_local',
592
  'google_local_inventory',
 
593
  'adroll',
594
  'smartly.io',
595
- 'facebook',
596
  'pinterest',
597
  'rakuten.de',
598
  ],
 
599
  'google_product_category' => ['rakuten.de'],
600
  'google_category_id' => ['daisycon', 'daisycon_automotive', 'daisycon_books', 'daisycon_cosmetics', 'daisycon_daily_offers', 'daisycon_electronics', 'daisycon_food_drinks', 'daisycon_home_garden', 'daisycon_housing', 'daisycon_fashion', 'daisycon_studies_trainings', 'daisycon_telecom_accessories', 'daisycon_telecom_all_in_one', 'daisycon_telecom_gsm_subscription', 'daisycon_telecom_gsm', 'daisycon_telecom_sim', 'daisycon_magazines', 'daisycon_holidays_accommodations', 'daisycon_holidays_accommodations_and_transport', 'daisycon_holidays_trips', 'daisycon_work_jobs'],
601
  ];
@@ -3165,6 +3166,10 @@ if (!function_exists('woo_feed_category_mapping')) {
3165
  $mappingData = woo_feed_array_sanitize($_POST);
3166
  $oldMapping = maybe_unserialize(get_option($mappingOption, array()));
3167
 
 
 
 
 
3168
  # Delete product attribute drop-down cache
3169
  delete_transient('__woo_feed_cache_woo_feed_dropdown_product_attributes');
3170
 
590
  'google_shopping_action',
591
  'google_local',
592
  'google_local_inventory',
593
+ 'facebook',
594
  'adroll',
595
  'smartly.io',
 
596
  'pinterest',
597
  'rakuten.de',
598
  ],
599
+ 'fb_product_category' => ['facebook'],
600
  'google_product_category' => ['rakuten.de'],
601
  'google_category_id' => ['daisycon', 'daisycon_automotive', 'daisycon_books', 'daisycon_cosmetics', 'daisycon_daily_offers', 'daisycon_electronics', 'daisycon_food_drinks', 'daisycon_home_garden', 'daisycon_housing', 'daisycon_fashion', 'daisycon_studies_trainings', 'daisycon_telecom_accessories', 'daisycon_telecom_all_in_one', 'daisycon_telecom_gsm_subscription', 'daisycon_telecom_gsm', 'daisycon_telecom_sim', 'daisycon_magazines', 'daisycon_holidays_accommodations', 'daisycon_holidays_accommodations_and_transport', 'daisycon_holidays_trips', 'daisycon_work_jobs'],
602
  ];
3166
  $mappingData = woo_feed_array_sanitize($_POST);
3167
  $oldMapping = maybe_unserialize(get_option($mappingOption, array()));
3168
 
3169
+ error_log("mapping name " . $mappingOption);
3170
+ error_log("mapping data " . print_r($mappingData, true));
3171
+ error_log("old data " . print_r($oldMapping, true));
3172
+
3173
  # Delete product attribute drop-down cache
3174
  delete_transient('__woo_feed_cache_woo_feed_dropdown_product_attributes');
3175
 
includes/template-configs.php CHANGED
@@ -60,14 +60,14 @@ return array(
60
  'limit' => array('','','','','','','','','','','','','','','','','','','','',),
61
  ),
62
  'facebook' => array(
63
- 'mattributes' => array('id','title','description','item_group_id','link','product_type','current_category','image','condition','availability','price','sale_price','sku','brand','inventory','images_1','images_2','images_3','images_4','images_5',),
64
- 'prefix' => array('','','','','','','','','','','','','','','','','','','','',),
65
- 'type' => array('attribute','attribute','attribute','attribute','attribute','attribute','pattern','attribute','pattern','attribute','attribute','attribute','attribute','pattern','attribute','attribute','attribute','attribute','attribute','attribute',),
66
- 'attributes' => array('id','title','description','item_group_id','link','product_type','','image','','availability','price','current_price','sku','','quantity','image_1','image_2','image_3','image_4','image_5',),
67
- 'default' => array('','','','','','','','','new','','','','',$this->brand_pattern,'','','','','','',),
68
- 'suffix' => array('','','','','','','','','','',' ' . $this->currency,' ' . $this->currency,'','','','','','','','',),
69
- 'output_type' => array('1','1','11','1','1','1','1','1','1','1','6','6','1','1','1','1','1','1','1','1',),
70
- 'limit' => array('','','','','','','','','','','','','','','','','','','','',),
71
  ),
72
  'pinterest_rss' => array(
73
  'mattributes' => array('title','description','link','image','pubDate','guid',),
60
  'limit' => array('','','','','','','','','','','','','','','','','','','','',),
61
  ),
62
  'facebook' => array(
63
+ 'mattributes' => array('id','title','description','item_group_id','link','product_type','fb_product_category','image','condition','availability','price','sale_price','brand','images_1','images_2','images_3','images_4','images_5',),
64
+ 'prefix' => array('','','','','','','','','','','','','','','','','','',),
65
+ 'type' => array('attribute','attribute','attribute','attribute','attribute','attribute','pattern','attribute','pattern','attribute','attribute','attribute','pattern','attribute','attribute','attribute','attribute','attribute',),
66
+ 'attributes' => array('id','title','description','item_group_id','link','product_type','','image','','availability','price','current_price','','image_1','image_2','image_3','image_4','image_5',),
67
+ 'default' => array('','','','','','','','','new','','','',$this->brand_pattern,'','','','','',),
68
+ 'suffix' => array('','','','','','','','','','',' ' . $this->currency,' ' . $this->currency,'','','','','','',),
69
+ 'output_type' => array('1','1','11','1','1','1','1','1','1','1','6','6','1','1','1','1','1','1',),
70
+ 'limit' => array('','','','','','','','','','','','','','','','','','',),
71
  ),
72
  'pinterest_rss' => array(
73
  'mattributes' => array('title','description','link','image','pubDate','guid',),
languages/woo-feed.pot CHANGED
@@ -12,11 +12,11 @@ msgstr ""
12
  "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
13
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
14
 
15
- #: woo-feed.php:232, woo-feed.php:352, woo-feed.php:427, woo-feed.php:783, woo-feed.php:823, woo-feed.php:843, woo-feed.php:869
16
  msgid "Unauthorized Action."
17
  msgstr ""
18
 
19
- #: woo-feed.php:237, woo-feed.php:356, includes/helper.php:852, includes/helper.php:1903, includes/helper.php:2944, includes/helper.php:2973, includes/helper.php:3361, includes/helper.php:3559, includes/helper.php:3587, includes/helper.php:4999, includes/helper.php:5508
20
  msgid "Invalid Request."
21
  msgstr ""
22
 
@@ -64,99 +64,99 @@ msgstr ""
64
  msgid "Invalid Merchant"
65
  msgstr ""
66
 
67
- #: admin/class-woo-feed-admin.php:148, includes/helper.php:817, includes/helper.php:930, includes/helper.php:911, includes/helper.php:899, includes/helper.php:887
68
  msgid "N/A"
69
  msgstr ""
70
 
71
- #: admin/class-woo-feed-admin.php:149
72
  msgid "Generating..."
73
  msgstr ""
74
 
75
- #: admin/class-woo-feed-admin.php:150
76
  msgid "Learn More.."
77
  msgstr ""
78
 
79
- #: admin/class-woo-feed-admin.php:152, includes/helper.php:3279, admin/partials/woo-feed-edit-config.php:66
80
  msgid "Select A Category"
81
  msgstr ""
82
 
83
- #: admin/class-woo-feed-admin.php:153
84
  msgid "Loading Template..."
85
  msgstr ""
86
 
87
- #: admin/class-woo-feed-admin.php:154
88
  msgid "Delivering Configuration..."
89
  msgstr ""
90
 
91
- #: admin/class-woo-feed-admin.php:155
92
  msgid "Saving Configuration..."
93
  msgstr ""
94
 
95
- #: admin/class-woo-feed-admin.php:156
96
  msgid "Wait! Checking Extensions ..."
97
  msgstr ""
98
 
99
- #: admin/class-woo-feed-admin.php:157
100
  msgid "Warning! Enable PHP ssh2 extension to use SFTP. Contact your server administrator."
101
  msgstr ""
102
 
103
- #: admin/class-woo-feed-admin.php:158
104
  msgid "SFTP Available!"
105
  msgstr ""
106
 
107
- #: admin/class-woo-feed-admin.php:159
108
  msgid "Please add one or more items to continue."
109
  msgstr ""
110
 
111
- #: admin/class-woo-feed-admin.php:161
112
  msgid "Are you sure you want to delete this item?"
113
  msgstr ""
114
 
115
- #: admin/class-woo-feed-admin.php:162
116
  msgid "Are you sure you want to delete selected items?"
117
  msgstr ""
118
 
119
- #: admin/class-woo-feed-admin.php:173
120
  msgid "There was an error processing ajax request."
121
  msgstr ""
122
 
123
- #: admin/class-woo-feed-admin.php:209
124
  msgid "Get Pro"
125
  msgstr ""
126
 
127
- #: admin/class-woo-feed-admin.php:211, admin/class-woo-feed-admin.php:242
128
  msgid "Docs"
129
  msgstr ""
130
 
131
- #: admin/class-woo-feed-admin.php:213, admin/class-woo-feed-admin.php:240, admin/class-woo-feed-admin.php:240, admin/partials/woo-feed-settings.php:17
132
  msgid "Settings"
133
  msgstr ""
134
 
135
- #: admin/class-woo-feed-admin.php:235, admin/class-woo-feed-admin.php:235, includes/classes/class-woo-feed-admin-message.php:121, includes/classes/class-woo-feed-webappick-api.php:295
136
  msgid "CTX Feed"
137
  msgstr ""
138
 
139
- #: admin/class-woo-feed-admin.php:236, admin/class-woo-feed-admin.php:236
140
  msgid "Manage Feeds"
141
  msgstr ""
142
 
143
- #: admin/class-woo-feed-admin.php:237, admin/class-woo-feed-admin.php:237
144
  msgid "Make Feed"
145
  msgstr ""
146
 
147
- #: admin/class-woo-feed-admin.php:238, admin/class-woo-feed-admin.php:238, admin/partials/woo-feed-category-mapping.php:25
148
  msgid "Category Mapping"
149
  msgstr ""
150
 
151
- #: admin/class-woo-feed-admin.php:239, admin/class-woo-feed-admin.php:239, includes/classes/class-woo-feed-dropdown.php:527
152
  msgid "WP Options"
153
  msgstr ""
154
 
155
- #: admin/class-woo-feed-admin.php:241, admin/class-woo-feed-admin.php:241
156
  msgid "Status"
157
  msgstr ""
158
 
159
- #: admin/class-woo-feed-admin.php:242, includes/classes/class-woo-feed-admin-message.php:129, includes/classes/class-woo-feed-webappick-api.php:181
160
  msgid "Documentation"
161
  msgstr ""
162
 
@@ -168,7 +168,7 @@ msgstr ""
168
  msgid "mappings"
169
  msgstr ""
170
 
171
- #: admin/class-woo-feed-category-list.php:81, admin/class-woo-feed-category-list.php:122, admin/class-woo-feed-category-list.php:217, admin/class-woo-feed-manage-list.php:163, admin/class-woo-feed-manage-list.php:271, includes/helper.php:3640
172
  msgid "Edit"
173
  msgstr ""
174
 
@@ -227,7 +227,7 @@ msgstr ""
227
  msgid "Copy To Clipboard"
228
  msgstr ""
229
 
230
- #: admin/class-woo-feed-manage-list.php:117, includes/helper.php:952
231
  msgid "View"
232
  msgstr ""
233
 
@@ -433,307 +433,307 @@ msgstr ""
433
  msgid "1 Month"
434
  msgstr ""
435
 
436
- #: includes/helper.php:426, includes/helper.php:2063
437
  msgid "1 Week"
438
  msgstr ""
439
 
440
- #: includes/helper.php:427, includes/helper.php:2064
441
  msgid "24 Hours"
442
  msgstr ""
443
 
444
- #: includes/helper.php:428, includes/helper.php:2065
445
  msgid "12 Hours"
446
  msgstr ""
447
 
448
- #: includes/helper.php:429, includes/helper.php:2066
449
  msgid "6 Hours"
450
  msgstr ""
451
 
452
- #: includes/helper.php:430, includes/helper.php:2067
453
  msgid "1 Hours"
454
  msgstr ""
455
 
456
- #: includes/helper.php:828
457
  msgid "Watch Now"
458
  msgstr ""
459
 
460
- #: includes/helper.php:823, includes/helper.php:890
461
  msgid "Read Article"
462
  msgstr ""
463
 
464
- #: includes/helper.php:926
465
  msgid "Support Docs:"
466
  msgstr ""
467
 
468
- #: includes/helper.php:907
469
  msgid "Supported File Types:"
470
  msgstr ""
471
 
472
- #: includes/helper.php:895
473
  msgid "Video Documentation:"
474
  msgstr ""
475
 
476
- #: includes/helper.php:902
477
  msgid "Watch now"
478
  msgstr ""
479
 
480
- #: includes/helper.php:883
481
  msgid "Feed Specification:"
482
  msgstr ""
483
 
484
- #: includes/helper.php:953
485
  msgid "Open Feed File"
486
  msgstr ""
487
 
488
- #: includes/helper.php:1758, includes/helper.php:1759, includes/helper.php:1729, includes/helper.php:1729, includes/helper.php:1904, includes/helper.php:1967, includes/helper.php:1968, includes/helper.php:1943, includes/helper.php:1943, libs/WebAppick/AppServices/Insights.php:813, libs/WebAppick/AppServices/Promotions.php:362
489
  msgid "Invalid Request"
490
  msgstr ""
491
 
492
- #: includes/helper.php:1789
493
  msgid "Empty File Uploaded. Try again."
494
  msgstr ""
495
 
496
- #: includes/helper.php:1790
497
  msgid "Empty File"
498
  msgstr ""
499
 
500
- #: includes/helper.php:1793, includes/helper.php:1804, includes/helper.php:1816, includes/helper.php:1827, includes/helper.php:1841, includes/helper.php:1851, includes/helper.php:1863, includes/helper.php:1907
501
  msgid "&laquo; Back"
502
  msgstr ""
503
 
504
- #: includes/helper.php:1800
505
  msgid "Unable to read file content"
506
  msgstr ""
507
 
508
- #: includes/helper.php:1801, includes/helper.php:1813, includes/helper.php:1824, includes/helper.php:1838, includes/helper.php:1848, includes/helper.php:1860
509
  msgid "Invalid File"
510
  msgstr ""
511
 
512
- #: includes/helper.php:1812
513
  msgid "Unable to read data from file."
514
  msgstr ""
515
 
516
- #: includes/helper.php:1823
517
  msgid "Unable to read file info."
518
  msgstr ""
519
 
520
- #: includes/helper.php:1837
521
  msgid "Unable to read feed data from file."
522
  msgstr ""
523
 
524
- #: includes/helper.php:1847
525
  msgid "Unable to verify the file."
526
  msgstr ""
527
 
528
- #: includes/helper.php:1859
529
  msgid "Invalid or corrupted config file."
530
  msgstr ""
531
 
532
- #: includes/helper.php:1879
533
  msgid " Imported"
534
  msgstr ""
535
 
536
- #: includes/helper.php:2908
537
  msgid "Brand"
538
  msgstr ""
539
 
540
- #: includes/helper.php:2909
541
  msgid "GTIN"
542
  msgstr ""
543
 
544
- #: includes/helper.php:2910
545
  msgid "MPN"
546
  msgstr ""
547
 
548
- #: includes/helper.php:2911
549
  msgid "EAN"
550
  msgstr ""
551
 
552
- #: includes/helper.php:2912
553
  msgid "ISBN"
554
  msgstr ""
555
 
556
- #: includes/helper.php:2913
557
  msgid "Age group"
558
  msgstr ""
559
 
560
- #: includes/helper.php:2914
561
  msgid "Gender"
562
  msgstr ""
563
 
564
- #: includes/helper.php:2915
565
  msgid "Material"
566
  msgstr ""
567
 
568
- #: includes/helper.php:2916
569
  msgid "Cost of good sold"
570
  msgstr ""
571
 
572
- #: includes/helper.php:2917, includes/classes/class-woo-feed-dropdown.php:332, libs/WebAppick/Attributes/AvailabilityDate.php:47, libs/WebAppick/Attributes/AvailabilityDate.php:77
573
  msgid "Availability Date"
574
  msgstr ""
575
 
576
- #: includes/helper.php:2918
577
  msgid "Unit"
578
  msgstr ""
579
 
580
- #: includes/helper.php:2919, includes/classes/class-woo-feed-dropdown.php:401
581
  msgid "Unit Price Measure"
582
  msgstr ""
583
 
584
- #: includes/helper.php:2920, includes/classes/class-woo-feed-dropdown.php:402
585
  msgid "Unit Price Base Measure"
586
  msgstr ""
587
 
588
- #: includes/helper.php:2921
589
  msgid "Custom field 0"
590
  msgstr ""
591
 
592
- #: includes/helper.php:2922
593
  msgid "Custom field 1"
594
  msgstr ""
595
 
596
- #: includes/helper.php:2923
597
  msgid "Custom field 2"
598
  msgstr ""
599
 
600
- #: includes/helper.php:2924
601
  msgid "Custom field 3"
602
  msgstr ""
603
 
604
- #: includes/helper.php:2925
605
  msgid "Custom field 4"
606
  msgstr ""
607
 
608
- #: includes/helper.php:2994, includes/helper.php:3086
609
  msgid "CUSTOM FIELDS by CTX Feed"
610
  msgstr ""
611
 
612
- #: includes/helper.php:3011
613
  msgid "Set product "
614
  msgstr ""
615
 
616
- #: includes/helper.php:3011
617
  msgid " here."
618
  msgstr ""
619
 
620
- #: includes/helper.php:3198
621
  msgid "Another category mapping exists with the same name."
622
  msgstr ""
623
 
624
- #: includes/helper.php:3207
625
  msgid "Failed To Add Mapping"
626
  msgstr ""
627
 
628
- #: includes/helper.php:3203
629
  msgid "Mapping Added Successfully"
630
  msgstr ""
631
 
632
- #: includes/helper.php:3172
633
  msgid "Mapping Not Changed"
634
  msgstr ""
635
 
636
- #: includes/helper.php:3182
637
  msgid "Failed To Updated Mapping"
638
  msgstr ""
639
 
640
- #: includes/helper.php:3178
641
  msgid "Mapping Updated Successfully"
642
  msgstr ""
643
 
644
- #: includes/helper.php:3299
645
  msgid "Copy this category to subcategories"
646
  msgstr ""
647
 
648
- #: includes/helper.php:3330
649
  msgid "Clear Cache"
650
  msgstr ""
651
 
652
- #: includes/helper.php:3555, includes/helper.php:3584
653
  msgid "Something is wrong."
654
  msgstr ""
655
 
656
- #: includes/helper.php:3553
657
  msgid "User meta updated successfully."
658
  msgstr ""
659
 
660
- #: includes/helper.php:3632, includes/helper.php:3634
661
  msgid "by CTX Feed"
662
  msgstr ""
663
 
664
- #: includes/helper.php:3635
665
  msgid "All"
666
  msgstr ""
667
 
668
- #: includes/helper.php:3636
669
  msgid "Parent"
670
  msgstr ""
671
 
672
- #: includes/helper.php:3637
673
  msgid "Parent:"
674
  msgstr ""
675
 
676
- #: includes/helper.php:3638
677
  msgid "New"
678
  msgstr ""
679
 
680
- #: includes/helper.php:3638, libs/WebAppick/AppServices/Insights.php:977
681
  msgid "Name"
682
  msgstr ""
683
 
684
- #: includes/helper.php:3639
685
  msgid "Add New"
686
  msgstr ""
687
 
688
- #: includes/helper.php:3641
689
  msgid "Update"
690
  msgstr ""
691
 
692
- #: includes/helper.php:3642
693
  msgid "Separate"
694
  msgstr ""
695
 
696
- #: includes/helper.php:3642
697
  msgid "with commas"
698
  msgstr ""
699
 
700
- #: includes/helper.php:3643
701
  msgid "Search"
702
  msgstr ""
703
 
704
- #: includes/helper.php:3644
705
  msgid "Add or remove"
706
  msgstr ""
707
 
708
- #: includes/helper.php:3645
709
  msgid "Choose from the most used"
710
  msgstr ""
711
 
712
- #: includes/helper.php:4687
713
  msgid "Option Successfully Added."
714
  msgstr ""
715
 
716
- #: includes/helper.php:4678
717
  msgid "Option Already Added."
718
  msgstr ""
719
 
720
- #: includes/helper.php:5413
721
  msgid "Delivery up to 30 days"
722
  msgstr ""
723
 
724
- #: includes/helper.php:5411
725
  msgid "Delivery 1 to 3 days"
726
  msgstr ""
727
 
728
- #: includes/helper.php:5516
729
  msgid "Feed data is empty. Can't duplicate feed."
730
  msgstr ""
731
 
732
- #: includes/helper.php:5532
733
  msgid "Unable to save the duplicate feed data."
734
  msgstr ""
735
 
736
- #: includes/helper.php:5542
737
  msgid "Feed Successfully Duplicated, but unable to generate the data file. Please click the \"Regenerate Button\""
738
  msgstr ""
739
 
@@ -906,19 +906,19 @@ msgstr ""
906
  msgid "Command"
907
  msgstr ""
908
 
909
- #: admin/partials/woo-feed-edit-config.php:53, admin/partials/woo-feed-edit-config.php:124
910
  msgid "Attribute"
911
  msgstr ""
912
 
913
- #: admin/partials/woo-feed-edit-config.php:54, admin/partials/woo-feed-edit-config.php:125
914
  msgid "Pattern (Static Value)"
915
  msgstr ""
916
 
917
- #: admin/partials/woo-feed-edit-config.php:82, admin/partials/woo-feed-edit-config.php:141
918
  msgid "Select Output Type"
919
  msgstr ""
920
 
921
- #: admin/partials/woo-feed-edit-config.php:156
922
  msgid "Add New Attribute"
923
  msgstr ""
924
 
@@ -1376,419 +1376,423 @@ msgstr ""
1376
  msgid "Settings Updated."
1377
  msgstr ""
1378
 
1379
- #: includes/classes/class-woo-feed-dropdown.php:309, includes/classes/class-woo-feed-products.php:1784
1380
  msgid "Primary Attributes"
1381
  msgstr ""
1382
 
1383
- #: includes/classes/class-woo-feed-dropdown.php:310, includes/classes/class-woo-feed-products.php:1711
1384
  msgid "Product Id"
1385
  msgstr ""
1386
 
1387
- #: includes/classes/class-woo-feed-dropdown.php:311, includes/classes/class-woo-feed-products.php:1712
1388
  msgid "Product Title"
1389
  msgstr ""
1390
 
1391
- #: includes/classes/class-woo-feed-dropdown.php:312
1392
  msgid "Parent Title"
1393
  msgstr ""
1394
 
1395
- #: includes/classes/class-woo-feed-dropdown.php:313, includes/classes/class-woo-feed-products.php:1713
1396
  msgid "Product Description"
1397
  msgstr ""
1398
 
1399
- #: includes/classes/class-woo-feed-dropdown.php:314
1400
  msgid "Product Description (with HTML)"
1401
  msgstr ""
1402
 
1403
- #: includes/classes/class-woo-feed-dropdown.php:315, includes/classes/class-woo-feed-products.php:1714
1404
  msgid "Product Short Description"
1405
  msgstr ""
1406
 
1407
- #: includes/classes/class-woo-feed-dropdown.php:316
1408
  msgid "Parent Category"
1409
  msgstr ""
1410
 
1411
- #: includes/classes/class-woo-feed-dropdown.php:317
1412
  msgid "Parent Category ID"
1413
  msgstr ""
1414
 
1415
- #: includes/classes/class-woo-feed-dropdown.php:318
1416
  msgid "Child Category"
1417
  msgstr ""
1418
 
1419
- #: includes/classes/class-woo-feed-dropdown.php:319
1420
  msgid "Child Category ID"
1421
  msgstr ""
1422
 
1423
- #: includes/classes/class-woo-feed-dropdown.php:320
1424
  msgid "Product Category [Category Path]"
1425
  msgstr ""
1426
 
1427
- #: includes/classes/class-woo-feed-dropdown.php:321
1428
  msgid "Product Full Category [Category Full Path]"
1429
  msgstr ""
1430
 
1431
- #: includes/classes/class-woo-feed-dropdown.php:322, includes/classes/class-woo-feed-products.php:1716
1432
  msgid "Product URL"
1433
  msgstr ""
1434
 
1435
- #: includes/classes/class-woo-feed-dropdown.php:323
1436
  msgid "Parent URL"
1437
  msgstr ""
1438
 
1439
- #: includes/classes/class-woo-feed-dropdown.php:324
1440
  msgid "Canonical URL"
1441
  msgstr ""
1442
 
1443
- #: includes/classes/class-woo-feed-dropdown.php:325, includes/classes/class-woo-feed-products.php:1717
1444
  msgid "External Product URL"
1445
  msgstr ""
1446
 
1447
- #: includes/classes/class-woo-feed-dropdown.php:326
1448
  msgid "Add to Cart URL"
1449
  msgstr ""
1450
 
1451
- #: includes/classes/class-woo-feed-dropdown.php:327, includes/classes/class-woo-feed-products.php:1719
1452
  msgid "Parent Id [Group Id]"
1453
  msgstr ""
1454
 
1455
- #: includes/classes/class-woo-feed-dropdown.php:328, includes/classes/class-woo-feed-products.php:1720
1456
  msgid "SKU"
1457
  msgstr ""
1458
 
1459
- #: includes/classes/class-woo-feed-dropdown.php:329
1460
  msgid "SKU_ID"
1461
  msgstr ""
1462
 
1463
- #: includes/classes/class-woo-feed-dropdown.php:330, includes/classes/class-woo-feed-products.php:1721
1464
  msgid "Parent SKU"
1465
  msgstr ""
1466
 
1467
- #: includes/classes/class-woo-feed-dropdown.php:331, includes/classes/class-woo-feed-products.php:1722
1468
  msgid "Availability"
1469
  msgstr ""
1470
 
1471
- #: includes/classes/class-woo-feed-dropdown.php:333, includes/classes/class-woo-feed-products.php:1723
1472
  msgid "Quantity"
1473
  msgstr ""
1474
 
1475
- #: includes/classes/class-woo-feed-dropdown.php:334, includes/classes/class-woo-feed-products.php:1724
 
 
 
 
1476
  msgid "Regular Price"
1477
  msgstr ""
1478
 
1479
- #: includes/classes/class-woo-feed-dropdown.php:335, includes/classes/class-woo-feed-products.php:1725
1480
  msgid "Price"
1481
  msgstr ""
1482
 
1483
- #: includes/classes/class-woo-feed-dropdown.php:336, includes/classes/class-woo-feed-products.php:1726
1484
  msgid "Sale Price"
1485
  msgstr ""
1486
 
1487
- #: includes/classes/class-woo-feed-dropdown.php:337, includes/classes/class-woo-feed-products.php:1727
1488
  msgid "Regular Price With Tax"
1489
  msgstr ""
1490
 
1491
- #: includes/classes/class-woo-feed-dropdown.php:338, includes/classes/class-woo-feed-products.php:1728
1492
  msgid "Price With Tax"
1493
  msgstr ""
1494
 
1495
- #: includes/classes/class-woo-feed-dropdown.php:339, includes/classes/class-woo-feed-products.php:1729
1496
  msgid "Sale Price With Tax"
1497
  msgstr ""
1498
 
1499
- #: includes/classes/class-woo-feed-dropdown.php:340, includes/classes/class-woo-feed-products.php:1730
1500
  msgid "Sale Start Date"
1501
  msgstr ""
1502
 
1503
- #: includes/classes/class-woo-feed-dropdown.php:341, includes/classes/class-woo-feed-products.php:1731
1504
  msgid "Sale End Date"
1505
  msgstr ""
1506
 
1507
- #: includes/classes/class-woo-feed-dropdown.php:342
1508
  msgid "Reviewer Name"
1509
  msgstr ""
1510
 
1511
- #: includes/classes/class-woo-feed-dropdown.php:343, includes/classes/class-woo-feed-products.php:1732
1512
  msgid "Weight"
1513
  msgstr ""
1514
 
1515
- #: includes/classes/class-woo-feed-dropdown.php:344
1516
  msgid "Weight Unit"
1517
  msgstr ""
1518
 
1519
- #: includes/classes/class-woo-feed-dropdown.php:345, includes/classes/class-woo-feed-products.php:1733
1520
  msgid "Width"
1521
  msgstr ""
1522
 
1523
- #: includes/classes/class-woo-feed-dropdown.php:346, includes/classes/class-woo-feed-products.php:1734
1524
  msgid "Height"
1525
  msgstr ""
1526
 
1527
- #: includes/classes/class-woo-feed-dropdown.php:347, includes/classes/class-woo-feed-products.php:1735
1528
  msgid "Length"
1529
  msgstr ""
1530
 
1531
- #: includes/classes/class-woo-feed-dropdown.php:348
1532
  msgid "Shipping (Google Format)"
1533
  msgstr ""
1534
 
1535
- #: includes/classes/class-woo-feed-dropdown.php:349
1536
  msgid "Shipping Cost"
1537
  msgstr ""
1538
 
1539
- #: includes/classes/class-woo-feed-dropdown.php:350, includes/classes/class-woo-feed-products.php:1736
1540
  msgid "Shipping Class"
1541
  msgstr ""
1542
 
1543
- #: includes/classes/class-woo-feed-dropdown.php:351, includes/classes/class-woo-feed-products.php:1737
1544
  msgid "Product Type"
1545
  msgstr ""
1546
 
1547
- #: includes/classes/class-woo-feed-dropdown.php:352, includes/classes/class-woo-feed-products.php:1738
1548
  msgid "Variation Type"
1549
  msgstr ""
1550
 
1551
- #: includes/classes/class-woo-feed-dropdown.php:353, includes/classes/class-woo-feed-products.php:1739
1552
  msgid "Visibility"
1553
  msgstr ""
1554
 
1555
- #: includes/classes/class-woo-feed-dropdown.php:354, includes/classes/class-woo-feed-products.php:1740
1556
  msgid "Total Rating"
1557
  msgstr ""
1558
 
1559
- #: includes/classes/class-woo-feed-dropdown.php:355, includes/classes/class-woo-feed-products.php:1741
1560
  msgid "Average Rating"
1561
  msgstr ""
1562
 
1563
- #: includes/classes/class-woo-feed-dropdown.php:356, includes/classes/class-woo-feed-products.php:1742
1564
  msgid "Tags"
1565
  msgstr ""
1566
 
1567
- #: includes/classes/class-woo-feed-dropdown.php:357, includes/classes/class-woo-feed-products.php:1743
1568
  msgid "Sale Price Effective Date"
1569
  msgstr ""
1570
 
1571
- #: includes/classes/class-woo-feed-dropdown.php:358, includes/classes/class-woo-feed-products.php:1744
1572
  msgid "Is Bundle"
1573
  msgstr ""
1574
 
1575
- #: includes/classes/class-woo-feed-dropdown.php:359, includes/classes/class-woo-feed-products.php:1745
1576
  msgid "Author Name"
1577
  msgstr ""
1578
 
1579
- #: includes/classes/class-woo-feed-dropdown.php:360, includes/classes/class-woo-feed-products.php:1746
1580
  msgid "Author Email"
1581
  msgstr ""
1582
 
1583
- #: includes/classes/class-woo-feed-dropdown.php:361, includes/classes/class-woo-feed-products.php:1747
1584
  msgid "Date Created"
1585
  msgstr ""
1586
 
1587
- #: includes/classes/class-woo-feed-dropdown.php:362, includes/classes/class-woo-feed-products.php:1748
1588
  msgid "Date Updated"
1589
  msgstr ""
1590
 
1591
- #: includes/classes/class-woo-feed-dropdown.php:363
1592
  msgid "Tax"
1593
  msgstr ""
1594
 
1595
- #: includes/classes/class-woo-feed-dropdown.php:364
1596
  msgid "Tax Class"
1597
  msgstr ""
1598
 
1599
- #: includes/classes/class-woo-feed-dropdown.php:365
1600
  msgid "Tax Status"
1601
  msgstr ""
1602
 
1603
- #: includes/classes/class-woo-feed-dropdown.php:374
1604
  msgid "Custom Fields by CTX Feed"
1605
  msgstr ""
1606
 
1607
- #: includes/classes/class-woo-feed-dropdown.php:384
1608
  msgid "Subscription & Installment"
1609
  msgstr ""
1610
 
1611
- #: includes/classes/class-woo-feed-dropdown.php:388
1612
  msgid "Subscription Period"
1613
  msgstr ""
1614
 
1615
- #: includes/classes/class-woo-feed-dropdown.php:389
1616
  msgid "Subscription Period Length"
1617
  msgstr ""
1618
 
1619
- #: includes/classes/class-woo-feed-dropdown.php:390
1620
  msgid "Subscription Amount"
1621
  msgstr ""
1622
 
1623
- #: includes/classes/class-woo-feed-dropdown.php:391
1624
  msgid "Installment Months"
1625
  msgstr ""
1626
 
1627
- #: includes/classes/class-woo-feed-dropdown.php:392
1628
  msgid "Installment Amount"
1629
  msgstr ""
1630
 
1631
- #: includes/classes/class-woo-feed-dropdown.php:419
1632
  msgid "Unit Price"
1633
  msgstr ""
1634
 
1635
- #: includes/classes/class-woo-feed-dropdown.php:406
1636
  msgid "WooCommerce Germanized"
1637
  msgstr ""
1638
 
1639
- #: includes/classes/class-woo-feed-dropdown.php:427
1640
  msgid "ALL IN ONE SEO"
1641
  msgstr ""
1642
 
1643
- #: includes/classes/class-woo-feed-dropdown.php:431, includes/classes/class-woo-feed-products.php:1769
1644
  msgid "Title [All in One SEO]"
1645
  msgstr ""
1646
 
1647
- #: includes/classes/class-woo-feed-dropdown.php:432, includes/classes/class-woo-feed-products.php:1770
1648
  msgid "Description [All in One SEO]"
1649
  msgstr ""
1650
 
1651
- #: includes/classes/class-woo-feed-dropdown.php:433
1652
  msgid "Canonical URL [All in One SEO]"
1653
  msgstr ""
1654
 
1655
- #: includes/classes/class-woo-feed-dropdown.php:441
1656
  msgid "Yoast SEO"
1657
  msgstr ""
1658
 
1659
- #: includes/classes/class-woo-feed-dropdown.php:444, includes/classes/class-woo-feed-products.php:1776
1660
  msgid "Title [Yoast SEO]"
1661
  msgstr ""
1662
 
1663
- #: includes/classes/class-woo-feed-dropdown.php:445, includes/classes/class-woo-feed-products.php:1777
1664
  msgid "Description [Yoast SEO]"
1665
  msgstr ""
1666
 
1667
- #: includes/classes/class-woo-feed-dropdown.php:446
1668
  msgid "Canonical URL [Yoast SEO]"
1669
  msgstr ""
1670
 
1671
- #: includes/classes/class-woo-feed-dropdown.php:452
1672
  msgid "GTIN8 [Yoast SEO]"
1673
  msgstr ""
1674
 
1675
- #: includes/classes/class-woo-feed-dropdown.php:453
1676
  msgid "GTIN12 / UPC [Yoast SEO]"
1677
  msgstr ""
1678
 
1679
- #: includes/classes/class-woo-feed-dropdown.php:454
1680
  msgid "GTIN13 / EAN [Yoast SEO]"
1681
  msgstr ""
1682
 
1683
- #: includes/classes/class-woo-feed-dropdown.php:455
1684
  msgid "GTIN14 / ITF-14 [Yoast SEO]"
1685
  msgstr ""
1686
 
1687
- #: includes/classes/class-woo-feed-dropdown.php:456
1688
  msgid "ISBN [Yoast SEO]"
1689
  msgstr ""
1690
 
1691
- #: includes/classes/class-woo-feed-dropdown.php:457
1692
  msgid "MPN [Yoast SEO]"
1693
  msgstr ""
1694
 
1695
- #: includes/classes/class-woo-feed-dropdown.php:470
1696
  msgid "Rank Math SEO"
1697
  msgstr ""
1698
 
1699
- #: includes/classes/class-woo-feed-dropdown.php:474
1700
  msgid "Title [RankMath SEO]"
1701
  msgstr ""
1702
 
1703
- #: includes/classes/class-woo-feed-dropdown.php:475
1704
  msgid "Description [RankMath SEO]"
1705
  msgstr ""
1706
 
1707
- #: includes/classes/class-woo-feed-dropdown.php:476
1708
  msgid "Canonical URL [RankMath SEO]"
1709
  msgstr ""
1710
 
1711
- #: includes/classes/class-woo-feed-dropdown.php:477
1712
  msgid "GTIN [RankMath Pro SEO]"
1713
  msgstr ""
1714
 
1715
- #: includes/classes/class-woo-feed-dropdown.php:484, includes/classes/class-woo-feed-products.php:1793
1716
  msgid "Image Attributes"
1717
  msgstr ""
1718
 
1719
- #: includes/classes/class-woo-feed-dropdown.php:486, includes/classes/class-woo-feed-products.php:1751
1720
  msgid "Main Image"
1721
  msgstr ""
1722
 
1723
- #: includes/classes/class-woo-feed-dropdown.php:487, includes/classes/class-woo-feed-products.php:1752
1724
  msgid "Featured Image"
1725
  msgstr ""
1726
 
1727
- #: includes/classes/class-woo-feed-dropdown.php:488, includes/classes/class-woo-feed-products.php:1753
1728
  msgid "Images [Comma Separated]"
1729
  msgstr ""
1730
 
1731
- #: includes/classes/class-woo-feed-dropdown.php:489, includes/classes/class-woo-feed-products.php:1754
1732
  msgid "Additional Image 1"
1733
  msgstr ""
1734
 
1735
- #: includes/classes/class-woo-feed-dropdown.php:490, includes/classes/class-woo-feed-products.php:1755
1736
  msgid "Additional Image 2"
1737
  msgstr ""
1738
 
1739
- #: includes/classes/class-woo-feed-dropdown.php:491, includes/classes/class-woo-feed-products.php:1756
1740
  msgid "Additional Image 3"
1741
  msgstr ""
1742
 
1743
- #: includes/classes/class-woo-feed-dropdown.php:492, includes/classes/class-woo-feed-products.php:1757
1744
  msgid "Additional Image 4"
1745
  msgstr ""
1746
 
1747
- #: includes/classes/class-woo-feed-dropdown.php:493, includes/classes/class-woo-feed-products.php:1758
1748
  msgid "Additional Image 5"
1749
  msgstr ""
1750
 
1751
- #: includes/classes/class-woo-feed-dropdown.php:494, includes/classes/class-woo-feed-products.php:1759
1752
  msgid "Additional Image 6"
1753
  msgstr ""
1754
 
1755
- #: includes/classes/class-woo-feed-dropdown.php:495, includes/classes/class-woo-feed-products.php:1760
1756
  msgid "Additional Image 7"
1757
  msgstr ""
1758
 
1759
- #: includes/classes/class-woo-feed-dropdown.php:496, includes/classes/class-woo-feed-products.php:1761
1760
  msgid "Additional Image 8"
1761
  msgstr ""
1762
 
1763
- #: includes/classes/class-woo-feed-dropdown.php:497, includes/classes/class-woo-feed-products.php:1762
1764
  msgid "Additional Image 9"
1765
  msgstr ""
1766
 
1767
- #: includes/classes/class-woo-feed-dropdown.php:498, includes/classes/class-woo-feed-products.php:1763
1768
  msgid "Additional Image 10"
1769
  msgstr ""
1770
 
1771
- #: includes/classes/class-woo-feed-dropdown.php:505
1772
  msgid "Product Attributes"
1773
  msgstr ""
1774
 
1775
- #: includes/classes/class-woo-feed-dropdown.php:513, includes/classes/class-woo-feed-products.php:1813
1776
  msgid "Product Custom Attributes"
1777
  msgstr ""
1778
 
1779
- #: includes/classes/class-woo-feed-dropdown.php:520
1780
  msgid "Product Taxonomies"
1781
  msgstr ""
1782
 
1783
- #: includes/classes/class-woo-feed-dropdown.php:535
1784
  msgid "Category Mappings"
1785
  msgstr ""
1786
 
1787
- #: includes/classes/class-woo-feed-dropdown.php:541
1788
  msgid "Custom Fields & Post Metas (Premium)"
1789
  msgstr ""
1790
 
1791
- #: includes/classes/class-woo-feed-dropdown.php:582, includes/classes/class-woo-feed-products.php:1803
1792
  msgid "Select Attributes"
1793
  msgstr ""
1794
 
12
  "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
13
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
14
 
15
+ #: woo-feed.php:232, woo-feed.php:352, woo-feed.php:427, woo-feed.php:783, woo-feed.php:823, woo-feed.php:843, woo-feed.php:863, woo-feed.php:889
16
  msgid "Unauthorized Action."
17
  msgstr ""
18
 
19
+ #: woo-feed.php:237, woo-feed.php:356, includes/helper.php:853, includes/helper.php:1904, includes/helper.php:2945, includes/helper.php:2974, includes/helper.php:3366, includes/helper.php:3564, includes/helper.php:3592, includes/helper.php:5004, includes/helper.php:5513
20
  msgid "Invalid Request."
21
  msgstr ""
22
 
64
  msgid "Invalid Merchant"
65
  msgstr ""
66
 
67
+ #: admin/class-woo-feed-admin.php:159, includes/helper.php:818, includes/helper.php:931, includes/helper.php:912, includes/helper.php:900, includes/helper.php:888
68
  msgid "N/A"
69
  msgstr ""
70
 
71
+ #: admin/class-woo-feed-admin.php:160
72
  msgid "Generating..."
73
  msgstr ""
74
 
75
+ #: admin/class-woo-feed-admin.php:161
76
  msgid "Learn More.."
77
  msgstr ""
78
 
79
+ #: admin/class-woo-feed-admin.php:163, includes/helper.php:3284, admin/partials/woo-feed-edit-config.php:66
80
  msgid "Select A Category"
81
  msgstr ""
82
 
83
+ #: admin/class-woo-feed-admin.php:164
84
  msgid "Loading Template..."
85
  msgstr ""
86
 
87
+ #: admin/class-woo-feed-admin.php:165
88
  msgid "Delivering Configuration..."
89
  msgstr ""
90
 
91
+ #: admin/class-woo-feed-admin.php:166
92
  msgid "Saving Configuration..."
93
  msgstr ""
94
 
95
+ #: admin/class-woo-feed-admin.php:167
96
  msgid "Wait! Checking Extensions ..."
97
  msgstr ""
98
 
99
+ #: admin/class-woo-feed-admin.php:168
100
  msgid "Warning! Enable PHP ssh2 extension to use SFTP. Contact your server administrator."
101
  msgstr ""
102
 
103
+ #: admin/class-woo-feed-admin.php:169
104
  msgid "SFTP Available!"
105
  msgstr ""
106
 
107
+ #: admin/class-woo-feed-admin.php:170
108
  msgid "Please add one or more items to continue."
109
  msgstr ""
110
 
111
+ #: admin/class-woo-feed-admin.php:172
112
  msgid "Are you sure you want to delete this item?"
113
  msgstr ""
114
 
115
+ #: admin/class-woo-feed-admin.php:173
116
  msgid "Are you sure you want to delete selected items?"
117
  msgstr ""
118
 
119
+ #: admin/class-woo-feed-admin.php:184
120
  msgid "There was an error processing ajax request."
121
  msgstr ""
122
 
123
+ #: admin/class-woo-feed-admin.php:220
124
  msgid "Get Pro"
125
  msgstr ""
126
 
127
+ #: admin/class-woo-feed-admin.php:222, admin/class-woo-feed-admin.php:253
128
  msgid "Docs"
129
  msgstr ""
130
 
131
+ #: admin/class-woo-feed-admin.php:224, admin/class-woo-feed-admin.php:251, admin/class-woo-feed-admin.php:251, admin/partials/woo-feed-settings.php:17
132
  msgid "Settings"
133
  msgstr ""
134
 
135
+ #: admin/class-woo-feed-admin.php:246, admin/class-woo-feed-admin.php:246, includes/classes/class-woo-feed-admin-message.php:121, includes/classes/class-woo-feed-webappick-api.php:295
136
  msgid "CTX Feed"
137
  msgstr ""
138
 
139
+ #: admin/class-woo-feed-admin.php:247, admin/class-woo-feed-admin.php:247
140
  msgid "Manage Feeds"
141
  msgstr ""
142
 
143
+ #: admin/class-woo-feed-admin.php:248, admin/class-woo-feed-admin.php:248
144
  msgid "Make Feed"
145
  msgstr ""
146
 
147
+ #: admin/class-woo-feed-admin.php:249, admin/class-woo-feed-admin.php:249, admin/partials/woo-feed-category-mapping.php:25
148
  msgid "Category Mapping"
149
  msgstr ""
150
 
151
+ #: admin/class-woo-feed-admin.php:250, admin/class-woo-feed-admin.php:250, includes/classes/class-woo-feed-dropdown.php:592
152
  msgid "WP Options"
153
  msgstr ""
154
 
155
+ #: admin/class-woo-feed-admin.php:252, admin/class-woo-feed-admin.php:252
156
  msgid "Status"
157
  msgstr ""
158
 
159
+ #: admin/class-woo-feed-admin.php:253, includes/classes/class-woo-feed-admin-message.php:129, includes/classes/class-woo-feed-webappick-api.php:181
160
  msgid "Documentation"
161
  msgstr ""
162
 
168
  msgid "mappings"
169
  msgstr ""
170
 
171
+ #: admin/class-woo-feed-category-list.php:81, admin/class-woo-feed-category-list.php:122, admin/class-woo-feed-category-list.php:217, admin/class-woo-feed-manage-list.php:163, admin/class-woo-feed-manage-list.php:271, includes/helper.php:3645
172
  msgid "Edit"
173
  msgstr ""
174
 
227
  msgid "Copy To Clipboard"
228
  msgstr ""
229
 
230
+ #: admin/class-woo-feed-manage-list.php:117, includes/helper.php:953
231
  msgid "View"
232
  msgstr ""
233
 
433
  msgid "1 Month"
434
  msgstr ""
435
 
436
+ #: includes/helper.php:426, includes/helper.php:2064
437
  msgid "1 Week"
438
  msgstr ""
439
 
440
+ #: includes/helper.php:427, includes/helper.php:2065
441
  msgid "24 Hours"
442
  msgstr ""
443
 
444
+ #: includes/helper.php:428, includes/helper.php:2066
445
  msgid "12 Hours"
446
  msgstr ""
447
 
448
+ #: includes/helper.php:429, includes/helper.php:2067
449
  msgid "6 Hours"
450
  msgstr ""
451
 
452
+ #: includes/helper.php:430, includes/helper.php:2068
453
  msgid "1 Hours"
454
  msgstr ""
455
 
456
+ #: includes/helper.php:829
457
  msgid "Watch Now"
458
  msgstr ""
459
 
460
+ #: includes/helper.php:824, includes/helper.php:891
461
  msgid "Read Article"
462
  msgstr ""
463
 
464
+ #: includes/helper.php:927
465
  msgid "Support Docs:"
466
  msgstr ""
467
 
468
+ #: includes/helper.php:908
469
  msgid "Supported File Types:"
470
  msgstr ""
471
 
472
+ #: includes/helper.php:896
473
  msgid "Video Documentation:"
474
  msgstr ""
475
 
476
+ #: includes/helper.php:903
477
  msgid "Watch now"
478
  msgstr ""
479
 
480
+ #: includes/helper.php:884
481
  msgid "Feed Specification:"
482
  msgstr ""
483
 
484
+ #: includes/helper.php:954
485
  msgid "Open Feed File"
486
  msgstr ""
487
 
488
+ #: includes/helper.php:1759, includes/helper.php:1760, includes/helper.php:1730, includes/helper.php:1730, includes/helper.php:1905, includes/helper.php:1968, includes/helper.php:1969, includes/helper.php:1944, includes/helper.php:1944, libs/WebAppick/AppServices/Insights.php:813, libs/WebAppick/AppServices/Promotions.php:362
489
  msgid "Invalid Request"
490
  msgstr ""
491
 
492
+ #: includes/helper.php:1790
493
  msgid "Empty File Uploaded. Try again."
494
  msgstr ""
495
 
496
+ #: includes/helper.php:1791
497
  msgid "Empty File"
498
  msgstr ""
499
 
500
+ #: includes/helper.php:1794, includes/helper.php:1805, includes/helper.php:1817, includes/helper.php:1828, includes/helper.php:1842, includes/helper.php:1852, includes/helper.php:1864, includes/helper.php:1908
501
  msgid "&laquo; Back"
502
  msgstr ""
503
 
504
+ #: includes/helper.php:1801
505
  msgid "Unable to read file content"
506
  msgstr ""
507
 
508
+ #: includes/helper.php:1802, includes/helper.php:1814, includes/helper.php:1825, includes/helper.php:1839, includes/helper.php:1849, includes/helper.php:1861
509
  msgid "Invalid File"
510
  msgstr ""
511
 
512
+ #: includes/helper.php:1813
513
  msgid "Unable to read data from file."
514
  msgstr ""
515
 
516
+ #: includes/helper.php:1824
517
  msgid "Unable to read file info."
518
  msgstr ""
519
 
520
+ #: includes/helper.php:1838
521
  msgid "Unable to read feed data from file."
522
  msgstr ""
523
 
524
+ #: includes/helper.php:1848
525
  msgid "Unable to verify the file."
526
  msgstr ""
527
 
528
+ #: includes/helper.php:1860
529
  msgid "Invalid or corrupted config file."
530
  msgstr ""
531
 
532
+ #: includes/helper.php:1880
533
  msgid " Imported"
534
  msgstr ""
535
 
536
+ #: includes/helper.php:2909
537
  msgid "Brand"
538
  msgstr ""
539
 
540
+ #: includes/helper.php:2910
541
  msgid "GTIN"
542
  msgstr ""
543
 
544
+ #: includes/helper.php:2911
545
  msgid "MPN"
546
  msgstr ""
547
 
548
+ #: includes/helper.php:2912
549
  msgid "EAN"
550
  msgstr ""
551
 
552
+ #: includes/helper.php:2913
553
  msgid "ISBN"
554
  msgstr ""
555
 
556
+ #: includes/helper.php:2914
557
  msgid "Age group"
558
  msgstr ""
559
 
560
+ #: includes/helper.php:2915
561
  msgid "Gender"
562
  msgstr ""
563
 
564
+ #: includes/helper.php:2916
565
  msgid "Material"
566
  msgstr ""
567
 
568
+ #: includes/helper.php:2917
569
  msgid "Cost of good sold"
570
  msgstr ""
571
 
572
+ #: includes/helper.php:2918, includes/classes/class-woo-feed-dropdown.php:396, libs/WebAppick/Attributes/AvailabilityDate.php:47, libs/WebAppick/Attributes/AvailabilityDate.php:77
573
  msgid "Availability Date"
574
  msgstr ""
575
 
576
+ #: includes/helper.php:2919
577
  msgid "Unit"
578
  msgstr ""
579
 
580
+ #: includes/helper.php:2920, includes/classes/class-woo-feed-dropdown.php:466
581
  msgid "Unit Price Measure"
582
  msgstr ""
583
 
584
+ #: includes/helper.php:2921, includes/classes/class-woo-feed-dropdown.php:467
585
  msgid "Unit Price Base Measure"
586
  msgstr ""
587
 
588
+ #: includes/helper.php:2922
589
  msgid "Custom field 0"
590
  msgstr ""
591
 
592
+ #: includes/helper.php:2923
593
  msgid "Custom field 1"
594
  msgstr ""
595
 
596
+ #: includes/helper.php:2924
597
  msgid "Custom field 2"
598
  msgstr ""
599
 
600
+ #: includes/helper.php:2925
601
  msgid "Custom field 3"
602
  msgstr ""
603
 
604
+ #: includes/helper.php:2926
605
  msgid "Custom field 4"
606
  msgstr ""
607
 
608
+ #: includes/helper.php:2995, includes/helper.php:3087
609
  msgid "CUSTOM FIELDS by CTX Feed"
610
  msgstr ""
611
 
612
+ #: includes/helper.php:3012
613
  msgid "Set product "
614
  msgstr ""
615
 
616
+ #: includes/helper.php:3012
617
  msgid " here."
618
  msgstr ""
619
 
620
+ #: includes/helper.php:3203
621
  msgid "Another category mapping exists with the same name."
622
  msgstr ""
623
 
624
+ #: includes/helper.php:3212
625
  msgid "Failed To Add Mapping"
626
  msgstr ""
627
 
628
+ #: includes/helper.php:3208
629
  msgid "Mapping Added Successfully"
630
  msgstr ""
631
 
632
+ #: includes/helper.php:3177
633
  msgid "Mapping Not Changed"
634
  msgstr ""
635
 
636
+ #: includes/helper.php:3187
637
  msgid "Failed To Updated Mapping"
638
  msgstr ""
639
 
640
+ #: includes/helper.php:3183
641
  msgid "Mapping Updated Successfully"
642
  msgstr ""
643
 
644
+ #: includes/helper.php:3304
645
  msgid "Copy this category to subcategories"
646
  msgstr ""
647
 
648
+ #: includes/helper.php:3335
649
  msgid "Clear Cache"
650
  msgstr ""
651
 
652
+ #: includes/helper.php:3560, includes/helper.php:3589
653
  msgid "Something is wrong."
654
  msgstr ""
655
 
656
+ #: includes/helper.php:3558
657
  msgid "User meta updated successfully."
658
  msgstr ""
659
 
660
+ #: includes/helper.php:3637, includes/helper.php:3639
661
  msgid "by CTX Feed"
662
  msgstr ""
663
 
664
+ #: includes/helper.php:3640
665
  msgid "All"
666
  msgstr ""
667
 
668
+ #: includes/helper.php:3641
669
  msgid "Parent"
670
  msgstr ""
671
 
672
+ #: includes/helper.php:3642
673
  msgid "Parent:"
674
  msgstr ""
675
 
676
+ #: includes/helper.php:3643
677
  msgid "New"
678
  msgstr ""
679
 
680
+ #: includes/helper.php:3643, libs/WebAppick/AppServices/Insights.php:977
681
  msgid "Name"
682
  msgstr ""
683
 
684
+ #: includes/helper.php:3644
685
  msgid "Add New"
686
  msgstr ""
687
 
688
+ #: includes/helper.php:3646
689
  msgid "Update"
690
  msgstr ""
691
 
692
+ #: includes/helper.php:3647
693
  msgid "Separate"
694
  msgstr ""
695
 
696
+ #: includes/helper.php:3647
697
  msgid "with commas"
698
  msgstr ""
699
 
700
+ #: includes/helper.php:3648
701
  msgid "Search"
702
  msgstr ""
703
 
704
+ #: includes/helper.php:3649
705
  msgid "Add or remove"
706
  msgstr ""
707
 
708
+ #: includes/helper.php:3650
709
  msgid "Choose from the most used"
710
  msgstr ""
711
 
712
+ #: includes/helper.php:4692
713
  msgid "Option Successfully Added."
714
  msgstr ""
715
 
716
+ #: includes/helper.php:4683
717
  msgid "Option Already Added."
718
  msgstr ""
719
 
720
+ #: includes/helper.php:5418
721
  msgid "Delivery up to 30 days"
722
  msgstr ""
723
 
724
+ #: includes/helper.php:5416
725
  msgid "Delivery 1 to 3 days"
726
  msgstr ""
727
 
728
+ #: includes/helper.php:5521
729
  msgid "Feed data is empty. Can't duplicate feed."
730
  msgstr ""
731
 
732
+ #: includes/helper.php:5537
733
  msgid "Unable to save the duplicate feed data."
734
  msgstr ""
735
 
736
+ #: includes/helper.php:5547
737
  msgid "Feed Successfully Duplicated, but unable to generate the data file. Please click the \"Regenerate Button\""
738
  msgstr ""
739
 
906
  msgid "Command"
907
  msgstr ""
908
 
909
+ #: admin/partials/woo-feed-edit-config.php:53, admin/partials/woo-feed-edit-config.php:129
910
  msgid "Attribute"
911
  msgstr ""
912
 
913
+ #: admin/partials/woo-feed-edit-config.php:54, admin/partials/woo-feed-edit-config.php:130
914
  msgid "Pattern (Static Value)"
915
  msgstr ""
916
 
917
+ #: admin/partials/woo-feed-edit-config.php:87, admin/partials/woo-feed-edit-config.php:146
918
  msgid "Select Output Type"
919
  msgstr ""
920
 
921
+ #: admin/partials/woo-feed-edit-config.php:161
922
  msgid "Add New Attribute"
923
  msgstr ""
924
 
1376
  msgid "Settings Updated."
1377
  msgstr ""
1378
 
1379
+ #: includes/classes/class-woo-feed-dropdown.php:373, includes/classes/class-woo-feed-products.php:1784
1380
  msgid "Primary Attributes"
1381
  msgstr ""
1382
 
1383
+ #: includes/classes/class-woo-feed-dropdown.php:374, includes/classes/class-woo-feed-products.php:1711
1384
  msgid "Product Id"
1385
  msgstr ""
1386
 
1387
+ #: includes/classes/class-woo-feed-dropdown.php:375, includes/classes/class-woo-feed-products.php:1712
1388
  msgid "Product Title"
1389
  msgstr ""
1390
 
1391
+ #: includes/classes/class-woo-feed-dropdown.php:376
1392
  msgid "Parent Title"
1393
  msgstr ""
1394
 
1395
+ #: includes/classes/class-woo-feed-dropdown.php:377, includes/classes/class-woo-feed-products.php:1713
1396
  msgid "Product Description"
1397
  msgstr ""
1398
 
1399
+ #: includes/classes/class-woo-feed-dropdown.php:378
1400
  msgid "Product Description (with HTML)"
1401
  msgstr ""
1402
 
1403
+ #: includes/classes/class-woo-feed-dropdown.php:379, includes/classes/class-woo-feed-products.php:1714
1404
  msgid "Product Short Description"
1405
  msgstr ""
1406
 
1407
+ #: includes/classes/class-woo-feed-dropdown.php:380
1408
  msgid "Parent Category"
1409
  msgstr ""
1410
 
1411
+ #: includes/classes/class-woo-feed-dropdown.php:381
1412
  msgid "Parent Category ID"
1413
  msgstr ""
1414
 
1415
+ #: includes/classes/class-woo-feed-dropdown.php:382
1416
  msgid "Child Category"
1417
  msgstr ""
1418
 
1419
+ #: includes/classes/class-woo-feed-dropdown.php:383
1420
  msgid "Child Category ID"
1421
  msgstr ""
1422
 
1423
+ #: includes/classes/class-woo-feed-dropdown.php:384
1424
  msgid "Product Category [Category Path]"
1425
  msgstr ""
1426
 
1427
+ #: includes/classes/class-woo-feed-dropdown.php:385
1428
  msgid "Product Full Category [Category Full Path]"
1429
  msgstr ""
1430
 
1431
+ #: includes/classes/class-woo-feed-dropdown.php:386, includes/classes/class-woo-feed-products.php:1716
1432
  msgid "Product URL"
1433
  msgstr ""
1434
 
1435
+ #: includes/classes/class-woo-feed-dropdown.php:387
1436
  msgid "Parent URL"
1437
  msgstr ""
1438
 
1439
+ #: includes/classes/class-woo-feed-dropdown.php:388
1440
  msgid "Canonical URL"
1441
  msgstr ""
1442
 
1443
+ #: includes/classes/class-woo-feed-dropdown.php:389, includes/classes/class-woo-feed-products.php:1717
1444
  msgid "External Product URL"
1445
  msgstr ""
1446
 
1447
+ #: includes/classes/class-woo-feed-dropdown.php:390
1448
  msgid "Add to Cart URL"
1449
  msgstr ""
1450
 
1451
+ #: includes/classes/class-woo-feed-dropdown.php:391, includes/classes/class-woo-feed-products.php:1719
1452
  msgid "Parent Id [Group Id]"
1453
  msgstr ""
1454
 
1455
+ #: includes/classes/class-woo-feed-dropdown.php:392, includes/classes/class-woo-feed-products.php:1720
1456
  msgid "SKU"
1457
  msgstr ""
1458
 
1459
+ #: includes/classes/class-woo-feed-dropdown.php:393
1460
  msgid "SKU_ID"
1461
  msgstr ""
1462
 
1463
+ #: includes/classes/class-woo-feed-dropdown.php:394, includes/classes/class-woo-feed-products.php:1721
1464
  msgid "Parent SKU"
1465
  msgstr ""
1466
 
1467
+ #: includes/classes/class-woo-feed-dropdown.php:395, includes/classes/class-woo-feed-products.php:1722
1468
  msgid "Availability"
1469
  msgstr ""
1470
 
1471
+ #: includes/classes/class-woo-feed-dropdown.php:397, includes/classes/class-woo-feed-products.php:1723
1472
  msgid "Quantity"
1473
  msgstr ""
1474
 
1475
+ #: includes/classes/class-woo-feed-dropdown.php:398
1476
+ msgid "Currency"
1477
+ msgstr ""
1478
+
1479
+ #: includes/classes/class-woo-feed-dropdown.php:399, includes/classes/class-woo-feed-products.php:1724
1480
  msgid "Regular Price"
1481
  msgstr ""
1482
 
1483
+ #: includes/classes/class-woo-feed-dropdown.php:400, includes/classes/class-woo-feed-products.php:1725
1484
  msgid "Price"
1485
  msgstr ""
1486
 
1487
+ #: includes/classes/class-woo-feed-dropdown.php:401, includes/classes/class-woo-feed-products.php:1726
1488
  msgid "Sale Price"
1489
  msgstr ""
1490
 
1491
+ #: includes/classes/class-woo-feed-dropdown.php:402, includes/classes/class-woo-feed-products.php:1727
1492
  msgid "Regular Price With Tax"
1493
  msgstr ""
1494
 
1495
+ #: includes/classes/class-woo-feed-dropdown.php:403, includes/classes/class-woo-feed-products.php:1728
1496
  msgid "Price With Tax"
1497
  msgstr ""
1498
 
1499
+ #: includes/classes/class-woo-feed-dropdown.php:404, includes/classes/class-woo-feed-products.php:1729
1500
  msgid "Sale Price With Tax"
1501
  msgstr ""
1502
 
1503
+ #: includes/classes/class-woo-feed-dropdown.php:405, includes/classes/class-woo-feed-products.php:1730
1504
  msgid "Sale Start Date"
1505
  msgstr ""
1506
 
1507
+ #: includes/classes/class-woo-feed-dropdown.php:406, includes/classes/class-woo-feed-products.php:1731
1508
  msgid "Sale End Date"
1509
  msgstr ""
1510
 
1511
+ #: includes/classes/class-woo-feed-dropdown.php:407
1512
  msgid "Reviewer Name"
1513
  msgstr ""
1514
 
1515
+ #: includes/classes/class-woo-feed-dropdown.php:408, includes/classes/class-woo-feed-products.php:1732
1516
  msgid "Weight"
1517
  msgstr ""
1518
 
1519
+ #: includes/classes/class-woo-feed-dropdown.php:409
1520
  msgid "Weight Unit"
1521
  msgstr ""
1522
 
1523
+ #: includes/classes/class-woo-feed-dropdown.php:410, includes/classes/class-woo-feed-products.php:1733
1524
  msgid "Width"
1525
  msgstr ""
1526
 
1527
+ #: includes/classes/class-woo-feed-dropdown.php:411, includes/classes/class-woo-feed-products.php:1734
1528
  msgid "Height"
1529
  msgstr ""
1530
 
1531
+ #: includes/classes/class-woo-feed-dropdown.php:412, includes/classes/class-woo-feed-products.php:1735
1532
  msgid "Length"
1533
  msgstr ""
1534
 
1535
+ #: includes/classes/class-woo-feed-dropdown.php:413
1536
  msgid "Shipping (Google Format)"
1537
  msgstr ""
1538
 
1539
+ #: includes/classes/class-woo-feed-dropdown.php:414
1540
  msgid "Shipping Cost"
1541
  msgstr ""
1542
 
1543
+ #: includes/classes/class-woo-feed-dropdown.php:415, includes/classes/class-woo-feed-products.php:1736
1544
  msgid "Shipping Class"
1545
  msgstr ""
1546
 
1547
+ #: includes/classes/class-woo-feed-dropdown.php:416, includes/classes/class-woo-feed-products.php:1737
1548
  msgid "Product Type"
1549
  msgstr ""
1550
 
1551
+ #: includes/classes/class-woo-feed-dropdown.php:417, includes/classes/class-woo-feed-products.php:1738
1552
  msgid "Variation Type"
1553
  msgstr ""
1554
 
1555
+ #: includes/classes/class-woo-feed-dropdown.php:418, includes/classes/class-woo-feed-products.php:1739
1556
  msgid "Visibility"
1557
  msgstr ""
1558
 
1559
+ #: includes/classes/class-woo-feed-dropdown.php:419, includes/classes/class-woo-feed-products.php:1740
1560
  msgid "Total Rating"
1561
  msgstr ""
1562
 
1563
+ #: includes/classes/class-woo-feed-dropdown.php:420, includes/classes/class-woo-feed-products.php:1741
1564
  msgid "Average Rating"
1565
  msgstr ""
1566
 
1567
+ #: includes/classes/class-woo-feed-dropdown.php:421, includes/classes/class-woo-feed-products.php:1742
1568
  msgid "Tags"
1569
  msgstr ""
1570
 
1571
+ #: includes/classes/class-woo-feed-dropdown.php:422, includes/classes/class-woo-feed-products.php:1743
1572
  msgid "Sale Price Effective Date"
1573
  msgstr ""
1574
 
1575
+ #: includes/classes/class-woo-feed-dropdown.php:423, includes/classes/class-woo-feed-products.php:1744
1576
  msgid "Is Bundle"
1577
  msgstr ""
1578
 
1579
+ #: includes/classes/class-woo-feed-dropdown.php:424, includes/classes/class-woo-feed-products.php:1745
1580
  msgid "Author Name"
1581
  msgstr ""
1582
 
1583
+ #: includes/classes/class-woo-feed-dropdown.php:425, includes/classes/class-woo-feed-products.php:1746
1584
  msgid "Author Email"
1585
  msgstr ""
1586
 
1587
+ #: includes/classes/class-woo-feed-dropdown.php:426, includes/classes/class-woo-feed-products.php:1747
1588
  msgid "Date Created"
1589
  msgstr ""
1590
 
1591
+ #: includes/classes/class-woo-feed-dropdown.php:427, includes/classes/class-woo-feed-products.php:1748
1592
  msgid "Date Updated"
1593
  msgstr ""
1594
 
1595
+ #: includes/classes/class-woo-feed-dropdown.php:428
1596
  msgid "Tax"
1597
  msgstr ""
1598
 
1599
+ #: includes/classes/class-woo-feed-dropdown.php:429
1600
  msgid "Tax Class"
1601
  msgstr ""
1602
 
1603
+ #: includes/classes/class-woo-feed-dropdown.php:430
1604
  msgid "Tax Status"
1605
  msgstr ""
1606
 
1607
+ #: includes/classes/class-woo-feed-dropdown.php:439
1608
  msgid "Custom Fields by CTX Feed"
1609
  msgstr ""
1610
 
1611
+ #: includes/classes/class-woo-feed-dropdown.php:449
1612
  msgid "Subscription & Installment"
1613
  msgstr ""
1614
 
1615
+ #: includes/classes/class-woo-feed-dropdown.php:453
1616
  msgid "Subscription Period"
1617
  msgstr ""
1618
 
1619
+ #: includes/classes/class-woo-feed-dropdown.php:454
1620
  msgid "Subscription Period Length"
1621
  msgstr ""
1622
 
1623
+ #: includes/classes/class-woo-feed-dropdown.php:455
1624
  msgid "Subscription Amount"
1625
  msgstr ""
1626
 
1627
+ #: includes/classes/class-woo-feed-dropdown.php:456
1628
  msgid "Installment Months"
1629
  msgstr ""
1630
 
1631
+ #: includes/classes/class-woo-feed-dropdown.php:457
1632
  msgid "Installment Amount"
1633
  msgstr ""
1634
 
1635
+ #: includes/classes/class-woo-feed-dropdown.php:484
1636
  msgid "Unit Price"
1637
  msgstr ""
1638
 
1639
+ #: includes/classes/class-woo-feed-dropdown.php:471
1640
  msgid "WooCommerce Germanized"
1641
  msgstr ""
1642
 
1643
+ #: includes/classes/class-woo-feed-dropdown.php:492
1644
  msgid "ALL IN ONE SEO"
1645
  msgstr ""
1646
 
1647
+ #: includes/classes/class-woo-feed-dropdown.php:496, includes/classes/class-woo-feed-products.php:1769
1648
  msgid "Title [All in One SEO]"
1649
  msgstr ""
1650
 
1651
+ #: includes/classes/class-woo-feed-dropdown.php:497, includes/classes/class-woo-feed-products.php:1770
1652
  msgid "Description [All in One SEO]"
1653
  msgstr ""
1654
 
1655
+ #: includes/classes/class-woo-feed-dropdown.php:498
1656
  msgid "Canonical URL [All in One SEO]"
1657
  msgstr ""
1658
 
1659
+ #: includes/classes/class-woo-feed-dropdown.php:506
1660
  msgid "Yoast SEO"
1661
  msgstr ""
1662
 
1663
+ #: includes/classes/class-woo-feed-dropdown.php:509, includes/classes/class-woo-feed-products.php:1776
1664
  msgid "Title [Yoast SEO]"
1665
  msgstr ""
1666
 
1667
+ #: includes/classes/class-woo-feed-dropdown.php:510, includes/classes/class-woo-feed-products.php:1777
1668
  msgid "Description [Yoast SEO]"
1669
  msgstr ""
1670
 
1671
+ #: includes/classes/class-woo-feed-dropdown.php:511
1672
  msgid "Canonical URL [Yoast SEO]"
1673
  msgstr ""
1674
 
1675
+ #: includes/classes/class-woo-feed-dropdown.php:517
1676
  msgid "GTIN8 [Yoast SEO]"
1677
  msgstr ""
1678
 
1679
+ #: includes/classes/class-woo-feed-dropdown.php:518
1680
  msgid "GTIN12 / UPC [Yoast SEO]"
1681
  msgstr ""
1682
 
1683
+ #: includes/classes/class-woo-feed-dropdown.php:519
1684
  msgid "GTIN13 / EAN [Yoast SEO]"
1685
  msgstr ""
1686
 
1687
+ #: includes/classes/class-woo-feed-dropdown.php:520
1688
  msgid "GTIN14 / ITF-14 [Yoast SEO]"
1689
  msgstr ""
1690
 
1691
+ #: includes/classes/class-woo-feed-dropdown.php:521
1692
  msgid "ISBN [Yoast SEO]"
1693
  msgstr ""
1694
 
1695
+ #: includes/classes/class-woo-feed-dropdown.php:522
1696
  msgid "MPN [Yoast SEO]"
1697
  msgstr ""
1698
 
1699
+ #: includes/classes/class-woo-feed-dropdown.php:535
1700
  msgid "Rank Math SEO"
1701
  msgstr ""
1702
 
1703
+ #: includes/classes/class-woo-feed-dropdown.php:539
1704
  msgid "Title [RankMath SEO]"
1705
  msgstr ""
1706
 
1707
+ #: includes/classes/class-woo-feed-dropdown.php:540
1708
  msgid "Description [RankMath SEO]"
1709
  msgstr ""
1710
 
1711
+ #: includes/classes/class-woo-feed-dropdown.php:541
1712
  msgid "Canonical URL [RankMath SEO]"
1713
  msgstr ""
1714
 
1715
+ #: includes/classes/class-woo-feed-dropdown.php:542
1716
  msgid "GTIN [RankMath Pro SEO]"
1717
  msgstr ""
1718
 
1719
+ #: includes/classes/class-woo-feed-dropdown.php:549, includes/classes/class-woo-feed-products.php:1793
1720
  msgid "Image Attributes"
1721
  msgstr ""
1722
 
1723
+ #: includes/classes/class-woo-feed-dropdown.php:551, includes/classes/class-woo-feed-products.php:1751
1724
  msgid "Main Image"
1725
  msgstr ""
1726
 
1727
+ #: includes/classes/class-woo-feed-dropdown.php:552, includes/classes/class-woo-feed-products.php:1752
1728
  msgid "Featured Image"
1729
  msgstr ""
1730
 
1731
+ #: includes/classes/class-woo-feed-dropdown.php:553, includes/classes/class-woo-feed-products.php:1753
1732
  msgid "Images [Comma Separated]"
1733
  msgstr ""
1734
 
1735
+ #: includes/classes/class-woo-feed-dropdown.php:554, includes/classes/class-woo-feed-products.php:1754
1736
  msgid "Additional Image 1"
1737
  msgstr ""
1738
 
1739
+ #: includes/classes/class-woo-feed-dropdown.php:555, includes/classes/class-woo-feed-products.php:1755
1740
  msgid "Additional Image 2"
1741
  msgstr ""
1742
 
1743
+ #: includes/classes/class-woo-feed-dropdown.php:556, includes/classes/class-woo-feed-products.php:1756
1744
  msgid "Additional Image 3"
1745
  msgstr ""
1746
 
1747
+ #: includes/classes/class-woo-feed-dropdown.php:557, includes/classes/class-woo-feed-products.php:1757
1748
  msgid "Additional Image 4"
1749
  msgstr ""
1750
 
1751
+ #: includes/classes/class-woo-feed-dropdown.php:558, includes/classes/class-woo-feed-products.php:1758
1752
  msgid "Additional Image 5"
1753
  msgstr ""
1754
 
1755
+ #: includes/classes/class-woo-feed-dropdown.php:559, includes/classes/class-woo-feed-products.php:1759
1756
  msgid "Additional Image 6"
1757
  msgstr ""
1758
 
1759
+ #: includes/classes/class-woo-feed-dropdown.php:560, includes/classes/class-woo-feed-products.php:1760
1760
  msgid "Additional Image 7"
1761
  msgstr ""
1762
 
1763
+ #: includes/classes/class-woo-feed-dropdown.php:561, includes/classes/class-woo-feed-products.php:1761
1764
  msgid "Additional Image 8"
1765
  msgstr ""
1766
 
1767
+ #: includes/classes/class-woo-feed-dropdown.php:562, includes/classes/class-woo-feed-products.php:1762
1768
  msgid "Additional Image 9"
1769
  msgstr ""
1770
 
1771
+ #: includes/classes/class-woo-feed-dropdown.php:563, includes/classes/class-woo-feed-products.php:1763
1772
  msgid "Additional Image 10"
1773
  msgstr ""
1774
 
1775
+ #: includes/classes/class-woo-feed-dropdown.php:570
1776
  msgid "Product Attributes"
1777
  msgstr ""
1778
 
1779
+ #: includes/classes/class-woo-feed-dropdown.php:578, includes/classes/class-woo-feed-products.php:1813
1780
  msgid "Product Custom Attributes"
1781
  msgstr ""
1782
 
1783
+ #: includes/classes/class-woo-feed-dropdown.php:585
1784
  msgid "Product Taxonomies"
1785
  msgstr ""
1786
 
1787
+ #: includes/classes/class-woo-feed-dropdown.php:600
1788
  msgid "Category Mappings"
1789
  msgstr ""
1790
 
1791
+ #: includes/classes/class-woo-feed-dropdown.php:606
1792
  msgid "Custom Fields & Post Metas (Premium)"
1793
  msgstr ""
1794
 
1795
+ #: includes/classes/class-woo-feed-dropdown.php:647, includes/classes/class-woo-feed-products.php:1803
1796
  msgid "Select Attributes"
1797
  msgstr ""
1798
 
woo-feed.php CHANGED
@@ -10,7 +10,7 @@
10
  * Plugin Name: CTX Feed
11
  * Plugin URI: https://webappick.com/
12
  * Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
13
- * Version: 4.4.38
14
  * Author: WebAppick
15
  * Author URI: https://webappick.com/
16
  * License: GPL v2
@@ -42,7 +42,7 @@ if ( ! defined( 'WOO_FEED_FREE_VERSION' ) ) {
42
  * @var string
43
  * @since 3.1.6
44
  */
45
- define( 'WOO_FEED_FREE_VERSION', '4.4.38' );
46
  }
47
 
48
  if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
@@ -808,6 +808,26 @@ if ( ! function_exists( 'feed_merchant_view' ) ) {
808
  wp_die();
809
  }
810
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
811
  // Get Google Categories.
812
  if ( ! function_exists( 'woo_feed_get_google_categories' ) ) {
813
  add_action( 'wp_ajax_get_google_categories', 'woo_feed_get_google_categories' );
10
  * Plugin Name: CTX Feed
11
  * Plugin URI: https://webappick.com/
12
  * Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
13
+ * Version: 4.4.39
14
  * Author: WebAppick
15
  * Author URI: https://webappick.com/
16
  * License: GPL v2
42
  * @var string
43
  * @since 3.1.6
44
  */
45
+ define( 'WOO_FEED_FREE_VERSION', '4.4.39' );
46
  }
47
 
48
  if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
808
  wp_die();
809
  }
810
  }
811
+ // Get facebook Categories.
812
+ if ( ! function_exists( 'woo_feed_get_facebook_categories' ) ) {
813
+ add_action( 'wp_ajax_get_facebook_categories', 'woo_feed_get_facebook_categories' );
814
+ /**
815
+ * Ajax Response for Facebook Category Dropdown Data
816
+ *
817
+ * @return void
818
+ */
819
+ function woo_feed_get_facebook_categories() {
820
+ check_ajax_referer( 'wpf_feed_nonce' );
821
+ if ( ! current_user_can( 'manage_woocommerce' ) ) {
822
+ woo_feed_log_debug_message( 'User doesnt have enough permission.' );
823
+ wp_send_json_error( esc_html__( 'Unauthorized Action.', 'woo-feed' ) );
824
+ wp_die();
825
+ }
826
+ $wooFeedDropDown = new Woo_Feed_Dropdown();
827
+ wp_send_json_success( $wooFeedDropDown->facebookTaxonomyArray() );
828
+ die();
829
+ }
830
+ }
831
  // Get Google Categories.
832
  if ( ! function_exists( 'woo_feed_get_google_categories' ) ) {
833
  add_action( 'wp_ajax_get_google_categories', 'woo_feed_get_google_categories' );