Post-checkout upsells with Submarine

Submarine Upsells provides an easy one-click opportunity to upsell a customer additional products post-checkout.

On the Shopify thank-you page, customers are presented with an option to add one or more items to their placed order, seamlessly using the same payment method.


In the above screenshot example, when the purple button is clicked, Submarine captures payment for the upsold item and edits the Shopify order to include it.


The theme developer has complete control over the user experience and the constraints placed on the upsell (e.g. the number of items presented, the number of times a customer is allowed to participate, the lifetime of the offer). Submarine exposes additional configuration options to allow for the discounting of upsold items.

For Upsells theme development and API details, please see Supporting Upsells.

Shopify configuration

Submarine can be configured to police the upsell requests that it is asked to process. In order to minimise Submarine’s footprint, we leverage Shopify metafields on individual variants to define any constraints.
The below metafields would be setup on your store and can be edited on the Shopify product variant page or via the bulk editor.

Metafield keyContent typeDescriptionDefault
submarine.permit_upsellTrue or FalseWhether or not the variant can be upsold. If such a whitelist is not required, we can optionally configure Submarine to allow all variants to be upsold.False
submarine.upsell_priceDecimalThe price that should be charged for the upsold item. Note that this price is in the store’s currency, and the same exchange rate used in the original order will be applied. If no such metafield is configured, Submarine will charge the regular variant price.Variant price
submarine.upsell_limit_per_orderIntegerThe maximum quantity of the item that can be added to the order in any one upsell. If unset, there is no limit policed.1

Shopify Flow

Merchants might like to decorate orders, or deliver custom notifications whenever an upsell is processed. Rather than prescribe what that behaviour should be, Submarine instead exposes a Shopify Flow trigger that is fired whenever an upsell is processed successfully.
Below you'll find what data we provide in this trigger.

Trigger name: Upsell successfully processed

CustomerCustomerThe customer.
OrderOrderThe order against which the upsell was made.
ProductProductThe product that was upsold.
Variant IDStringThe ID of the variant that was upsold.
QuantityNumberThe quantity of the upsell.
Line-item priceNumberThe (potentially discounted) line-item price, in cents, in the shop currency.
Charge amountNumberThe amount of the upsell, in cents, in the shop currency/
Charge currencyStringThe shop currency.
Presentment charge amountNumberThe amount of the upsell, in cents, in the presentment currency.
Presentment charge currencyStringThe presentment currency.