{"id":344332,"date":"2026-08-20T08:05:19","date_gmt":"2026-08-20T08:05:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/setalabs-external-catalog-for-woocommerce\/"},"modified":"2026-08-20T08:05:04","modified_gmt":"2026-08-20T08:05:04","slug":"setalabs-external-catalog","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/setalabs-external-catalog\/","author":23536911,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.0.4","requires":"6.9","requires_php":"8.1","requires_plugins":null,"header_name":"SetaLabs External Catalog","header_author":"SetaLabs","header_description":"Proxies the OT Box (otapi.net) catalog into WooCommerce. Compatible with any theme.","assets_banners_color":"","last_updated":"2026-08-20 08:05:04","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/setalabs.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":59,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"setalabscom","date":"2026-08-20 08:05:04"}},"upgrade_notice":{"1.0.2":"<p>WordPress.org Plugin Directory review fixes.<\/p>","1.0.1":"<p>WordPress.org compatibility and code-quality improvements.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3656218,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3656218,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3656218,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1556,2777,1920,8379,286],"plugin_category":[45],"plugin_contributors":[276616],"plugin_business_model":[],"class_list":["post-344332","plugin","type-plugin","status-publish","hentry","plugin_tags-api","plugin_tags-catalog","plugin_tags-external","plugin_tags-marketplace","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-setalabscom","plugin_committers-setalabscom"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/setalabs-external-catalog\/assets\/icon.svg?rev=3656218","icon":"https:\/\/ps.w.org\/setalabs-external-catalog\/assets\/icon.svg?rev=3656218","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>WordPress\/WooCommerce plugin that connects product and category catalog data from the <strong>SetaLabs marketplace API \/ OT Box-compatible API<\/strong> to your store.<\/p>\n\n<p>Products are not stored in WordPress until checkout \u2014 they are rendered on the fly through WooCommerce template hooks. When a customer purchases, the item is materialized as a real <code>WC_Product<\/code> for orders, admin, and reports.<\/p>\n\n<p><strong>Key features:<\/strong><\/p>\n\n<ul>\n<li>Virtual OT product catalog at customizable URLs<\/li>\n<li>Any WordPress theme via standard WooCommerce hooks<\/li>\n<li>OT API response caching via WordPress transients<\/li>\n<li>HPOS (High-Performance Order Storage) compatible<\/li>\n<li>Settings page at WooCommerce \u2192 SetaLabs Catalog<\/li>\n<\/ul>\n\n<p><strong>Virtual URLs (default slugs):<\/strong><\/p>\n\n<ul>\n<li><code>\/otc-catalog\/<\/code> \u2014 OT category tree<\/li>\n<li><code>\/otc-product\/{slug}\/<\/code> \u2014 product page from OT API<\/li>\n<li><code>\/otc-search\/<\/code> \u2014 search with filters and AJAX; search form shortcode: <code>[otc_ec_search_form]<\/code><\/li>\n<\/ul>\n\n<p>Slugs are editable in WooCommerce \u2192 SetaLabs Catalog \u2192 Settings (<code>catalog_slug<\/code>, <code>product_slug<\/code>, <code>search_slug<\/code>).<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the <strong>SetaLabs marketplace API \/ configured OT Box-compatible endpoint<\/strong> to fetch product catalog data, categories, and search results.<\/p>\n\n<p>After an administrator configures an Instance Key, the site sends that key plus product IDs, category IDs, search terms, filter values, and language parameters required to retrieve catalog data. If a visitor explicitly uses photo search, the selected image file is uploaded to OT Box for matching. The plugin does not intentionally send WordPress account, order, billing, shipping, or contact data to OT Box.<\/p>\n\n<p>SetaLabs terms: https:\/\/setalabs.com\/legal\/terms-and-conditions.html<\/p>\n\n<p>SetaLabs privacy policy: https:\/\/setalabs.com\/legal\/privacy-policy.html<\/p>\n\n<h3>Translators<\/h3>\n\n<p>Translation template: <code>languages\/setalabs-external-catalog.pot<\/code>\nCommunity translations are managed on translate.wordpress.org after directory approval.\nLocale <code>.po<\/code>\/<code>.mo<\/code> files may exist in the development repository for local testing and are excluded from the WordPress.org release package.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>WooCommerce \u2192 SetaLabs Catalog<\/strong> and enter your API Base URL and Instance Key.<\/li>\n<li>After activation, virtual catalog URLs become available (defaults listed above).<\/li>\n<li>If virtual pages return 404, visit <strong>Settings \u2192 Permalinks<\/strong> and click <strong>Save Changes<\/strong> (rewrite rules are also flushed automatically on plugin upgrade).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20an%20instance%20key%3F\"><h3>Where do I get an Instance Key?<\/h3><\/dt>\n<dd><p>Contact SetaLabs at https:\/\/setalabs.com\/ to obtain your API credentials.<\/p><\/dd>\n<dt id=\"what%20woocommerce%20versions%20are%20supported%3F\"><h3>What WooCommerce versions are supported?<\/h3><\/dt>\n<dd><p>WooCommerce 8.0 and above. Tested with WooCommerce 9.4.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>WordPress.org review fixes: enqueue debug panel assets, keep instance_secret unslashed-only, drop bundled locale .po\/.mo from release ZIP.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Updated WordPress.org plugin metadata to match the assigned plugin slug.<\/li>\n<li>Improved output escaping and documented intentional PHPCS exceptions.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: settings page, AJAX diagnostics (API ping, cache flush), plugin architecture.<\/li>\n<li>Virtual catalog page <code>\/otc-catalog\/<\/code> with OT category tree; slug configurable via <code>catalog_slug<\/code>.<\/li>\n<li>Theme-overridable template: <code>templates\/otc-catalog\/catalog.php<\/code> \u2192 <code>yourtheme\/woocommerce\/otc-catalog\/catalog.php<\/code>.<\/li>\n<li>Virtual product page <code>\/otc-product\/{slug}\/<\/code> and search page <code>\/otc-search\/<\/code> with filters, pagination, and AJAX.<\/li>\n<li>Theme-overridable templates: <code>single-product.php<\/code>, <code>search.php<\/code> under <code>templates\/otc-catalog\/<\/code>.<\/li>\n<\/ul>","raw_excerpt":"Connects a SetaLabs-powered external marketplace catalog to WooCommerce. Works with any theme.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/344332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=344332"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/setalabscom"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=344332"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=344332"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=344332"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=344332"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=344332"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=344332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}