Skip to content

Commit

Permalink
Add A/B testing possibility, resolves #63
Browse files Browse the repository at this point in the history
  • Loading branch information
tjjalava committed Aug 2, 2017
1 parent 8005938 commit 829d9b8
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 15 deletions.
2 changes: 1 addition & 1 deletion index2.html
Original file line number Diff line number Diff line change
Expand Up @@ -829,7 +829,7 @@ <h2>Product Tags</h2>
<script type="text/javascript">
//<![CDATA[
var sizeme_options = {
service_status: "on",
serviceStatus: "on",
buttonize: "no",
pluginVersion: "MAG1-1.0.0",
shopType: "magento",
Expand Down
2 changes: 1 addition & 1 deletion src/common/MeasurementInput.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ class MeasurementInput extends React.Component {
this.setState(state, () => {
if (doDispatch) {
this.props.onChange(modelValue);
trackEvent("measurementEntered", "Store: Measurement entered or changed in input field");
trackEvent("measurementEntered", "Store: Measurement entered or changed in input field");
}
});
}
Expand Down
49 changes: 36 additions & 13 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* global VERSION, BUILD_DATE */
/* global VERSION, BUILD_DATE, sizeme_options */
import "babel-polyfill";

import React from "react";
Expand All @@ -16,8 +16,26 @@ import "./scss/index.scss";

console.log("Initializing SizeMe, version " + VERSION + ", built on " + BUILD_DATE);

const section = document.createElement("div");
document.querySelector(uiOptions.appendContentTo).appendChild(section);
let sizemeDisabled = false;

if (sizeme_options.serviceStatus === "ab") {
const storageABValue = localStorage.getItem("sizemeABDisabled");

if (!storageABValue) {
sizemeDisabled = Math.floor(Math.random() * 100) % 2 === 0;
localStorage.setItem("sizemeABDisabled", JSON.stringify(sizemeDisabled));
} else {
sizemeDisabled = JSON.parse(storageABValue);
}

console.log("SizeMe A/B testing, status: " + (sizemeDisabled ? "B" : "A"));

if (sizemeDisabled) {
trackEvent("productPageLoggedOutABDenied", "Store: Product page load, logged out, AB SM denied");
} else {
trackEvent("productPageLoggedOutABEnabled", "Store: Product page load, logged out, AB SM enabled");
}
}

const { addToCartElement, addToCartEvent } = uiOptions;
if (addToCartElement && addToCartEvent) {
Expand All @@ -39,13 +57,18 @@ if (addToCartElement && addToCartEvent) {
}
}

//noinspection RequiredAttributes
render(
<I18nextProvider i18n={i18n}>
<Provider store={sizemeStore}>
<SizeMeApp/>
</Provider>
</I18nextProvider>,
section,
() => SizeSelector.initSizeSelector(size => sizemeStore.dispatch(selectSize(size)))
);
if (!sizemeDisabled) {
const section = document.createElement("div");
document.querySelector(uiOptions.appendContentTo).appendChild(section);

//noinspection RequiredAttributes
render(
<I18nextProvider i18n={i18n}>
<Provider store={sizemeStore}>
<SizeMeApp/>
</Provider>
</I18nextProvider>,
section,
() => SizeSelector.initSizeSelector(size => sizemeStore.dispatch(selectSize(size)))
);
}

0 comments on commit 829d9b8

Please sign in to comment.