tapcart-codeblocks-sdk v1.1.0
Tapcart Codeblocks SDK
Tapcart Codeblocks™ SDK allows merchant developed codeblocks to interact with the native iOS/Android Apps.
Installation
All dependencies are already added into package.json. Install them using yarn.
yarn installBuilding
Webpack and Babel are used to build both the vanilla and react versions of the SDK. Run the following command to build after editing src.
yarn buildThe final build files are put in the dist folder.
Examples
All sample projects which use the SDK are located in the examples folder. These can be used for testing the SDK locally during development.
Vanilla
A sample server has been setup to serve the vanillaJS SDK. Once the SDK source files have been edited, run the following commands from root of the project.
yarn build
yarn serve-localThe server is setup with hot reloading so any updates to the SDK will be reflected automatically after running yarn build.
Example Usage
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <title>SDK Test HTML</title>
        <script type="text/javascript" defer src="http://localhost:3000/tapcart.js"></script>
        <script type="text/javascript" defer src="script.js"></script>
    </head>
    <body id="body" style="height: 100vh;">
        <div id="root"></div>
    </body>
</html>// script.js
(function () {
	let merchantFunc = Function(`Tapcart.registerEventHandler("cart/updated",function(eventName,eventData){ console.log("Event Handler:", eventName  ,eventData); })`);
	Tapcart.registerMerchantJavascript(merchantFunc);
})()
// Test script - Simulates what app can/needs to do after loading codeblock/webview
setTimeout(function () {
	Tapcart.init({ variables: { firstName: "Gopi" } });
	Tapcart.triggerEvent("cart/updated",{"total": "10.00",currency: "USD"})
},3000);React
To test the react SDK, yalc is used to facilitate local npm package linking.
1.) First, install yalc globally
npm i -g yalc2.) Build/Publish to local yalc repo. Run following from project root
yarn build
yarn publish-local3.) Run example react app from /examples/react/react-app directory
yarn codeblocks/add
yarn install
yarn start4.) To reflect changes made to SDK in the example React App
- Build & Publish from project root
 
yarn build
yarn publish-local- Update tapcart-codeblocks-react package in 
/examples/react/react-appdirectory 
yarn codeblocks/updateExample Usage
// App.js
import {TapcartProvider,createClient} from "tapcart-codeblocks-react";
import InnerComponent from "./InnerComponent";
function App() {
  const tapcartClient = createClient({test: false});
  return (
    <div className="App">
      <TapcartProvider client={tapcartClient}>
         <InnerComponent/>
         ...
      </TapcartProvider>
    </div>
  );
}
export default App;// InnerComponent.js
import {useActions} from "tapcart-codeblocks-react";
function InnerComponent(props) {
    let {openProduct,openCollection,openCart} = useActions();
    return <button onClick={() => openProduct("1232242232132")}>Inner Component</button>
}
export default InnerComponent;Docs
The SDK acts as a communication bridge between the native iOS/Android Webviews and the Web Apps built by the merchants. This two way communication is powered by events and actions.
Actions allow the SDK users to interact with native app functionality via JS. The following actions are supported currently:
Tapcart.addToCart
Tapcart.openProduct
Tapcart.openCollection
Tapcart.openCart
Tapcart.applyDiscount
Tapcart.applyGiftCard
Tapcart.getCustomerIdentity
Events allow SDK users to respond to changes in the native apps; The following events are supported currently:
cart/updated
discount/applied
giftcard/applied
product/opened
collection/opened
2 years ago