This article answers common questions about RuffRuff Order Bonus campaign settings, gift distribution, storefront display, and campaign management.
They differ in whether customers must enter a code and whether usage limits are available.
Application method | How it applies | Key specifications |
|---|---|---|
Automatic | Applies automatically when the conditions are met | Supports Buy Button. Maximum usage limits are not available |
Manual (discount code) | Customers enter a code in the cart or at checkout | Supports a maximum total number of uses and a limit of one use per customer. Customers can copy the code from the widget |
Caution: You can select the application method only when creating or duplicating a campaign. It cannot be changed after the campaign is created.
Under Shopify's rules, when multiple discounts of the same type apply, the greater discount takes priority. For example, if 2 Product discounts apply, the campaign with the larger discount is selected automatically.
Different discount types—order, product, and shipping—can apply together only when permitted under "Combinations of discounts" in the restriction settings. Combination must be enabled in both campaigns.
Yes. In the "Discount" settings → "Advanced settings", select "All purchase types" or "Subscriptions only" in "Purchase types to discount".
In a cart that mixes one-time purchase and subscription products, the discount applies only to products of the purchase type you select.
When subscriptions are included, in "Subscription orders to discount" you can choose "Apply to the first order only", "Apply up to a set number of orders", or "Apply to all orders".
However, if there is a Shipping discount that covers only part of the shipping cost (a percentage under 100% or a fixed amount), you can choose only "Apply to the first order only". Due to Shopify specifications, second and later orders would otherwise receive a full shipping discount.
For details, see "Discount".
For worked examples in carts that mix one-time purchases and subscriptions, see "Purchase types to discount (advanced discount)".
The following may be causing this.
Adjustment produces an invalid result: Rounding is skipped if it would make the discounted price ¥0 or less or the discount amount negative.
Discount amount is distributed: When “Distribute discount across eligible items” is enabled for a Product discount, distribution takes priority.
A Shopify native discount is combined: Rounding may not work correctly when an Order discount is combined with a native Shopify Product discount.
For details, see the Rounding adjustment (advanced discount) page.
Shipping discount eligibility is evaluated on the subtotal after product discounts.
Example: Product discount: ¥900 off 2 or more items / Shipping discount: Free shipping on orders of ¥10,000 or more
Even if the cart merchandise total is at least ¥10,000, free shipping does not apply when a Product discount reduces it to ¥9,100 because the free-shipping condition of at least ¥10,000 is no longer met.
Order discounts do not affect shipping discount conditions. A shipping discount applies when the cart merchandise total after product discounts meets its conditions, even if an order discount is also applied.
Example: Order discount: 10% OFF / Shipping discount: Free shipping on orders of ¥10,000 or more
In this example, free shipping applies when the cart merchandise total before the Order discount is at least ¥10,000, even if the Order discount reduces the final order total below ¥10,000.
The subtotal used for evaluation depends on the discount type and campaign.
Campaign or discount type | Subtotal used for evaluation |
|---|---|
Order discount | Before Product discounts |
Product discount | Before Product discounts |
Shipping discount | After Product discounts; Order discounts are excluded |
Gift campaign | Select “Before product discounts” or “After product discounts” |
Check the following.
Check the campaign settings
Whether the campaign status is "Active"
Whether it is within the campaign active dates
Whether eligibility conditions are met (subtotal, quantity, customer tags, and so on)
For manual application, whether the discount code was entered correctly
Whether "Purchase types to discount" in the "Discount" settings matches (one-time purchases / subscriptions)
Check the plan and environment
Whether you have an active paid plan
Whether you are checking in the live environment, not theme editor preview mode
Check Restrictions
For manual application, whether the maximum number of uses has been reached
Whether the combination settings with other discounts are correct
For details, see the Discount Not Applying troubleshooting page.
No. In Discount settings you can only specify a discount value, as a percentage or as a fixed amount. There is no setting for the selling price itself.
To use a different discount for each product, create a separate campaign per target product.
No. Discount settings must include at least 1 Order, Product, or Shipping discount.
You cannot combine tiered discounts, such as 5% off for 100 or more and 8% off for 500 or more, into 1 campaign. Create a separate campaign for each threshold.
You can choose all products, specific collections, or specific products. Collections and products are limited to 50 each.
Variants: When you choose specific products, you can also target individual variants
Product tags: Product tags cannot be specified. To target products by tag, create an automated collection that collects them, then specify that collection
Product status: Draft products can be selected. Archived products cannot be selected
There is no setting that excludes individual products. "Products to exclude" in "Advanced settings" under "Applies to" covers only three types: gift products, sale products (products with a compare-at price), and RuffRuff Pre-Order products.
To exclude specific products, create a collection that contains only the products you want to discount, and specify that collection as the target.
Yes. One campaign can include up to 3 discounts: 1 Order discount, 1 Product discount, and 1 Shipping discount.
(1) Set the eligibility condition
Set “Cart item quantity” to 1 or more of product X.
(2) Apply a 100% discount to product Y
Set product Y under "Applies to" and set the discount to 100%.
(3) Set the order discount
Set the percentage or fixed amount applied to the whole order.
Prerequisite: To discount only 1 unit of product Y, enable “Limit application range” for the Product discount and set both “Start position” and “End position” to 1.
Create 1 campaign per product, then set the quantity range under “Limit application range” for the Product discount.
If you add several products to 1 campaign and select “Meets all conditions,” the entire discount stops applying when even 1 target product no longer meets the conditions. This will not produce the intended behavior.
There is no feature for previewing a future date and time. You can test the campaign on the live online store with a test customer tag.
(1) Add a test customer tag
Add a customer tag for testing to your own test account.
(2) Set the customer tag as an eligibility condition
Add that test customer tag to the campaign's eligibility conditions.
(3) Activate the campaign and check
Confirm on the test account that the discount applies.
(4) Restore the conditions
After checking, remove the test customer tag from the eligibility conditions.
No. Each campaign can have 1 discount code, and you can create up to 50 discount campaigns. You cannot prepare hundreds of individual codes.
Discounts from this app are created with Shopify's discount feature. Check usage in Shopify admin → Discounts.
Yes. Set amounts in the store currency. When customers purchase in a currency other than the store currency (such as US dollars), the amount is converted to that currency at the exchange rate and then used for the condition. You cannot set a different amount for each currency.
Besides condition amounts, the “Fixed amount” discount, the “Maximum discount amount”, and the “Subtotal price” base amount of a repeatable gift are also converted. Percentage (%) discounts and quantity conditions are not converted. Rounding adjustment applies only to carts in the store currency.
With the “Customer total spent” condition, customers whose total spent is close to the condition amount may not meet the condition at checkout in a cart in another currency. If you sell in other currencies, set the condition amount about 2% lower.
For what is converted and setup notes, see How amounts work when you sell in other currencies.
No. Eligibility conditions do not include the destination country, region, prefecture, or address.
To vary benefits by region, add a customer tag or customer metafield to the target customers and use that as the condition.
No. A shipping discount can only reduce the shipping cost. There is no feature that adds a shipping fee or sets it to a flat amount.
Configure shipping rates in Shopify admin → Settings → Shipping and delivery.
Gift types differ in what they distribute and whether customers must make a selection.
Gift type | What is distributed | Online Store distribution method |
|---|---|---|
Simple gift | 1 gift | Automatic, Manual, Use settings page configuration, or After the order |
Choice gift | Customer selects from multiple options | The gift is not added to the cart until the customer selects it |
Repeatable gift | Distributed repeatedly based on purchase amount or quantity | Automatic or After the order |
For details, see Gift Types (Simple, Choice, Repeatable).
Enable post-order distribution both on the settings page and in the campaign.
(1) Enable post-order gift distribution
Under “Post-order gifts” on the settings page, enable “Distribute gifts after the order.” If prompted to grant additional permissions, grant them and save the settings.
(2) Set the distribution method by channel
Online Store: Select “After the order.”
Draft Orders, Point of Sale, and Subscription apps: Select the channel under “Add channel.”
Other channels: Enter a display name and identifier. Find the identifier in the “Post-order gift” block on an eligible order.
(3) Save the campaign
Review the settings and save the campaign.
Prerequisite: Post-order distribution supports Simple gifts and Repeatable gifts priced at 0. The gift is not added to the cart.
Caution: The gift is not distributed if the entire order is fulfilled before the gift is added.
Yes. The gift product (bundle) created by a gift campaign is linked to the inventory and availability of its configured component products.
Therefore, gift distribution stops automatically when a component product runs out of stock and becomes unavailable. To control the distribution limit through inventory, set component inventory to the desired maximum number of gifts.
When a component product becomes unavailable because it is out of stock, the gift stops being added to the cart. The campaign and all storefront elements do not disappear automatically.
Automatic cart addition: Stops.
Widget add and select buttons: Become disabled, so customers cannot use them.
Gift badge: Changes to the “Unavailable” state. If no text is set for this state, the badge is hidden.
Other storefront elements: Remain displayed.
You can prepare the following messaging for out-of-stock gifts.
Add a note such as “Limited quantity; available while supplies last” to the campaign description
Set text such as “Ended” for the badge’s “Unavailable” state
To hide all storefront elements, manually change the campaign to “Draft” after it goes out of stock
The app settings and CSS alone cannot hide the gift product name link in the cart. You can hide it by customizing the theme Liquid.
Why CSS cannot do this: Gift product cart lines do not output a class or other marker that a CSS selector can identify.
How to identify the line in Liquid: Read the line item property “_ItemType: gift” from line_item.properties.
Implementation: Disable the product name link for that line. The implementation depends on the theme, so consult your engineer or development agency.
Note: The cart button is hidden on gift product pages. Enabling “Limit distribution of gifts that do not meet conditions” also blocks checkout when a gift product is added outside the app.
Yes. In "Online store (Theme Extensions) → Storefront texts" on the Settings page, you can change the Gift added / removed popup, the Gift selection popup, and the Toast text for each language.
Blank fields use the default text. You change the heading for each campaign in "Campaign title" in that campaign's display settings.
For the fields and default texts, see "Change the popup and toast texts".
No, it does not stay hidden permanently. Only automatic display stops, in the browser tab where the customer selected it. Other tabs, browsers, and devices are not affected.
Choosing again: Customers can choose a gift at any time from the choice gift button in the widget, which opens from the floating button.
When it opens automatically again: If the customer closes the tab and opens the store again, the popup opens automatically again for a cart that meets the conditions.
For details, see "Gift Settings".
No. Only its text can be changed. You can change it in "Online store (Theme Extensions) → Storefront texts" on the Settings page.
For details, see "Change the popup and toast texts".
Open the gift product from Products in Shopify admin and edit its title or images. Select “Edit on product page” on the campaign edit screen to open that gift product page directly.
You can change choice-gift variant names from the campaign edit screen in the app.
Yes. The cart button is automatically hidden on gift product pages, so customers cannot add them directly to the cart as regular products.
You can also enable "Limit distribution of gifts that do not meet conditions" in the restriction settings to block checkout when a gift product is added to the cart outside the app.
When the campaign is "Active," the gift product status is automatically set to "Unlisted." It is therefore hidden from collection pages and search results by default.
If it is still displayed, change the gift product status to "Unlisted" on its product page in Shopify admin. An unlisted product is accessible only to customers with the direct link.
The gift product itself may be included in "Applies to".
Solution: In the eligibility conditions, open "Advanced settings" under "Applies to" and select "Exclude gifts".
Applying a discount code at checkout may cause the order to no longer meet the gift distribution conditions.
Example: Gift distribution condition: Cart subtotal is ¥10,000 or more
On the cart page, the subtotal is ¥10,000 or more → The gift is added to the cart
A Product discount is applied at checkout and reduces the subtotal below ¥10,000 → The distribution condition is no longer met
When the checkout rule is enabled: An error appears and the customer cannot continue.
Remove the gift product from the cart, or remove the discount code and complete the purchase after meeting the conditions.
Behavior differs based on the restriction (checkout rule) settings.
When "Limit distribution of gifts that do not meet conditions" is enabled, an error appears at checkout and the customer cannot continue. They must correct the cart or remove the gift product.
When disabled, customers can purchase even if the conditions are not met. We recommend enabling the checkout rule to prevent unauthorized gift claims.
The checks differ depending on whether the gift is distributed in the cart or after the order.
For gifts distributed in the cart
Whether the campaign is “Active” and its active dates and eligibility conditions are met
For Manual distribution or Choice gifts, whether the customer added or selected the gift from the widget
Whether the component products are available for purchase, including inventory tracking and selling when out of stock
Whether the gift product is “Unlisted” and “Online Store” is included in its sales channels
Whether the app embed is enabled
Whether the customer used the online store cart page. Dynamic checkout buttons and direct checkout links are not supported
For gifts distributed after the order
Whether “Distribute gifts after the order” is enabled
Whether the campaign includes the relevant channel
Whether it is a Simple gift or Repeatable gift priced at 0
For details, see the Gift Not Being Distributed troubleshooting page.
The condition uses the customer’s total order count when the order is placed. If it is set to “Equals 2,” a customer who has already placed 2 orders qualifies, so the gift is distributed on the 3rd order.
To target the 2nd order, set the condition to “Equals 1.”
No. Set it to "1 or more".
With “Equals 1,” the condition is not met when the cart contains 2 or more of the target product
With “1 or less,” the condition is also met when the cart contains 0 of the target product
As a rule, use "or more" for quantity conditions.
Yes. Each gift campaign is evaluated independently, so every campaign whose conditions are met distributes its gift.
To avoid distributing twice when campaign conditions overlap, set mutually exclusive conditions.
Campaign for product A only: Product A is 1 or more, and product B equals 0
Campaign for buying products A and B together: Product A is 1 or more, and product B is 1 or more
Eligibility conditions determine when a gift is distributed. Display conditions determine when campaign information appears on the online store. The 2 sets of conditions are independent and do not affect each other.
Note: A gift is distributed to customers who meet the eligibility conditions, even if they do not meet the display conditions. To limit distribution to specific customers, set eligibility conditions rather than display conditions.
This is expected. The gift is added to the cart as 1 bundle product containing the components, so the cart shows a quantity of 1.
The checkout page and the order details page show the components and their quantities.
To make this clearer for customers, include the count in the gift product name, such as "(set of 3)".
No. Amount and quantity conditions are evaluated on the cart contents before the order is placed. When checkout is split, each cart is evaluated separately, so the combined amount cannot be used.
Check the following in order.
Whether the app embed is enabled in the theme editor.
Whether the "Product message" app block is added to the product template.
Whether the campaign status is "Active" and within the active dates.
Whether "Show product message" is enabled in display settings.
Whether the current product is included in the display target products or collections.
Whether the display period and display conditions are met.
For details, see the Product Message Not Displaying help page.
The following may be causing this.
The app embed is not enabled
The app embed floating button is set to "Hidden"
There is no campaign with status "Active"
The campaign is outside its active dates (or display period)
"Show in widget" is off in the campaign display settings
It does not meet the display conditions in the campaign display settings
The campaign title in display settings is not set
First, confirm that the RuffRuff Order Bonus app embed is enabled in the theme editor. The widget is not displayed if it is disabled.
For details, see the Widget Not Displaying help page.
Check the basic settings, display conditions, and theme compatibility in order.
Check basic settings
Whether the app embed is enabled
Whether the campaign is “Active” and within the campaign period
Whether “Show badge on product cards” is enabled
Whether the badge text for “During campaign” is set
Check the display period and display conditions
If a display period is set, whether it is within that period
If display conditions are set, whether those conditions are met
Theme compatibility
Product card structures vary by theme. If the badge is not displayed, adjust “Product card selector” and “Badge container selector” under “Advanced settings.” Contact support for details.
The app's collection selector shows only collections published to the Online Store.
(1) Open the collection
In Shopify admin, open Products → Collections and select the collection.
(2) Check Online Store publication
Under “Sales channels and apps,” confirm that “Online Store” is enabled.
(3) Save the settings
If Online Store was disabled, enable it and save the collection.
After saving, reopen the collection selector in the app. The collection will be displayed.
Yes, there is a limit.
Discount campaigns: You can create up to 50.
Gift campaigns: You can create up to 50.
After reaching the limit, delete an unnecessary campaign before creating a new one. Deleting a gift campaign also deletes its gift product. This action cannot be undone.
Yes, you can activate multiple at the same time. However, the following limits apply.
Discount campaigns: You can activate up to 25 campaigns with Automatic application.
Gift campaigns: Shopify allows up to 25 active checkout rules in total. You cannot activate another one after reaching the limit.
Yes. On the campaign list or edit screen, select “More actions” → “Duplicate.” The duplicated campaign is named “Copy of (original name).”
After duplicating, edit the content as needed, change the status to "Active", and save.
Duplicating a Gift campaign automatically creates a new gift product (bundle product).
On the campaign display settings screen, select a language from the language selector and enter each translation. Campaign titles, descriptions, button labels, badge text, and product messages can all be translated.
Use Shopify's Translate & Adapt app to translate widget header text, gift product names, and similar content.
You can set popup and toast text for each language in "Storefront texts" on the Settings page. For details, see "Change the popup and toast texts".
Yes. However, if another app's rules apply to the gift product, the gift may not be added to the cart.
RuffRuff Order Limits: If you use "Bundle rules", add the gift product to the rule's "Excluded items"
RuffRuff Pre-Order: If "Bundle limit" prevents ordering pre-order and regular products together, remove the restriction or apply a pre-order rule to the gift product as well
No. Support is available by email and in-app chat. Phone and online meeting support are not available.
If you want email support, contact us through the contact form.
The app reads only the following customer data to evaluate eligibility conditions and display conditions.
Customer tags: Matched against the tags specified in the campaign.
Customer metafields: Only the value of the single field specified by the store administrator.
Customer total order count
Customer total spent
Login status
It does not read names, phone numbers, email addresses, addresses, or other data that Shopify defines as protected customer data. It does not retrieve lists of other customers or of past purchasers.
To use a customer segment as an eligibility condition, you grant the additional customer data read permission. The app stores only the ID of the selected segment, and does not retrieve the list of customers in that segment. The evaluation runs on Shopify's discount feature.
Only when post-order gifts are enabled, the app reads the following in addition to the data above. This process is the reason the additional permission to read order and customer information is required.
Order ID, order date, cancellation date, order source, and whether the order is editable
Product ID, variant ID, quantity, and amount of each order line
Customer ID, customer tags, total order count, total spent, and the value of the specified customer metafield
The order notification from Shopify is configured to deliver only the order ID. Names, phone numbers, email addresses, and addresses are not received.
It is used only for the following evaluations and processes.
Discount and gift evaluation: The evaluation completes inside Shopify Functions, an isolated runtime on Shopify's side, when the cart is updated and at checkout.
Online store display evaluation: Whether the widget, badges, and product message are shown is evaluated in the customer's browser.
Post-order gift evaluation and distribution: When an order is created, our server evaluates whether the order qualifies and adds the gift to the Shopify order. This runs only when post-order gifts are enabled.
No. Customer data is not stored on our servers. We do not create anonymized data sets, and we do not provide data to advertising providers such as Meta, Google, or TikTok.
Even when post-order gifts are enabled, the distribution status is stored in a Shopify order metafield. It is not stored in our database.