{"id":253181,"date":"2025-11-22T17:13:14","date_gmt":"2025-11-22T17:13:14","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bulk-upsell-cross-sell-editor\/"},"modified":"2026-08-30T10:01:12","modified_gmt":"2026-08-30T10:01:12","slug":"bulk-upsell-cross-sell-editor","status":"publish","type":"plugin","link":"https:\/\/id.wordpress.org\/plugins\/bulk-upsell-cross-sell-editor\/","author":23334848,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.3.0","tested":"7.1.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Free Upsell & Cross-Sell Editor for WooCommerce \u2013 Bulk, Variations & Discounts","header_author":"Affinsy","header_description":"A plugin to bulk edit WooCommerce up-sells and cross-sells with custom discount offers.","assets_banners_color":"fdfcf9","last_updated":"2026-08-30 10:01:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/affinsy.com\/woocommerce\/plugins\/bulk-upsell-cross-sell-editor","header_author_uri":"https:\/\/affinsy.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":485,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"apusnest","date":"2025-11-23 11:57:30","revision":3401256},"1.3.0":{"tag":"1.3.0","author":"apusnest","date":"2026-08-30 10:01:12","revision":3672319}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3672305,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3672305,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3672305,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.3.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3401046,"resolution":"1","location":"assets","locale":"","width":2678,"height":1250},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3401046,"resolution":"2","location":"assets","locale":"","width":1264,"height":1106},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3401046,"resolution":"3","location":"assets","locale":"","width":2098,"height":1104}},"screenshots":[]},"plugin_section":[],"plugin_tags":[13788,31086,1311,6602,286],"plugin_category":[45],"plugin_contributors":[245500],"plugin_business_model":[],"class_list":["post-253181","plugin","type-plugin","status-publish","hentry","plugin_tags-cross-sell","plugin_tags-frequently-bought-together","plugin_tags-upsell","plugin_tags-variations","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-apusnest","plugin_committers-apusnest"],"banners":{"banner":"https:\/\/ps.w.org\/bulk-upsell-cross-sell-editor\/assets\/banner-772x250.png?rev=3672305","banner_2x":"https:\/\/ps.w.org\/bulk-upsell-cross-sell-editor\/assets\/banner-1544x500.png?rev=3672305","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bulk-upsell-cross-sell-editor\/assets\/icon-256x256.png?rev=3672305","icon_2x":"https:\/\/ps.w.org\/bulk-upsell-cross-sell-editor\/assets\/icon-256x256.png?rev=3672305","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bulk-upsell-cross-sell-editor\/assets\/screenshot-1.png?rev=3401046","caption":""},{"src":"https:\/\/ps.w.org\/bulk-upsell-cross-sell-editor\/assets\/screenshot-2.png?rev=3401046","caption":""},{"src":"https:\/\/ps.w.org\/bulk-upsell-cross-sell-editor\/assets\/screenshot-3.png?rev=3401046","caption":""}],"raw_content":"<!--section=description-->\n<p>Tired of opening dozens of product pages just to link a few upsells or cross-sells? <strong>Free Upsell &amp; Cross-Sell Editor for WooCommerce<\/strong> is a free, table-based editor right in your WooCommerce dashboard. Edit hundreds of products in bulk \u2014 and, unlike the built-in linked-products box, link <strong>variations<\/strong>: suggest the matching size of the pants when a shopper picks a shirt size, and give it a discount that only applies when both are in the cart.<\/p>\n\n<p><strong>Free forever. No premium version, no locked features.<\/strong><\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Fast Bulk Editing:<\/strong> Add or remove upsells and cross-sells for multiple products at once.<\/li>\n<li><strong>Dynamic Product Search:<\/strong> Instantly search for products by name or SKU to link them.<\/li>\n<li><strong>Custom Cross-Sell Discounts:<\/strong> Offer a percentage discount on a cross-sell product, but only when the \"trigger\" product is in the cart.<\/li>\n<li><strong>For Variations:<\/strong> Link up-sells and cross-sells to individual variations \u2014 and to individual variations of other products. The product page updates live as the shopper picks a variation, and the suggested variation opens pre-selected.<\/li>\n<li><strong>With Discounts:<\/strong> Give any cross-sell a percentage discount that applies in the cart only while the trigger product (or variation) is there. Shoppers see a \"Special Offer\" hint on the product page and the reduced price in the cart.<\/li>\n<li><strong>Copy &amp; Paste:<\/strong> Copy upsell\/cross-sell settings from one product and paste them to others instantly.<\/li>\n<li><strong>Export \/ Import CSV:<\/strong> Back up all linked products to a simple CSV (<code>id:discount<\/code> lists), edit it in a spreadsheet and import it back. Every import shows a review screen listing exactly what will be added, removed or changed before anything is written.<\/li>\n<li><strong>Intuitive Interface:<\/strong> A clean, filterable table makes managing your product relationships simple.<\/li>\n<\/ul>\n\n<p>This plugin is designed to save you time and help you increase your average order value through strategic product recommendations.<\/p>\n\n<p>\ud83d\udca1 Pro Tip: Don't just guess what sells well together. Use <a href=\"https:\/\/affinsy.com?utm_source=wp&amp;utm_medium=plugin&amp;utm_campaign=buce\">Affinsy<\/a> to run a full Market Basket Analysis and discover your store's most profitable product combinations scientifically.<\/p>\n\n<h4>How variation links work<\/h4>\n\n<p>The rule is simple: <strong>the parent product's links are the defaults, a variation's links are extras.<\/strong><\/p>\n\n<ul>\n<li>Links set on a variable product apply to every variation.<\/li>\n<li>Links set on a variation are shown <em>in addition<\/em> to the parent's, only when that variation is selected.<\/li>\n<li>If a target is a specific variation (e.g. <em>Pants \u2013 M<\/em>), it replaces the plain <em>Pants<\/em> entry in the list and opens with that size pre-selected.<\/li>\n<li>Before a variation is selected, the page shows the parent's links plus the variations' targets collapsed to their parent product \u2014 so <em>Pants<\/em> appears once, not once per size.<\/li>\n<li>Discounts never stack. If both the parent and the variation discount the same product, the higher percentage wins.<\/li>\n<li>Reciprocal discounts (A discounts B and B discounts A) are allowed and simply act as a bundle deal.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>bulk-upsell-cross-sell-editor<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Navigate to <strong>WooCommerce &gt; Bulk Linked Products<\/strong> to start editing.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Fixed: variation-level up-sells and cross-sells now persist and display. WooCommerce never stores these for variations, so they are kept in plugin meta and rendered on the product page when a variation is selected.<\/li>\n<li>Fixed: cart discounts now apply when an offer targets a variable product and a variation of it is in the cart (and vice versa).<\/li>\n<li>Fixed: pasted \/ added tags rendered a stray \"%%\" and did not escape product names.<\/li>\n<li>New: CSV import shows a preview of all additions, removals and discount changes and asks for confirmation before applying.<\/li>\n<li>New: simpler CSV format (<code>Upsell IDs<\/code>, <code>Cross-sell IDs<\/code> as <code>id:discount<\/code>). Old exports still import.<\/li>\n<li>Copy\/Paste and search never let a product link to itself.<\/li>\n<li>\"Include Variations\" and the category filter apply immediately.<\/li>\n<li>Links to a specific variation (variation \u2192 variation) open the target product with that variation pre-selected.<\/li>\n<li>\"Frequently bought together\" now shows the discounted price and a \"20% off together\" badge up front \u2014 on the product page and in the cart \u2014 instead of only after the other product is added.<\/li>\n<li>Fixed: bundled translations (de, es, fr, it, nl, pl) were never loaded because the plugin did not call load_plugin_textdomain(). All new strings translated; plural forms fixed.<\/li>\n<li>Variations without their own SKU: the editor and CSV export show the variation's real (blank) SKU instead of the inherited parent SKU; a CSV variation row without an ID whose SKU resolves to the parent is skipped with a warning instead of silently updating the parent.<\/li>\n<li>Clear rules for parent vs. variation links: parent links are defaults, variation links are extras; variation targets replace their parent product; before a variation is selected, variation targets are collapsed to their parent product. See \"How variation links work\".<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Improved variation editing: variations now show parent name, attributes, and product ID for easier identification.<\/li>\n<li>Better disambiguation of products sharing the same SKU.<\/li>\n<li>Added Copy &amp; Paste and Export\/Import features to readme description.<\/li>\n<li>Rebranded to Affinsy.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Free bulk editor for WooCommerce up-sells &amp; cross-sells. Link products or single variations, add bought-together discounts, CSV import\/export.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/253181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=253181"}],"author":[{"embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/apusnest"}],"wp:attachment":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=253181"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=253181"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=253181"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=253181"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=253181"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=253181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}