Installation
Install the package using npm:
npm install @paritydeals/react-promotions-ui
Getting Started
To start using the SDK, wrap your app with the ParityDealsProvider
at the root level. This sets up the necessary context.
You can copy your product ID from the listing or promotion details page:
import { ParityDealsProvider } from '@paritydeals/react-promotions-ui';
function App() {
return (
// Replace with your product ID of the promotion
<ParityDealsProvider productId="promo_7e2de26fb47644e58e867a20i898j748">
{/* Your app components */}
</ParityDealsProvider>
);
}
Attributes:
You can use the following attributes to customize the behavior of the components.
Attribute | Type | Default | Description |
---|
productId | string | ” | The product ID to display |
environment | sandbox|production | ’production’ | The environment to use. If you want to use the sandbox, you must provide this. |
baseCurrencyCode | string | USD | If you use any base currency other than USD, you must provide this. Currency conversion will be done using this code. |
baseCurrencySymbol | string | $ | If you use any base currency other than USD, you must provide this. Only for the displaying purpose, but still important. |
Components
Use these ready-made UI components to easily show location-aware pricing and promotional content.
A paid plan is required to use the SDK features below, except the banner.
PDBanner
Displays a location-aware discount banner. You can style and position it as needed.
import { PDBanner } from '@paritydeals/react-promotions-ui';
<PDBanner
backgroundColor="#f0f0f0"
fontColor="#333"
borderRadius="4px"
fontSize="16px"
noStyles={false}
addCloseIcon={true}
className="custom-banner"
onClose={() => console.log('Banner closed')}
/>
Simplified component to display discounted and original prices dynamically based on the user’s location.
Display Discounted Price
Use this to show the localized or discounted price. The price is automatically formatted based on the user’s location, including currency symbols, decimal separators, and digit grouping — for example, ₹9,999.99 for India, ¥10,000 for Japan, and 9.999,99 € for Italy where the currency symbol appears on the right.
<PDPriceFormatted
price={99.99}
/>
Configuration Options
Option | Type | Default | Description |
---|
localizePricing | boolean | true | Convert to local currency |
price (required) | number | 0 | The price of the product. |
className | string | ” | custom class name for the component |
currencyDisplay | symbol|code|name | symbol | The currency display format. This only works on the data-pd-price-formatted element. |
showDecimal | boolean | false | Whether to show decimals |
minimumDecimalDigits | number | 0 | The minimum number of decimal digits |
maximumDecimalDigits | number | 2 | The maximum number of decimal digits. Maximum is 2. |
isOriginalDisplay | boolean | false | Used to show the original price when there’s a discount, typically for comparison (e.g., strikethrough price). This price is not modified by discounts but may still be affected by currency conversions. |
displayPrice | number | 0 | The price to display. If not provided, the original price will be displayed. |
Display Original Price (Strikethrough)
Optionally show the original price with a strikethrough effect:
<PDPriceFormatted
price={99.99}
displayPrice={99.99}
isOriginalDisplay={true}
/>
Example Usage
Combine both for a side-by-side comparison:
<div className="price-container">
<PDPriceFormatted price={89.99} />
<PDPriceFormatted
price={99.99}
displayPrice={99.99}
isOriginalDisplay={true}
/>
</div>
Granular Price Components
Use these components individually to build custom price formats with full styling control.
PDPriceInteger
Displays just the integer part of the price.
<PDPriceInteger price={99.99} />
Configuration Options
Option | Type | Default | Description |
---|
localizePricing | boolean | true | Convert to local currency |
price (required) | number | 0 | The price of the product. |
className | string | ” | custom class name for the component |
PDPriceDecimal
Displays just the decimal portion.
<PDPriceDecimal price={99.99} />
Configuration Options
Option | Type | Default | Description |
---|
localizePricing | boolean | true | Convert to local currency |
price (required) | number | 0 | The price of the product. |
className | string | ” | custom class name for the component |
minimumDecimalDigits | number | 0 | The minimum number of decimal digits |
maximumDecimalDigits | number | 2 | The maximum number of decimal digits. Maximum is 2. |
PDPriceCurrencySymbol
Renders the currency symbol (like $, ₹, €).
<PDPriceCurrencySymbol className="currency-symbol" />
Configuration Options
Option | Type | Default | Description |
---|
localizePricing | boolean | true | Convert to local currency |
className | string | ” | custom class name for the component |
PDPriceCurrencyCode
Renders the full currency code (like USD, INR, EUR).
Configuration Options
Option | Type | Default | Description |
---|
localizePricing | boolean | true | Convert to local currency |
className | string | ” | custom class name for the component |
PDPriceDecimalSeparator
Renders the decimal separator based on the user’s location (e.g., ”.”).
<PDPriceDecimalSeparator />
Configuration Options
Option | Type | Default | Description |
---|
localizePricing | boolean | true | Convert to local currency |
price (required) | number | 0 | The price of the product. |
className | string | ” | custom class name for the component |
Custom Display Example
Example using all components to create a custom layout:
<div className="custom-price-display">
<PDPriceCurrencySymbol localizePricing={true} />
<PDPriceInteger price={99.99} />
<PDPriceDecimalSeparator price={99.99} />
<PDPriceDecimal price={99.99} />
<PDPriceCurrencyCode localizePricing={true} />
</div>
Using the Sandbox
If you want to use the sandbox, you need to set the environment
option to sandbox
in the ParityDealsProvider
.
<ParityDealsProvider productId="promo_7e2de26fb47644e58e867a20i898j748" environment="sandbox">
{/* Your app components */}
</ParityDealsProvider>
Support
Need help or have questions? Reach out to us anytime at hi@paritydeals.com.