Discount Ninja
  • Discount Ninja Developer Hub
    • Storefront API
      • Promotion Engine
        • Enable
        • JavaScript API
          • Functions
          • Events
          • Objects
      • Widgets
        • Guiding principles
          • Accessibility
          • Localization
          • Integration
          • Style
        • Announcement Bar
        • Notification
        • Offer Rules Popup
        • Product Banner
        • Promotion Summary
        • Promotion Code Field
        • Promotional Badge
    • Integration
    • Theme edits
      • App blocks
        • Product Page Banner
        • Promo Code Field
        • Promotion Summary
      • Code edits
        • Product Detail Page (PDP)
          • Price
          • Banner
          • Badge
        • Product List Page (PLP) and Collections
          • Attributes
          • Price
            • Searchanise Search & Filter
            • Globo Smart Product Filter & Search (aka SPF)
            • AI Search & Product Filter (Ultimate Search)
            • Boost AI Search & Filter (aka PFS)
          • Badge
          • Pagination
          • Quick View
        • Cart
          • Root
          • Cart item
          • Promo Code Field
          • Promotion Summary
          • Subtotal
        • Gift With Purchase
Powered by GitBook
On this page
  • Location
  • Snippet
  • Example
  • Style
  • Subscription apps
  • Example
  • Multiple variants
  • Installments

Was this helpful?

  1. Discount Ninja Developer Hub
  2. Theme edits
  3. Code edits
  4. Product Detail Page (PDP)

Price

Location

Place the la-dn-price attribute on the HTML element that spans all of the following:

  • The section of the theme that renders the standard price of the variant when the variant is not on sale (i.e. the variant does not have a compare-at price in Shopify)

  • The section of the theme that renders the discounted price of the variant when the variant is on sale (i.e. the variant has a compare-at price in Shopify)

And, if applicable:

  • The “Sold out” text displayed if the variant is out of stock

  • The “Sale” badges displayed if the variant has a compare at price

Ensure the attribute class is not placed on a section that renders HTML that is not related to the price, such as:

  • Review widgets

  • Installments

since all content in the section with the above attribute is replaced with the discounted price when the variant is discounted through Discount Ninja.

Snippet

Use the following snippet to add the data attribute in a Liquid template:

data-la-dn-price

Example

<div class="price" data-la-dn-price>
    ...
    <span class="money">{{ variant.price }}</span>
    <s class="money">{{ variant.compare_at_price }}</s>
    ...
</div>

Style

The style (font, color, size) as well as the format (strikethrough or not, price first or compare-at price first...) can be configured in the app.

In the menu go to Settings > Dynamic Pricing > Price format.

Subscription apps

The attributes described in this section will be supported as of November 2024

Some subscription apps show multiple prices for the selected product variant on the PDP. Specifically, they allow for showing:

  • The price of a one-time purchase

  • The price of a recurring purchase (subscription)

To support this:

  • mark the price of the one-time purchase with the attribute data-la-dn-price-inline as well as an attribute data-la-dn-price-onetime

  • and the price of the recurring purchase with the attribute data-la-dn-price-inline as well as the attribute data-la-dn-price-subscription. Finally, add an attribute that indicates the id of the selected selling plan: data-la-dn-price-subscription-sellingplan-id

Example

<div class="price" 
     data-la-dn-price 
     data-la-dn-price-inline
     data-la-dn-price-onetime>
    ...
    One time purchase:
    <span class="money">{{ product.price }}</span>
    <s class="money">{{ product.compare_at_price }}</s>
    ...
</div>
{% assign default_selling_plan_allocation = product.selected_or_first_available_selling_plan_allocation %}
{% assign selling_plan_id = default_selling_plan_allocation.selling_plan.id %}
{% assign selling_plan_price = default_selling_plan_allocation.per_delivery_price %}
<div class="price" 
     data-la-dn-price 
     data-la-dn-price-inline
     data-la-dn-price-subscription 
     data-la-dn-price-subscription-sellingplan-id="{{ selling_plan_id }}">
    ...
    Subscribe and save
    <span class="money">{{ selling_plan_price }}</span>
    ...
</div>

Multiple variants

Installments

To mark HTML elements as installment prices, you can add CSS selectors in the app. These settings are available from the Settings > General > Advanced menu in the Advanced tab.

PreviousProduct Detail Page (PDP)NextBanner

Last updated 5 months ago

Was this helpful?

To display the price of multiple variants of the same product on the PDP, users can use the markup used for products on the PLP in combination with the data-la-dn-product-variant attribute as explained .

The app automatically integrates with a number of installment apps, listed .

here
here