Shopify product-page guide
Make the external handoff clear before the click.
A practical workflow for product-specific marketplace, retailer, distributor and affiliate buttons - without blurring the difference between an off-site purchase and Shopify checkout.
Direct answer
A Shopify product page can send a visitor to an external retailer, marketplace, distributor, affiliate destination, booking page, or partner site - but the handoff has to be clear. For a one-off button, you can add a normal linked button through your theme’s supported editor or use a Custom Liquid area if your theme provides one. For a catalogue where destinations vary by product, use a product-specific workflow: save a clear button label and a destination for each product, add a compatible app block to the product template, then test the storefront result before changing any native purchase controls. Shopify’s own app-block system lets merchants add, move, preview, and customize compatible app blocks in the theme editor. [1]
BL External Links Button is designed for the product-specific route. Its current Shopify implementation uses a per-product app block that maps to a button slot in the dashboard. It also has a separate fixed-link block for one shared destination. The app’s current Shopify App Store listing is marked Built for Shopify. [2]
An external-purchase button sends the visitor to the URL you configure. It does not put that off-site item into Shopify’s normal cart, process the external order through Shopify checkout, confirm stock, or determine the external seller’s delivery, return, price, or support policies.
Start with the native/manual option when the change is small
A merchant does not always need an app for one simple link. If a single product needs a single information or retailer button, first check whether the current theme editor offers a native button, a section that accepts a linked button, or a Custom Liquid section. Shopify documents that apps and app blocks can be placed through the theme editor only where the theme is compatible; the exact available locations depend on the theme and section. [1]
Use a no-code app-block workflow when the button needs to be positioned in a product template and managed repeatedly. Use a product-specific workflow when different products need different destinations. Use a fixed button only when one shared destination is genuinely correct across the products or template where it appears.
| Merchant situation | Best starting route | Why |
|---|---|---|
| One informational link on one product | Theme button, Custom Liquid, or a small manual change | A catalogue-level management layer would be unnecessary. |
| Every affected product sends visitors to the same destination | Fixed external-link button | One shared label and URL are easier to maintain. |
| Different products have different marketplace, retailer, or affiliate destinations | Product-specific button workflow | Each product can carry its own label and URL. |
| A product needs several meaningful purchase routes | Multiple clearly labelled product-specific buttons | The customer can choose a real alternative such as “Buy on Amazon” or “Find a retailer.” |
| The store uses an older or heavily customized theme | Test the app-block route first, then request support review if needed | Not every section or older template supports app blocks. [1] [3] |
Decide what the button should tell the shopper
The button label should answer one question before the click: where will this take me? A generic “Buy now” label is misleading when the next step is not the merchant’s own Shopify checkout. Write a label that names the destination or the action.
| Destination type | Clear label examples | Label to avoid |
|---|---|---|
| Amazon or another marketplace | Buy on Amazon; View on eBay | Buy now |
| Retail partner | Find a retailer; Buy from a retailer | Continue |
| Distributor | Buy from distributor; Request distributor quote | Order here |
| Affiliate destination | Buy from partner; Check partner offer | Best price |
| Off-site information or booking | View booking options; Learn more on partner site | Shop now |
If the destination is an affiliate link or another commercial relationship, include any disclosure that applies to your business and audience. The button itself cannot establish the external seller’s availability, price, fulfilment or return terms, so do not imply that it does.
Fixed button versus per-product button
BL External Links has two different storefront patterns. Choosing the correct one prevents a common setup mistake: trying to use one global URL when product destinations differ, or creating per-product data when the whole template only needs one shared link.
Use a fixed external-link button for one shared destination
The fixed button is configured in the Shopify theme editor with a default label and default URL. It is useful for a shared external action, such as a retailer locator, a consistent partner page, or a single off-site purchase route that is appropriate for every product using that template.
Because the fixed button reads its label and destination from the block settings, updating that destination changes the shared action wherever that block is used. Do not use it for a catalogue where products must point to distinct marketplace listings.
Use a per-product external-link button when destinations vary
The per-product button reads a product-specific label and URL. In the standard bulk editor, the app works with five button slots per product. The first slot is the default starting point. Additional slots are optional and are intended for genuinely different destinations - such as Amazon, a distributor, and a local retailer - not for several vague versions of the same call to action.
A button needs both values. A label without a destination is incomplete, and a destination without a label does not give the shopper a clear expectation. The dashboard flags these incomplete pairs before save.
| Product button field | Example | Why it matters |
|---|---|---|
| Slot | Slot 1 | Connects the dashboard data to the matching theme app block. |
| Label | Buy on Amazon | Makes the external handoff clear to a shopper. |
| Destination | https://www.amazon.com/dp/... | Sends the button to the specific product or partner page. |
| Optional Slot 2 | Find a retailer | Supports a second, distinct route when useful. |
Set up a per-product button on a compatible Shopify theme
The no-code installation route is a Shopify product-template app block. Shopify explains that merchants can add an app block through Online Store → Themes → Edit theme, then position and customize it in a compatible section or Apps section. [1] Follow this controlled sequence instead of changing native purchase buttons first.
- Open the product page in your Shopify admin and decide which template should show the external option. Stores can use multiple product templates, so a block added to one template is not automatically present on all others.
- In Online Store → Themes, choose Edit theme for the intended theme. Navigate to the relevant product template.
- Choose Add block in a compatible product section, then select the Per-product link button from the Apps area. Shopify’s available locations depend on the current theme. [1]
- Leave the block’s Button ID at
1for the first product-specific button. This maps the block to Slot 1 in the BL External Links dashboard. - In the app’s Bulk Link Editor, add a clear Slot 1 label and a complete Slot 1 URL to a test product. Save the product change.
- Preview that product on desktop and mobile. Confirm the button is present, labelled correctly, and goes to the expected external destination.
- Only after the test works, repeat the process for more products or additional slots.
For another product-specific button on the same product page, add another per-product block and set its Button ID to the matching slot. For example, the first block can display Slot 1, “Buy on Amazon,” while a second block can display Slot 2, “Find a retailer.” The label and URL in the dashboard must use the same slot number as the relevant app block.
Why a button can be missing: The live per-product block intentionally stays hidden when the matching product-specific label is empty. First check the product’s label/URL pair and the block’s Button ID, then compare the product template with one where the button is visible.
Style the button in the Shopify theme editor
The per-product and fixed blocks expose theme-editor styling controls including height, width, alignment, font, font size, colors, border style, corner radius, optional logo or replacement image, and top/bottom spacing. Use these controls to make the button feel like part of the product page rather than an unrelated banner.
Keep the design focused on clarity. A marketplace button should not look like it uses the merchant’s own Shopify checkout unless that is exactly where it leads. If you add an external logo, confirm you are allowed to use that logo and test its legibility on mobile.
The block can be configured to open the destination in a new tab. Test the actual behavior on the devices your shoppers use, especially for app deep links, phone links, maps links, and nonstandard external destinations.
Manage more than a few products with the Bulk Link Editor
The Bulk Link Editor is the safest starting point for a larger catalogue because it shows product rows and button slots together. You can search and filter products by status, tag, collection, vendor, product type, and whether the primary button slot has a link. Use the filter as a work queue, not as proof that no other slot contains a button: the existing “has links” check is based on the first button URL.
A careful large-catalogue workflow looks like this:
- Filter to a small group of products that share the same task, such as an affiliate collection or a specific vendor.
- Enter the label and URL for a few representative products.
- Save, preview, and test those product pages.
- Use the same naming and destination convention for the remaining products.
- Save selected changes and review the completion result, including any failures.
The app can also save a default label for a slot. This is useful when many products have the same action, but it should never replace reviewing the individual URL. A default label can be applied to selected products where that button slot already has a destination.
Use the Native Product-admin shortcut when you are already working in Shopify Products
BL External Links also integrates with Shopify’s native product-admin flow. This is not another storefront button type and it does not replace the theme app block, the BL External Links Bulk Link Editor, or CSV import/export. It is simply a quick way to open Shopify’s classic product bulk editor from the place you are already managing products.
Use this route when you want to begin from one product, a selected set of products, or the Shopify product index:
| Starting place in Shopify Admin | Native Product-admin action | Result |
|---|---|---|
| One product page | Open More actions, then choose Edit Per-Product External Button | Opens the classic bulk editor filtered to that product and preserves a route back to it. |
| Selected products in the Products list | Select the relevant products, open the actions / three-dot menu, then choose the app action | Opens the classic bulk editor for the selected products. |
| Product index | Use the app’s native bulk-edit entry point without a product selection | Opens the classic bulk editor for the wider catalogue. |
This shortcut is helpful when product management starts in Shopify Admin. It does not automatically place a button on the storefront: the per-product theme app block is still required for customers to see the product-specific external button.
Watch the relevant setup walkthroughs
The two BL External Links tutorials cover complementary parts of the workflow. Use the first for the end-to-end fixed/per-product setup and Native Product-admin access. Use the second for a focused fixed/per-product setup, theme-editor styling, and preview loop.
| Tutorial | What it demonstrates |
|---|---|
| BL External Links - setup, multiple buttons, and Native Product-admin access | Fixed and per-product buttons, additional Button ID mapping, the Bulk Link Editor, and access from a product’s More actions menu or a selection in Shopify Products. |
| BL External Links - fixed and per-product button walkthrough | Theme-editor placement, button text/URL configuration, visual styling, optional native-purchase-control visibility settings, and storefront preview. |
Use CSV import/export carefully
For an offline catalogue workflow, the app can export current product link data to a CSV file. Start from that export rather than building a file from scratch: it carries the product ID and the relevant button_N_text and button_N_url columns that the importer expects.
The CSV tool should be treated as a controlled bulk operation. Its own dashboard labels the feature as experimental and asks merchants to contact support with the store URL, the file, and a description if an issue occurs.
| CSV choice | What it does | Safe operating rule |
|---|---|---|
| Export current data | Downloads product IDs, titles, and available button columns | Save an untouched copy before editing. |
| Normal import | Sets nonempty button cells and leaves blank cells alone | Use this first when you only need to add or update links. |
| Delete empty cells enabled | Removes existing button data when the matching CSV cell is blank | Use only when you intend a synchronised replacement and have tested a small sample. |
| Import result | Reports updated and failed rows | Review failures and correct only those rows; do not blindly re-import the whole file. |
Use valid, complete destinations. The dashboard can guide special formats such as mailto:, tel:, sms:, map links, deep links, relative paths, and other schemes, but guidance is not a guarantee that every destination will work in every browser or device. Test the rendered button on the product page.
Decide whether to keep, conditionally hide, or force-hide Add to Cart
The app provides visibility settings for native Add to Cart and Buy Now controls. This is a high-impact choice because it changes how a shopper can purchase or proceed.
Start by keeping the native controls visible. Confirm that the external button appears on the intended product, has the correct destination, and makes the off-site handoff unambiguous. Only then decide whether a conditional hide setting matches your business model.
| Visibility choice | Practical meaning | Safe use |
|---|---|---|
| Keep native controls visible | The external button sits alongside the store’s usual purchase actions | Best first test and often the correct choice when Shopify checkout remains available. |
| Conditional hide | The matching native purchase control is hidden only when the per-product external button renders | Consider only after product data and block placement are verified. |
| Force hide | Native controls can be hidden regardless of whether a dynamic product button is present | Use with extreme care; test a low-risk product before applying it more broadly. |
Custom themes can use nonstandard purchase-button markup. The app provides custom selector settings for Add to Cart and Buy Now controls, but these are a compatibility tool - not a promise that generic selectors will fit every theme, quick-buy widget, dynamic checkout, or app-added control.
Troubleshooting a missing, misplaced, or incompatible button
The button appears on one product but not another
Check whether both products use the same Shopify product template. Then confirm that the second product has the correct label and URL saved in the slot mapped to the app block’s Button ID. The most common causes are a missing product-specific value, a different template, or an additional block still mapped to Slot 1 when the product data is in Slot 2.
I can add a button to one template but not the product section I want
Shopify app blocks depend on a compatible theme and a compatible section. Shopify’s developer documentation notes that app blocks are supported in sections that are part of JSON templates and accept app blocks; statically rendered sections do not support them. [3] Try another compatible product section or an Apps section first.
My older theme does not offer the app block, or the theme editor shows an error
Do not paste unfamiliar code into a live theme. The safe next step is to contact Backlip support with the store URL, theme name and version, affected product-template name, a screenshot of the editor issue, the desired button placement, and whether you are trying to keep or hide native purchase controls. Duplicate or back up the theme before any manual change.
This is a review path, not a promise that every legacy or customized theme can use the same no-code placement. Shopify also notes that app blocks can only be used with compatible themes and sections. [1]
The external button is present, but Add to Cart did not hide - or the wrong control disappeared
Return the native controls to visible first. Check whether you selected a conditional or force setting, then inspect the product page in the published theme. If the theme uses nonstandard purchase controls, request support review rather than guessing a custom CSS selector on a live storefront.
I changed themes and the app button disappeared
When a published Shopify theme changes, apps are not automatically active in the new theme. Add and configure the app block in the new theme’s product template, then test again. [1]
My CSV import changed fewer products than expected
Check the completion summary for failed rows. Confirm that the CSV came from the app export, the product IDs and button column names were preserved, and you did not unintentionally enable the delete-empty-cells option. Send the problem CSV and store details to support if the issue remains.
Frequently asked questions
Can I add an external purchase button to a Shopify product page?
Yes. On a compatible theme, you can add a product-template app block and configure a product-specific label and URL. For a small one-off change, a theme button or Custom Liquid area may be enough. [1]
Can each Shopify product point to a different Amazon, eBay, or retailer page?
Yes. Use the per-product button workflow and give each product its own label and destination. Keep the label specific so the shopper understands the marketplace or retailer that will open.
Can I add several external buttons to one product?
Yes. The standard bulk editor handles five product-specific button slots. Add a corresponding per-product app block for each slot you intend to display, and use distinct labels for genuinely different routes.
What is the difference between a fixed button and a per-product button?
A fixed button uses a shared label and destination from the block settings. A per-product button reads a label and URL configured for the individual product. Choose per-product when destinations vary across the catalogue.
Why is my per-product button not visible on the storefront?
First confirm that the matching product has both a label and URL in the same slot as the block’s Button ID. Then check the product template and the active theme. A per-product block deliberately remains hidden when its product-specific label is empty.
Can I make the button open in a new tab?
Yes. The block exposes a theme-editor setting for opening the destination in a new window/tab. Test the real destination on the devices your customers use.
Should I hide Shopify Add to Cart or Buy Now?
Not at the start. Keep native controls visible while you test. Conditional hiding can fit a deliberately off-site product flow, but force hiding is riskier because it can hide native controls even when the product-specific external button is absent.
Can I use the app from a Shopify product page or selected products?
Yes. The Native Product-admin action is a shortcut from a single product, selected products, or the product index into Shopify’s classic bulk editor. It is an editing-access route only; it does not add or position a storefront button.
Can I import a large list of external links by CSV?
Yes, but use the app’s export as the file format, test a small sample first, and review the result summary. Normal imports leave blank cells unchanged; the delete-empty-cells setting is destructive for the corresponding existing link data.
Will the external click appear as a completed Shopify order?
No. The button sends a visitor to the configured external destination. It does not create an external order inside Shopify checkout or prove that the visitor completed a purchase there.
When BL External Links Button fits
BL External Links Button is a strong fit when a Shopify store needs a clear, product-level off-site handoff and wants to manage that workflow without editing product-template code for each product. It is not a substitute for validating external destinations, maintaining affiliate disclosures, or testing an unconventional theme.
Start with one product and one clear destination. If the result is correct on desktop and mobile, expand through the Bulk Link Editor or the controlled CSV workflow. Review the current installation, entitlement and plan details in the Shopify App Store listing, or return to the BL External Links Button solution page.
References
[1] Shopify Help Center - Extend your theme with apps
[2] BL External Links Button - Shopify App Store
[3] Shopify Developer - App blocks for themes