npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

bigcommerce-product-options-price-diff

v0.1.0

Published

Get price diff for product options in BigCommerce

Downloads

1

Readme

BigCommerce Product Option Price Difference

Display the product option price difference for each corresponding product option under a Stencil theme.

Install

npm install brandlabs/bigcommerce-product-options-price-diff

Usage

Step 1: Adjust Webpack configuration:

First, include this module's folder in webpack.common.js config for babel-loader.

Just add |bigcommerce-product-options-price-diff after stencil-utils in the include line:

{
    module: {
        rules: [
            {
                test: /\.js$/,
                include: /(assets\/js|assets\\js|stencil-utils|bigcommerce-product-options-price-diff)/,
                use: {
                    loader: 'babel-loader'
                }
            }
        }
    }
}

Then, in the plugins section, add the paths: true setting to the LodashPlugin:

    new LodashPlugin({ paths: true }), // Complements babel-plugin-lodash by shrinking its cherry-picked builds further.

Step 2: Inject product.options in product-view.html.

Just add the following line at the top of templates/components/products/product-view.html and templates/components/amp/products/product-view.html:

{{inject 'productOptions' product.options}}

Step 3: Import the module code and call the initialization function.

The most recommended place for this is at assets/js/theme/common/product-details.js.

First, add the following line to the "imports" section at the top:

import productOptionsPriceDiff from 'bigcommerce-product-options-price-diff';

Then, add the following line inside the constructor function:

    productOptionsPriceDiff({ productOptions: this.context.productOptions });

You are done.

The product price differences shall appear after each product option label which adds to or subtracts from the price.

Customization

onGetPrice Callback

  • callback appends an add/subtract text to the option label.

Settings

You can further control the functionality by providing specific settings to the object passed as argument to productOptionsPriceDiff call.

This function returns a PriceDiff instance, which can also be used for more advanced customization.

Check src/product-options-price-diff.js file for details.

Authors

  • João Henrique de Andrade Bruni
  • Shota Karkashadze
  • Martin Chuka

License

This project is licensed under the MIT License - see the LICENSE file for details

alt text