Tags:
- Action Required
- Themes
Improve your theme compatibility with remote products
Starting October 9, 2025, products displayed on storefronts can originate from a "remote" source, such as another store. This is an opt-in feature available to a select group of eligible merchants.
- No theme updates are required to support this feature, but some app integrations might be affected.
- In collections and search results, remote products will display small badges on their images to indicate their remote origin.
- In the cart, remote product titles will include a reference to the seller.
- Products with a [remote_details.type] of
sponsored
will automatically use the Sponsored product template.
Recommended updates
The following updates are recommended.
Sponsored products
You can include a Sponsored Product template in your theme using the naming convention product.remote.sponsored.json
. Refer to the related documentation for best practices when designing this template. If a sponsored product template is not available, merchants will be prompted to create one; otherwise, the default template will be used as a fallback.
Cart
To enhance your theme's compatibility with apps that utilize Shopify Function inputs for cart-related functionality, we recommend visually distinguishing remote products from regular products in the cart. Remote products are not included in Shopify Function inputs, and Shopify Function operations cannot target them. Consequently, apps using Shopify Functions for features like cart validation and discounts will not consider remote products in their calculations. This may lead to discrepancies between the cart totals and the calculations returned by these apps.
For example, if an app calculates free shipping for totals above $50, and a customer has $55 worth of merchandise in their cart, with $20 from a remote product, the Functions will only recognize $35 worth of merchandise. As a result, the customer will see that the free shipping threshold has not been met.
To identify and visually group remote products in the cart, use the remote_details on the product:
{% assign items_with_remote_details = cart.items | where: 'product.remote_details' %}
{% assign items_without_remote_details = '' | split: '' %}
{% for item in cart.items %}
{% unless item.product.remote_details %}
{% assign items_without_remote_details = items_without_remote_details | concat: item %}
{% endunless %}
{% endfor %}
<h2>Sold by {{ shop.name }}</h2>
{% for item in items_without_remote_details %}
<!-- Items without remote details -->
{% endfor %}
<h2>Sold by other stores</h2>
{% for item in items_with_remote_details %}
<!-- Items with remote details -->
{% endfor %}
Related Documentation
Refer to the following documentation for additional information.