Kibo eCommerce enables shoppers to pay for products using your rewards program. Shoppers can now use credit earned through your rewards program to pay for products online.
Use Cases
A shopper has registered with your stores’ rewards program and wants to use rewards points or vouchers to pay for a product on your Kibo eCommerce site.
Feature Limitations
Currently the Kibo eCommerce system can integrate with external customer rewards systems and process customer rewards and vouchers as payment, but it cannot create or manage customer rewards profiles.
Enable Pay with Rewards
This feature requires a combination of theme changes and API Extension actions to enable.
Update your Theme
Ask your theme developer to make the required changes to your theme to enable this feature, as detailed in the GitHub Pull Request.These sample theme changes require you to create a storefront order attribute.
API Extension Actions to Implement
Implement the following API Extension actions in order to integrate Kibo eCommerce with your rewards system:
getCredits.before or getCredits.after
Use this code sample as a reference when implementing either getCredits.before (if using only custom purchase rewards on site) or getCredit.after (if using both store credits and custom purchase rewards on site).
/*--Custom purchase rewards functionality leveraging NG store credit model--This is a sample action to add additional custom rewards to NG store creditscreditType on NG Store credit object will need to be set to 'Custom'*/var _ = require('underscore');var CustomerAccountFactory = require('mozu-node-sdk/clients/commerce/customer/accounts/customerAttribute');var OrderAttributeFactory = require('mozu-node-sdk/clients/commerce/orders/orderAttribute');module.exports = function (context, callback) {var response = context.response.body;var requestParams = context.request.params;var customerId = null;console.log("Filter : " + requestParams.filter);if (!requestParams.filter) {console.log("No filter present! Calling back..");callback();return;}var customerIdString = requestParams.filter.match(/(CustomerId eq ["]?\\d+["]?)/gi);if (customerIdString) {//Check if the reward no. is stored on a customer attribute. console.log("Found Customer Id in the filter. Looking for a customer attribute to find reward no.");var id = customerIdString[0].match(/\\d+/);customerId = id[0];var customerResource = CustomerAccountFactory(context.apiContext);customerResource.context['user-claims'] = null;customerResource.getAccountAttribute({ accountId: customerId, attributeFQN: "tenant~purchase-reward-number" }) //replace attribute FQN with the correct name that you setup.then(function (attribute) {var purchaseRewardNo = attribute.values[>0].toString();console.log("purchase Reward No:" + purchaseRewardNo);var purchaseRewards = getPurchaseRewards(purchaseRewardNo);var responseItems = response.items;var responseItemsWithpurchaseRewards = responseItems.concat(purchaseRewards);context.response.body.items = responseItemsWithpurchaseRewards;response.totalCount = response.totalCount + purchaseRewards.length;callback();}).catch(function (err) {console.error(err);callback();});}else {console.log("Found Code comparision filter, extracting purchase reward no.");var codeString = requestParams.filter.match(/(Code eq ["]?.\\w+["]?)/gi)[0].replace(/"/g, "").split(" ");customerId = codeString[2];console.log("Purchase Reward No:" + customerId);var purchaseRewards = getPurchaseRewards(customerId);var responseItems = response.items;var responseItemsWithPurchaseRewards = responseItems.concat(purchaseRewards);context.response.body.items = responseItemsWithPurchaseRewards;response.totalCount = response.totalCount + purchaseRewards.length;callback();}};function getPurchaseRewards(rewardNo) {//Call your external system to retreive rewards and map it to the Credit Object on NG.//Sample rewards with CreditType set to 'Custom'var rewards = [{"code": "135646846","activationDate": "2017-12-03T06:00:00.000Z","creditType": "Custom", //This needs to 'Custom' for external rewards"customCreditType": "AR","currencyCode": "USD","initialBalance": 10,"currentBalance": 10,"expirationDate": "2018-11-14T00:00:00.000Z","auditInfo": {"updateDate": "2017-11-20T22:17:44.218Z","createDate": "2017-11-14T18:53:58.736Z","updateBy": "88318826167a438ab4bf32679971c561","createBy": "355060a60a5e48eeb7f2fb8d92af2ba5"}},{"code": "135646847","activationDate": "2017-12-03T06:00:00.000Z","creditType": "Custom","customCreditType": "AR","currencyCode": "USD","initialBalance": 100,"currentBalance": 100,"expirationDate": "2018-11-14T00:00:00.000Z","auditInfo": {"updateDate": "2017-11-20T22:17:44.218Z","createDate": "2017-11-14T18:53:58.736Z","updateBy": "88318826167a438ab4bf32679971c561","createBy": "355060a60a5e48eeb7f2fb8d92af2ba5"}}];return rewards;}
/*** Sample action implementation for purchase rewards * In case of customer having a specific account no.(reward no.) with external rewards system, this sample action* is used to pass this information in a databag on payment actiom to use it when capturing store credit.*/var OrderAttributeFactory = require('mozu-node-sdk/clients/commerce/orders/orderAttribute');var _ = require('underscore');module.exports = function (context, callback) {var payment = context.get.payment();var isForOrder = context.get.isForOrder(); //Flag to indicate if the action is running in order context.//Set reward information on payment data bag//Assuming external reward no. is stored on a storefront order attributeif (payment.paymentType === "StoreCredit" && payment.billingInfo.storeCreditType === "Custom" && (payment.status === "New" || payment.status === "Collected") && isForOrder) {console.log("Order Context");var orderAttributeResource = OrderAttributeFactory(context.apiContext);orderAttributeResource.getOrderAttributes({ orderId: context.get.payment().orderId }).then(function (attributes) {console.log("Looking for purchase reward order attribute");var attr = _.findWhere(attributes, { fullyQualifiedName: "tenant~purchaseRewardNumber" }); //replace attribute FQN with the correct name that you setup var purchaseRewardNo = attr.values[0].toString();console.log("purchase Reward No:" + purchaseRewardNo);context.exec.setPaymentData("rewardData", { "purchaseRewardNo": purchaseRewardNo, "creditType": "purchaseReward" });callback();}).catch(function (err) {console.error(err);callback();});}else {callback();}};
/*** This Sample action is used to achieve purhcase rewards functionality* When capturing a store credit payment, this action bypasses NG store credit capture* by calling external system to capture.* Databag set in the payment action before can be used here to retrieve account no.(reward no.), but the voucher number used for the payment * itself is available on request param 'code' field.*/var CustomerAccountFactory = require('mozu-node-sdk/clients/commerce/customer/accounts/customerAttribute');var _ = require('underscore');module.exports = function (context, callback) {var requestParams = context.request.params;var creditTransaction = requestParams.creditTransaction;if (!_.has(creditTransaction.data, "rewardData")) {console.log("No reward data present! Calling back..");callback();return;}var rewardData = creditTransaction.data.rewardData;//Call your external reward system to perform a capture. console.log("Amount to " + creditTransaction.transactionType + ": " + creditTransaction.impactAmount + " for voucher no: " + requestParams.code);var orderId = creditTransaction.orderId;var amount = creditTransaction.impactAmount;//Once captured, create a success responsevar transaction = {"transactionType": creditTransaction.transactionType,"impactAmount": amount,"orderId": orderId,"comments": "This is purchaseReward transaction","auditInfo": {"updateDate": "2017-11-20T22:17:44.218Z","createDate": "2017-11-14T18:53:58.736Z","updateBy": "purchaseRewards Application","createBy": "purchaseRewards Application"}};context.response.status = 200;context.response.body = transaction;//bypass NG capturecontext.response.end();callback();};
⌘I
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Kibo Documentation","description":"Product guides and walkthroughs for using the Kibo Composable Commerce Platform. Developers Data models and guides for API, API Extensions, SDKs, applications, and more","colors":{"primary":"#656868","light":"#656868","dark":"#E5E6E7"},"logo":{"light":"https://mintcdn.com/kibocommerce-59e68a4a/co0riR4Ly13V9RtQ/images/Kibo-FC-Black.png?fit=max\u0026auto=format\u0026n=co0riR4Ly13V9RtQ\u0026q=85\u0026s=1221d3325241f73ba565a962f17679c3","dark":"https://mintcdn.com/kibocommerce-59e68a4a/co0riR4Ly13V9RtQ/images/Kibo-FC-White.png?fit=max\u0026auto=format\u0026n=co0riR4Ly13V9RtQ\u0026q=85\u0026s=963cc5ed15aca3ad83df9526d60e7046"},"favicon":"https://mintcdn.com/kibocommerce-59e68a4a/co0riR4Ly13V9RtQ/images/favicon.jpg?fit=max\u0026auto=format\u0026n=co0riR4Ly13V9RtQ\u0026q=85\u0026s=6881a678e5c044b3121ba29048aea8d0","navbar":{"links":[{"href":"https://kibocommerce.com/login/","label":"Login"}],"primary":{"type":"button","label":"Get Started","href":"https://kibocommerce.com/request-a-demo/"}},"footer":{"socials":{"website":"https://www.kibocommerce.com","x":"https://twitter.com/KiboCommerce","github":"https://github.com/KiboSoftware","linkedin":"https://www.linkedin.com/company/kibocommerce","youtube":"https://www.youtube.com/c/kibocommerce"}},"seo":{"metatags":{"canonical":"https://docs.kibocommerce.com"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"gtm":{"tagId":"GTM-PD73CHF"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Log in to Kibo","icon":"sign-in","href":"https://kibocommerce.com/login"},{"anchor":"Blog","icon":"newspaper","href":"https://kibocommerce.com/blog"},{"anchor":"Support","icon":"envelope","href":"https://kibocommerce.com/contact-us"},{"anchor":"KIBO Partners","icon":"github","href":"https://github.com/KiboPartners"},{"anchor":"KIBO Software","icon":"github","href":"https://github.com/KiboSoftware/"},{"anchor":"Release Notes","icon":"route","href":"https://docs.kibocommerce.com/release-notes/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kibocommerce-59e68a4a","hasAudioNarration":false,"actualSubdomain":"kibocommerce-59e68a4a","customDomains":["docs.kibocommerce.com"],"gitSource":{"type":"github","owner":"kibo-ucp","repo":"unified-documentation","deployBranch":"prod","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af6322034c3192a42d2e5b2","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Developers","count":2325},{"language":"default","tag":"API reference","count":1723},{"language":"default","tag":"Users","count":427},{"language":"default","tag":"Commerce","count":388},{"language":"default","tag":"Catalog Admin","count":355},{"language":"default","tag":"Release Notes","count":332},{"language":"default","tag":"Fulfillment","count":292},{"language":"default","tag":"API Extensions Reference","count":213},{"language":"default","tag":"Customer","count":182},{"language":"default","tag":"Videos","count":133}],"searchSettings":{"maxResults":10}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":":root{--assistant-sheet-width: 0px !important}.max-w-xl{max-width:50rem}#topbar-cta-button a{background-color:#ffce01}#topbar-cta-button span.text-white{color:#2b2b2b;font-weight:500}.cta-banner{background-color:#1e3a5f;background-image:url('/images/footer_cta_background.jpg');background-size:cover;background-position:center;border-radius:12px;padding:60px 48px;margin:40px 0;text-align:left}.cta-banner-content{max-width:800px}.cta-banner-title{color:#ffffff;font-size:28px;font-weight:700;line-height:1.3;margin:0 0 16px 0}.cta-banner-description{color:#ffffff;font-size:15px;line-height:1.6;margin:0 0 2rem 0;opacity:0.9}.cta-banner-buttons{display:flex;gap:16px;justify-content:flex-start;flex-wrap:wrap}.cta-button{display:inline-flex;align-items:center;gap:10px;padding:12px 28px;border-radius:50px;font-size:14px;font-weight:600;text-decoration:none;transition:all 0.2s ease}.cta-button-primary{background-color:#ffce01;color:#1e3a5f}.cta-button-primary:hover{background-color:#ffffff;color:#1e3a5f}.cta-button-secondary{background-color:transparent;color:#ffffff;border:2px solid #ffffff}.cta-button-secondary:hover{background-color:#ffffff;color:#1e3a5f}.cta-button-arrow{width:14px;height:14px;transition:transform 0.2s ease}.cta-button:hover .cta-button-arrow{transform:translateX(4px)}.cta-header{background-color:#1e3a5f;background-image:url('/images/cta_background.png');background-size:cover;background-position:center;border-radius:12px;padding:60px 48px;margin:40px 0;text-align:left}.cta-header-content{max-width:600px}.cta-header-label{color:#ffce01;font-size:14px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;margin:0 0 16px 0}.cta-header-title{color:#ffffff;font-size:36px;font-weight:700;font-style:italic;line-height:1.2;margin:0 0 20px 0}.cta-header-description{color:#ffffff;font-size:15px;line-height:1.6;margin:0 0 28px 0;opacity:0.9}.cta-header-buttons{display:flex;gap:16px;justify-content:flex-start;flex-wrap:wrap}#guidde-frame{aspect-ratio:auto!important;width:100%!important;height:calc(\n 100dvh\n - var(--mintlify-slot-header-height, 3.5rem) /* fixed navbar */\n - var(--banner-height, 0px) /* announcement banner */\n - 10rem /* h2 + cards + gutters */\n )!important;min-height:20rem}"}],"page":{"pagePath":"pages/pay-with-rewards","slug":"/pages/pay-with-rewards","pageMetadata":{"title":"Pay with Rewards","description":null,"href":"/pages/pay-with-rewards"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Kibo eCommerce enables shoppers to pay for products using your rewards program. Shoppers can now use credit earned through your rewards program to pay for products online.`}),`\n`,_jsx(Heading,{level:`2`,id:`use-cases`,children:`Use Cases`}),`\n`,_jsx(_components.p,{children:`A shopper has registered with your stores’ rewards program and wants to use rewards points or vouchers to pay for a product on your Kibo eCommerce site.`}),`\n`,_jsx(Heading,{level:`2`,id:`feature-limitations`,children:`Feature Limitations`}),`\n`,_jsx(_components.p,{children:`Currently the Kibo eCommerce system can integrate with external customer rewards systems and process customer rewards and vouchers as payment, but it cannot create or manage customer rewards profiles.`}),`\n`,_jsx(Heading,{level:`2`,id:`enable-pay-with-rewards`,children:`Enable Pay with Rewards`}),`\n`,_jsx(_components.p,{children:`This feature requires a combination of theme changes and API Extension actions to enable.`}),`\n`,_jsx(Heading,{level:`3`,id:`update-your-theme`,children:`Update your Theme`}),`\n`,_jsxs(_components.p,{children:[`Ask your theme developer to make the required changes to your theme to enable this feature, as detailed in the `,_jsx(_components.a,{href:`https://github.com/Mozu/core-theme/tree/purchase-rewards`,children:`GitHub Pull Request`}),`.`]}),`\n`,_jsx(_components.p,{children:`These sample theme changes require you to create a storefront order attribute.`}),`\n`,_jsx(Heading,{level:`3`,id:`api-extension-actions-to-implement`,children:`API Extension Actions to Implement`}),`\n`,_jsx(_components.p,{children:`Implement the following API Extension actions in order to integrate Kibo eCommerce with your rewards system:`}),`\n`,_jsx(Heading,{level:`4`,id:`getcredits-before-or-getcredits-after`,children:`getCredits.before or getCredits.after`}),`\n`,_jsxs(_components.p,{children:[`Use this code sample as a reference when implementing either `,_jsx(_components.a,{href:`/pages/get-credits-before`,children:`getCredits.before`}),` (if using only custom purchase rewards on site) or `,_jsx(_components.a,{href:`/pages/getcredits-after`,children:`getCredit.after`}),` (if using both store credits and custom purchase rewards on site).`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`103`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`103`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/*`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--Custom purchase rewards functionality leveraging NG store credit model--`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`This is a sample action to add additional custom rewards to NG store credits`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`creditType on NG Store credit object will need to be set to 'Custom'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`*/`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var _ = require('underscore');`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var CustomerAccountFactory = require('mozu-node-sdk/clients/commerce/customer/accounts/customerAttribute');`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var OrderAttributeFactory = require('mozu-node-sdk/clients/commerce/orders/orderAttribute');`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`module.exports = function (context, callback) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var response = context.response.body;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var requestParams = context.request.params;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var customerId = null;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.log(\"Filter : \" + requestParams.filter);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`if (!requestParams.filter) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.log(\"No filter present! Calling back..\");`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`callback();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`return;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var customerIdString = requestParams.filter.match(/(CustomerId eq [\"]?\\\\\\\\d+[\"]?)/gi);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`if (customerIdString) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`//Check if the reward no. is stored on a customer attribute. `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.log(\"Found Customer Id in the filter. Looking for a customer attribute to find reward no.\");`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var id = customerIdString[0].match(/\\\\\\\\d+/);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`customerId = id[0];`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var customerResource = CustomerAccountFactory(context.apiContext);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`customerResource.context['user-claims'] = null;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`customerResource.getAccountAttribute({ accountId: customerId, attributeFQN: \"tenant~purchase-reward-number\" }) //replace attribute FQN with the correct name that you setup`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`.then(function (attribute) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var purchaseRewardNo = attribute.values[>0].toString();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.log(\"purchase Reward No:\" + purchaseRewardNo);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var purchaseRewards = getPurchaseRewards(purchaseRewardNo);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var responseItems = response.items;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var responseItemsWithpurchaseRewards = responseItems.concat(purchaseRewards);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`context.response.body.items = responseItemsWithpurchaseRewards;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`response.totalCount = response.totalCount + purchaseRewards.length;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`callback();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`})`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`.catch(function (err) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.error(err);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`callback();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`});`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`else {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.log(\"Found Code comparision filter, extracting purchase reward no.\");`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var codeString = requestParams.filter.match(/(Code eq [\"]?.\\\\\\\\w+[\"]?)/gi)[0].replace(/\"/g, \"\").split(\" \");`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`customerId = codeString[2];`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.log(\"Purchase Reward No:\" + customerId);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var purchaseRewards = getPurchaseRewards(customerId);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var responseItems = response.items;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var responseItemsWithPurchaseRewards = responseItems.concat(purchaseRewards);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`context.response.body.items = responseItemsWithPurchaseRewards;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`response.totalCount = response.totalCount + purchaseRewards.length;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`callback();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`};`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`function getPurchaseRewards(rewardNo) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`//Call your external system to retreive rewards and map it to the Credit Object on NG.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`//Sample rewards with CreditType set to 'Custom'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var rewards = [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"code\": \"135646846\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"activationDate\": \"2017-12-03T06:00:00.000Z\",`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{children:`\"creditType\": \"Custom\",`}),_jsx(_components.span,{children:` //This needs to 'Custom' for external rewards`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"customCreditType\": \"AR\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"currencyCode\": \"USD\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"initialBalance\": 10,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"currentBalance\": 10,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"expirationDate\": \"2018-11-14T00:00:00.000Z\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"auditInfo\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"updateDate\": \"2017-11-20T22:17:44.218Z\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"createDate\": \"2017-11-14T18:53:58.736Z\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"updateBy\": \"88318826167a438ab4bf32679971c561\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"createBy\": \"355060a60a5e48eeb7f2fb8d92af2ba5\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`},`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"code\": \"135646847\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"activationDate\": \"2017-12-03T06:00:00.000Z\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"creditType\": \"Custom\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"customCreditType\": \"AR\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"currencyCode\": \"USD\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"initialBalance\": 100,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"currentBalance\": 100,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"expirationDate\": \"2018-11-14T00:00:00.000Z\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"auditInfo\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"updateDate\": \"2017-11-20T22:17:44.218Z\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"createDate\": \"2017-11-14T18:53:58.736Z\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"updateBy\": \"88318826167a438ab4bf32679971c561\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"createBy\": \"355060a60a5e48eeb7f2fb8d92af2ba5\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`];`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`return rewards;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`4`,id:`action-before`,children:`action.before`}),`\n`,_jsxs(_components.p,{children:[`Use this sample when implementing `,_jsx(_components.a,{href:`/pages/action-before`,children:`action.before`}),`.`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`35`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`35`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/**`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`* Sample action implementation for purchase rewards `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`* In case of customer having a specific account no.(reward no.) with external rewards system, this sample action`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`* is used to pass this information in a databag on payment actiom to use it when capturing store credit.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`*/`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var OrderAttributeFactory = require('mozu-node-sdk/clients/commerce/orders/orderAttribute');`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var _ = require('underscore');`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`module.exports = function (context, callback) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var payment = context.get.payment();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var isForOrder = context.get.isForOrder(); //Flag to indicate if the action is running in order context.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`//Set reward information on payment data bag`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`//Assuming external reward no. is stored on a storefront order attribute`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`if (payment.paymentType === \"StoreCredit\" \u0026\u0026 payment.billingInfo.storeCreditType === \"Custom\" \u0026\u0026 (payment.status === \"New\" || payment.status === \"Collected\") \u0026\u0026 isForOrder) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.log(\"Order Context\");`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var orderAttributeResource = OrderAttributeFactory(context.apiContext);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`orderAttributeResource.getOrderAttributes({ orderId: context.get.payment().orderId })`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`.then(function (attributes) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.log(\"Looking for purchase reward order attribute\");`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var attr = _.findWhere(attributes, { fullyQualifiedName: \"tenant~purchaseRewardNumber\" }); //replace attribute FQN with the correct name that you setup `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var purchaseRewardNo = attr.values[0].toString();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.log(\"purchase Reward No:\" + purchaseRewardNo);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`context.exec.setPaymentData(\"rewardData\", { \"purchaseRewardNo\": purchaseRewardNo, \"creditType\": \"purchaseReward\" });`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`callback();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`})`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`.catch(function (err) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.error(err);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`callback();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`});`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`else {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`callback();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`};`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`4`,id:`addtransaction-before`,children:`addTransaction.before`}),`\n`,_jsxs(_components.p,{children:[`Use this sample when implementing `,_jsx(_components.a,{href:`/pages/add-transaction-before`,children:`addTransaction.before`}),`.`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`47`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`47`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/**`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`* This Sample action is used to achieve purhcase rewards functionality`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`* When capturing a store credit payment, this action bypasses NG store credit capture`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`* by calling external system to capture.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`* Databag set in the payment action before can be used here to retrieve account no.(reward no.), but the voucher number used for the payment `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`* itself is available on request param 'code' field.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`*/`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var CustomerAccountFactory = require('mozu-node-sdk/clients/commerce/customer/accounts/customerAttribute');`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var _ = require('underscore');`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`module.exports = function (context, callback) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var requestParams = context.request.params;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var creditTransaction = requestParams.creditTransaction;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`if (!_.has(creditTransaction.data, \"rewardData\")) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.log(\"No reward data present! Calling back..\");`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`callback();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`return;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var rewardData = creditTransaction.data.rewardData;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`//Call your external reward system to perform a capture. `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`console.log(\"Amount to \" + creditTransaction.transactionType + \": \" + creditTransaction.impactAmount + \" for voucher no: \" + requestParams.code);`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var orderId = creditTransaction.orderId;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var amount = creditTransaction.impactAmount;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`//Once captured, create a success response`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`var transaction = {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"transactionType\": creditTransaction.transactionType,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"impactAmount\": amount,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"orderId\": orderId,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"comments\": \"This is purchaseReward transaction\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"auditInfo\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"updateDate\": \"2017-11-20T22:17:44.218Z\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"createDate\": \"2017-11-14T18:53:58.736Z\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"updateBy\": \"purchaseRewards Application\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"createBy\": \"purchaseRewards Application\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`};`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`context.response.status = 200;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`context.response.body = transaction;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`//bypass NG capture`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`context.response.end();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`callback();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`};`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Pay with Rewards","description":null,"href":"/pages/pay-with-rewards"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Use Cases","slug":"use-cases","depth":2,"children":[]},{"title":"Feature Limitations","slug":"feature-limitations","depth":2,"children":[]},{"title":"Enable Pay with Rewards","slug":"enable-pay-with-rewards","depth":2,"children":[{"title":"Update your Theme","slug":"update-your-theme","depth":3,"children":[]},{"title":"API Extension Actions to Implement","slug":"api-extension-actions-to-implement","depth":3,"children":[]},{"title":"getCredits.before or getCredits.after","slug":"getcredits-before-or-getcredits-after","depth":4,"children":[]},{"title":"action.before","slug":"action-before","depth":4,"children":[]},{"title":"addTransaction.before","slug":"addtransaction-before","depth":4,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/kibocommerce-59e68a4a/408c06c822948494/scripts/extract-openapi-overviews.js","/_mintlify/custom/kibocommerce-59e68a4a/bf2430eda4d1b186/scripts/escape-hypr-syntax.js","/_mintlify/custom/kibocommerce-59e68a4a/60a3436235ff3c2c/scripts/fix-dollar-signs.js","/_mintlify/custom/kibocommerce-59e68a4a/357d3068900eb78b/scripts/fix-trailing-numbers.js","/_mintlify/custom/kibocommerce-59e68a4a/97477ebfe35a9e73/scripts/remove-style-attrs.js","/_mintlify/custom/kibocommerce-59e68a4a/bc58a8690a512f6c/assistant.js"],"subdomain":"kibocommerce-59e68a4a","siteName":"Kibo Documentation","title":"Pay with Rewards - Kibo Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T03:56:26.301Z","originalFileLocation":"pages/pay-with-rewards.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Kibo Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kibocommerce-59e68a4a/EQFeANFy5Vl7dEYF/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/kibocommerce-59e68a4a/EQFeANFy5Vl7dEYF/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kibocommerce-59e68a4a/EQFeANFy5Vl7dEYF/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kibocommerce-59e68a4a/EQFeANFy5Vl7dEYF/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kibocommerce-59e68a4a/EQFeANFy5Vl7dEYF/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kibocommerce-59e68a4a/EQFeANFy5Vl7dEYF/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kibocommerce-59e68a4a/EQFeANFy5Vl7dEYF/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kibocommerce-59e68a4a/EQFeANFy5Vl7dEYF/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kibocommerce-59e68a4a/EQFeANFy5Vl7dEYF/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Pay with Rewards - Kibo Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kibo Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kibocommerce.com/pages/pay-with-rewards\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kibocommerce-59e68a4a.mintlify.site/_mintlify/api/og/v2?division=Order+Payments\u0026amp;title=Pay+with+Rewards\u0026amp;theme=345ebbfb5a57e59e4164bcae\u0026amp;signature=42f36eb82133e0affb4c5fb6d2ad9658102a46cf21cc3427e695bb8cd0cef6a2\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Pay with Rewards - Kibo Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kibocommerce-59e68a4a.mintlify.site/_mintlify/api/og/v2?division=Order+Payments\u0026amp;title=Pay+with+Rewards\u0026amp;theme=345ebbfb5a57e59e4164bcae\u0026amp;signature=42f36eb82133e0affb4c5fb6d2ad9658102a46cf21cc3427e695bb8cd0cef6a2\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/kibocommerce-59e68a4a/EQFeANFy5Vl7dEYF/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kibo Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#656868\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kibocommerce.com/pages/pay-with-rewards\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/pages/pay-with-rewards.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kibocommerce.com/#organization\",\"name\":\"Kibo Documentation\",\"url\":\"https://docs.kibocommerce.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kibocommerce-59e68a4a/co0riR4Ly13V9RtQ/images/Kibo-FC-Black.png?fit=max\u0026auto=format\u0026n=co0riR4Ly13V9RtQ\u0026q=85\u0026s=1221d3325241f73ba565a962f17679c3\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kibocommerce.com#website\",\"name\":\"Kibo Documentation\",\"url\":\"https://docs.kibocommerce.com\",\"publisher\":{\"@id\":\"https://docs.kibocommerce.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kibocommerce.com/pages/pay-with-rewards#webpage\",\"url\":\"https://docs.kibocommerce.com/pages/pay-with-rewards\",\"name\":\"Pay with Rewards\",\"dateModified\":\"2026-11-06T03:56:26.301Z\",\"isPartOf\":{\"@id\":\"https://docs.kibocommerce.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kibocommerce.com/pages/pay-with-rewards#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kibocommerce.com/pages/pay-with-rewards#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Orders\",\"item\":\"https://docs.kibocommerce.com/concept-guides/cart-and-checkout\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Order Payments\",\"item\":\"https://docs.kibocommerce.com/concept-guides/payments\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Pay with Rewards\",\"item\":\"https://docs.kibocommerce.com/pages/pay-with-rewards\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.kibocommerce.com/pages/pay-with-rewards#article\",\"headline\":\"Pay with Rewards\",\"name\":\"Pay with Rewards\",\"url\":\"https://docs.kibocommerce.com/pages/pay-with-rewards\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kibocommerce.com/pages/pay-with-rewards#webpage\"},\"dateModified\":\"2026-11-06T03:56:26.301Z\",\"publisher\":{\"@id\":\"https://docs.kibocommerce.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kibocommerce.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kibo Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Kibo Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/pages/pay-with-rewards.md","siteName":"Kibo Documentation","nav":{"global":{"anchors":[{"anchor":"Log in to Kibo","icon":"sign-in","href":"https://kibocommerce.com/login"},{"anchor":"Blog","icon":"newspaper","href":"https://kibocommerce.com/blog"},{"anchor":"Support","icon":"envelope","href":"https://kibocommerce.com/contact-us"},{"anchor":"KIBO Partners","icon":"github","href":"https://github.com/KiboPartners"},{"anchor":"KIBO Software","icon":"github","href":"https://github.com/KiboSoftware/"},{"anchor":"Release Notes","icon":"route","href":"https://docs.kibocommerce.com/release-notes/"}]},"tabs":[{"tab":"Users","pages":[{"title":"Concept Guides Overview","icon":"book-open","href":"/concept-guides"},{"group":"Catalog","pages":[{"title":"Catalog and Product Architecture","href":"/concept-guides/catalog"},{"group":"Catalogs","pages":[{"title":"Catalog Structure","href":"/pages/catalog-structure"},{"title":"Master Catalogs","href":"/pages/master-catalogs"},{"title":"Catalog and Site Structure Settings","href":"/pages/catalog-and-site-structure-settings-2"},{"title":"Multi-Locale Catalogs","href":"/pages/multi-locale-catalogs"},{"title":"Multi-Currency Catalogs","href":"/pages/multi-currency-catalogs"}]},{"group":"Products","pages":[{"group":"Product Types","pages":[{"title":"Product Types Overview","href":"/pages/product-types-overview"},{"title":"Configure Product Types","href":"/pages/configure-product-types"},{"title":"Product Type Attributes","href":"/pages/product-type-attributes"},{"title":"Display Groups","href":"/pages/display-groups"}]},{"group":"Product Attributes","pages":[{"title":"Product Attributes Overview","href":"/pages/product-attributes-overview"},{"title":"Option Attributes","href":"/pages/option-attributes"},{"title":"Property Attributes","href":"/pages/property-attributes"},{"title":"Variant Property Attributes","href":"/pages/variant-property-attributes"},{"title":"Extra Attributes","href":"/pages/extra-attributes"},{"title":"Mapping Attributes","href":"/pages/mapping-attributes"},{"title":"Attribute Localization","href":"/pages/attribute-localization"}]},{"group":"Substitute Products","pages":[{"title":"Substitute Products Overview","href":"/pages/substitute-products-overview"},{"title":"Configure Substitutions","href":"/pages/configure-substitutions"},{"title":"Shopper Preferences","href":"/pages/shopper-preferences"},{"title":"Substitutions in Order Admin","href":"/pages/substitutions-in-order-admin"},{"title":"Substitutions in Fulfiller UI","href":"/pages/substitutions-in-fulfiller-ui"}]},{"group":"Digital Gift Cards","pages":[{"title":"Digital Gift Card Overview","href":"/pages/digital-gift-card-overview"},{"title":"Standard Product Gift Cards","href":"/pages/standard-product-gift-cards"},{"title":"Configurable Gift Cards","href":"/pages/configurable-gift-cards"}]},{"title":"Product Overview","href":"/pages/product-overview"},{"title":"Configure Products","href":"/pages/configure-products"},{"title":"Schedule Products","href":"/pages/schedule-products"},{"title":"Product Variations","href":"/pages/product-variations"},{"title":"Product Slicing","href":"/pages/product-slicing"},{"title":"Collections","href":"/pages/collections"},{"title":"Quick Edits","href":"/pages/quick-edits"},{"title":"Dynamic Imaging","href":"/pages/dynamic-imaging"},{"title":"Variant Product Images API","href":"/pages/variant-product-images-api"}]},{"group":"Categories","pages":[{"title":"Category Overview","href":"/pages/category-overview"},{"title":"Static Categories","href":"/pages/static-categories"},{"title":"Dynamic Categories","href":"/pages/dynamic-categories"},{"title":"Dynamic Category Expressions","href":"/pages/dynamic-category-expressions"},{"title":"Category Attributes","href":"/pages/category-attributes"},{"title":"Facets","href":"/pages/facets"}]},{"title":"Pricing","href":"/concept-guides/pricing"},{"title":"Price Lists","href":"/pages/price-lists"}]},{"group":"Customers","pages":[{"title":"Customers Overview","href":"/pages/customers-overview"},{"title":"Manage Customer Accounts","href":"/pages/manage-customer-accounts"},{"title":"Customer Account Access","href":"/pages/customer-account-access"},{"title":"Customer Attributes","href":"/pages/customer-attributes"},{"title":"Customer Segments","href":"/pages/customer-segments"},{"title":"Customer Sets","href":"/pages/customer-sets"},{"title":"Customer Purchase Orders","href":"/pages/customer-purchase-orders"}]},{"group":"B2B","pages":[{"title":"B2B Overview","href":"/pages/b2b-overview"},{"title":"Types of B2B Users","href":"/pages/types-of-b2b-users"},{"title":"Manage B2B Accounts","href":"/pages/manage-b2b-accounts"},{"title":"B2B Attributes","href":"/pages/b2b-attributes"},{"title":"Quotes","href":"/pages/quotes"},{"title":"Storefront Accounts","href":"/pages/storefront-accounts"},{"title":"Email Settings","href":"/pages/email-settings"},{"title":"Quick Orders","href":"/pages/quick-orders"},{"group":"B2B Wholesale OMS","pages":[{"title":"Blanket Orders","href":"/pages/blanket-order"},{"title":"Blanket Order — Network-Level Reservation","href":"/pages/blanket-order-network-level-reservation"},{"title":"Call-Off Orders","href":"/pages/call-off-orders"},{"title":"Call Off Release Rules","href":"/pages/call-off-release-rules"},{"title":"Reservations","href":"/pages/reservations"},{"title":"Call Off Reservation Rules","href":"/pages/call-off-reservation-rules"},{"title":"Allocation Rebalancer","href":"/pages/allocation-rebalancer"},{"title":"Future Shipment Rules","href":"/pages/future-shipment-rules"},{"title":"Backorder Shipment Rules","href":"/pages/backorder-shipment-rules"},{"title":"Reservation Rebalancer","href":"/pages/reservation-rebalancer"},{"title":"Steal-For Rules","href":"/pages/steal-for-rules"},{"title":"Steal-From Rules","href":"/pages/steal-from-rules"},{"title":"Shipment Release Rule","href":"/pages/shipment-release-rule"}]},{"title":"B2B Order Release","href":"/pages/b2b-order-release"},{"title":"Purchase Limit Rules","href":"/pages/purchase-limit-rules"}]},{"group":"Fulfillment","pages":[{"title":"Fulfillment","href":"/concept-guides/fulfillment"},{"title":"Ship to Home (STH)","href":"/concept-guides/sth"},{"title":"Buy Online Pickup In Store (BOPIS)","href":"/concept-guides/bopis"},{"title":"Delivery Fulfillment","href":"/concept-guides/delivery-fulfillment"},{"title":"Fulfillment SLAs","href":"/concept-guides/fulfillment-slas"},{"group":"Fulfillment Methods","pages":[{"title":"Fulfillment Method Types","href":"/pages/fulfillment-method-types"},{"title":"Shipping Method Codes","href":"/pages/shipping-method-codes"},{"title":"Fulfillment Object States","href":"/pages/fulfillment-object-states"},{"title":"Ship to Home","href":"/pages/ship-to-home"},{"title":"Delivery","href":"/pages/delivery"},{"title":"Transfer Shipments","href":"/pages/transfer-shipments"},{"title":"Buy Online Pickup In Store","href":"/pages/buy-online-pickup-in-store"},{"title":"Curbside Delivery","href":"/pages/curbside-delivery"},{"title":"STH and Delivery Consolidation","href":"/pages/sth-and-delivery-consolidation"},{"title":"Customizing the BPM","href":"/pages/customizing-the-bpm"}]},{"group":"Manage Shipments","pages":[{"title":"Viewing Shipments","href":"/pages/viewing-shipments"},{"title":"Shipping Manifests","href":"/pages/shipping-manifests"},{"title":"Multi Piece Shipments","href":"/pages/multi-piece-shipments"},{"title":"Package Consolidation","href":"/pages/package-consolidation"},{"title":"Substitutions in Fulfiller UI","href":"/pages/fulfillment-substitutions"},{"title":"Fulfiller Returns","href":"/pages/fulfiller-returns"},{"title":"Fulfillment SLAs","href":"/pages/fulfillment-slas"},{"title":"Hold Shipments","href":"/pages/hold-shipments"},{"title":"Rate Shopping in Fulfillment","href":"/pages/rate-shopping-in-fulfillment"}]},{"group":"Pick and Pack","pages":[{"title":"Pick and Pack Overview","href":"/pages/pick-and-pack-overview"},{"title":"Pick Waves","href":"/pages/pick-waves"},{"title":"Pick Wave Rules","href":"/pages/pick-wave-rules"},{"title":"Packing Slips","href":"/pages/packing-slips"},{"title":"Split Packing Slips","href":"/pages/split-packing-slips"},{"title":"Pick Lists and Sheets","href":"/pages/pick-lists-and-sheets"}]},{"title":"Fulfiller UI Overview","href":"/pages/fulfiller-ui-overview"},{"title":"User Management","href":"/pages/user-management"},{"title":"Fulfillment Messaging","href":"/pages/fulfillment-messaging-overview"},{"title":"Fulfillment Service Items","href":"/pages/fulfillment-service-items"},{"title":"Estimated Delivery Dates","href":"/pages/estimated-delivery-dates"},{"title":"Manage Blocked Locations","href":"/pages/manage-blocked-locations"},{"title":"Fulfiller Theme Customization","href":"/pages/fulfiller-theme-customization"},{"title":"Cartonization","href":"/pages/cartonization"}]},{"group":"Inventory","pages":[{"title":"Inventory Overview","href":"/concept-guides/inventory"},{"group":"Inventory File Import/Export","pages":[{"title":"Inventory Import File","href":"/pages/inventory-import-file"},{"title":"Inventory Export File","href":"/pages/inventory-export-file"},{"title":"Inventory Delta Export Feed","href":"/pages/inventory-delta-export-feed"}]},{"group":"Inventory Segmentation","pages":[{"title":"Inventory Segmentation Overview","href":"/pages/inventory-segmentation-overview"},{"title":"Configure Inventory Tags","href":"/pages/configure-inventory-tags"},{"title":"Apply Tags to Inventory Records","href":"/pages/apply-tags-to-inventory-records"},{"title":"Set Tags in Orders","href":"/pages/set-tags-in-orders"},{"title":"View Inventory Segments","href":"/pages/view-inventory-segments"},{"title":"Manage Tags on Order Items","href":"/pages/update-tags-on-order-items"}]},{"group":"Inventory Use Cases","pages":[{"title":"Backorder Release","href":"/pages/backorder-release"},{"title":"Product Bundles and Product Extras","href":"/pages/product-bundles-and-product-extras"},{"title":"Fulfill Items Without Sufficient Stock","href":"/pages/fulfill-items-without-sufficient-stock"},{"title":"Inventory Workflow Examples","href":"/pages/inventory-workflow-examples"},{"title":"Bulk Inventory Deletion","href":"/pages/bulk-inventory-deletion"}]},{"title":"Real-Time Inventory Service","href":"/pages/real-time-inventory-service"},{"title":"Smart Inventory APIs","href":"/pages/smart-inventory-apis"},{"title":"Inventory Quantity Types","href":"/pages/inventory-quantity-types"},{"title":"Configure Inventory","href":"/pages/configure-inventory"},{"title":"Future Inventory","href":"/pages/future-inventory"},{"title":"Safety Stock Rules","href":"/pages/safety-stock-rules"},{"title":"Granular Inventory Fields","href":"/pages/granular-inventory-fields"},{"title":"Reserve Inventory in Cart","href":"/pages/reserve-inventory-in-cart"},{"title":"Shipments","href":"/pages/shipments"},{"title":"Inventory Audit Logs","href":"/pages/inventory-audit-logs"}]},{"group":"Locations","pages":[{"title":"Locations Overview","href":"/pages/locations-overview"},{"title":"Location Types","href":"/pages/location-types"},{"title":"Location Attributes","href":"/pages/location-attributes"},{"title":"Manage Locations","href":"/pages/manage-locations"},{"title":"Location Groups","href":"/pages/location-groups"}]},{"group":"Marketing","pages":[{"title":"Promotions","href":"/concept-guides/promotions"},{"group":"Discounts","pages":[{"title":"Discounts Overview","href":"/pages/discounts-overview"},{"title":"Configure Discounts","href":"/pages/configure-discounts"},{"title":"Discount Folders","href":"/pages/discount-folders"},{"title":"Variant Discounts","href":"/pages/variant-discounts"},{"title":"Stackable Discounts","href":"/pages/stackable-discounts"},{"title":"Auto-Add Free Product Discount","href":"/pages/auto-add-free-product-discount"},{"title":"Subscription Discounts","href":"/pages/marketing-subscription-discounts"},{"title":"External Discounts","href":"/pages/external-discounts"},{"title":"Discount Extensibility","href":"/pages/discount-extensibility"}]},{"title":"Campaigns","href":"/pages/campaigns"},{"title":"Coupon Sets","href":"/pages/coupon-sets"},{"title":"Marketing Best Practices","href":"/pages/marketing-best-practices"}]},{"group":"CMS","pages":[{"title":"Kibo CMS Overview","href":"/concept-guides/cms-overview"},{"title":"Kibo CMS Integration Overview","href":"/pages/cms-integration-overview"},{"group":"Kibo CMS Content Modeling","pages":[{"title":"Kibo CMS Glossary","href":"/pages/cms-glossary"},{"title":"Content Models and Content Entries","href":"/pages/cms-content-models-and-entries"},{"title":"Create Content Model","href":"/pages/cms-create-content-model"},{"title":"Create Content Model Group","href":"/pages/cms-create-content-model-group"},{"title":"Clone Content Model","href":"/pages/cms-clone-content-model"},{"title":"Manage Content Model Settings","href":"/pages/cms-manage-content-model-settings"},{"title":"Add Validator to Fields","href":"/pages/cms-add-validator-to-fields"},{"title":"Reference Field","href":"/pages/cms-reference-field"},{"title":"Import/Export Content Models","href":"/pages/cms-import-export-content-models"}]},{"group":"Kibo CMS Content","pages":[{"title":"Create Content Entry","href":"/pages/cms-create-content-entry"},{"title":"Content Entry Revisions","href":"/pages/cms-content-entry-revisions"}]},{"group":"Kibo CMS Website Builder","pages":[{"title":"Kibo CMS Website Builder Glossary","href":"/pages/cms-website-builder-glossary"},{"title":"Setting Up the Website Builder","href":"/pages/cms-website-builder-setting-up"},{"title":"Create Page","href":"/pages/cms-create-page"},{"title":"Kibo CMS Website Builder - Next.js Starter Kit","href":"/pages/cms-nextjs-starter-kit"},{"title":"Custom Components","href":"/pages/cms-custom-components"},{"title":"Redirects","href":"/pages/cms-website-builder-redirects"},{"title":"Website Builder Settings","href":"/pages/cms-website-builder-settings"},{"title":"Integrations","href":"/pages/cms-website-builder-integrations"}]},{"group":"Kibo CMS File Manager","pages":[{"title":"File Upload","href":"/pages/cms-upload-file"},{"title":"Organizing Files","href":"/pages/cms-organizing-files"},{"title":"Tagging Files","href":"/pages/cms-tagging-files"}]},{"group":"Kibo CMS Security","pages":[{"title":"Access Management","href":"/pages/cms-access-management"}]}]},{"group":"Orders","pages":[{"title":"Cart \u0026 Checkout","href":"/concept-guides/cart-and-checkout"},{"group":"Order Payments","pages":[{"title":"Payments","href":"/concept-guides/payments"},{"title":"Payment Overview","href":"/pages/payment-overview"},{"title":"Payment States","href":"/pages/payment-states"},{"title":"Payment Types API Reference","href":"/pages/payment-types-api-reference"},{"title":"Tokenize Payment Cards","href":"/pages/card-tokenization"},{"title":"Add Payments to Orders","href":"/pages/add-payments-to-orders"},{"title":"Payment Actions","description":null,"href":"/pages/payment-actions"},{"title":"Pay with Rewards","href":"/pages/pay-with-rewards"},{"title":"Purchase Orders","description":null,"href":"/pages/purchase-orders"},{"title":"Gateway Gift Cards","href":"/pages/gateway-gift-cards"},{"title":"Store Credit and Gift Cards","href":"/pages/store-credit-and-gift-cards"}]},{"group":"Manage Orders","pages":[{"title":"View Orders and Shipments","href":"/pages/view-orders-and-shipments"},{"title":"Configure Shipment Creation","href":"/pages/configure-shipment-creation"},{"title":"Search for Orders","href":"/pages/search-for-orders"},{"title":"Create Offline Orders","href":"/pages/create-offline-orders"},{"title":"Gift Orders and Items","href":"/pages/gift-orders-and-items"},{"title":"Edit Orders","href":"/pages/edit-orders"},{"title":"Edit Order Shipments","href":"/pages/edit-order-shipments"},{"title":"Edit Order Items","href":"/pages/edit-order-items"},{"title":"Substitutions in Order Admin","href":"/pages/order-substitutions"},{"title":"Cancel Orders and Shipments","href":"/pages/cancel-orders-and-shipments"}]},{"group":"Returns","pages":[{"title":"Returns \u0026 Reverse Logistics","href":"/concept-guides/returns-and-reverse-logistics"},{"title":"Return Statuses","href":"/pages/return-statuses"},{"title":"Manage Returns","href":"/pages/manage-returns"},{"title":"Initiate a Return","href":"/pages/initiate-a-return"},{"title":"Receive a Return","href":"/pages/receive-a-return"},{"title":"Refund a Return","href":"/pages/refund-a-return"},{"title":"Replace a Return","href":"/pages/replace-a-return"},{"title":"Close a Return","href":"/pages/close-a-return"},{"title":"Return Rules","href":"/pages/return-rules"},{"title":"Return Attributes","href":"/pages/return-attributes"}]},{"title":"Orders Overview","href":"/pages/orders-overview"},{"title":"Order Statuses","href":"/pages/order-statuses"},{"title":"Price Lists and Orders","href":"/pages/price-lists-and-orders"},{"title":"Line Item Pricing","href":"/pages/line-item-pricing"},{"title":"Appeasements","href":"/pages/orders-appeasements"},{"title":"Cart Takeover","href":"/pages/cart-takeover"},{"title":"Ship to Multiple Addresses","href":"/pages/ship-to-multiple-addresses"},{"title":"Share Cart Across Sites","href":"/pages/share-cart-across-sites"}]},{"group":"Publishing","pages":[{"title":"Introduction","href":"/pages/publishing-introduction"},{"title":"Drafts","href":"/pages/drafts"},{"title":"Publish Sets","href":"/pages/publish-sets"},{"title":"Live Edit Products","href":"/pages/live-edit-products"}]},{"group":"Order Routing","pages":[{"title":"Order Routing Overview","href":"/concept-guides/order-routing"},{"title":"Routing Strategies","href":"/pages/routing-strategies"},{"title":"Scenarios","href":"/pages/scenarios"},{"title":"Locations","href":"/pages/order-routing-locations"},{"title":"Filters","href":"/pages/filters"},{"title":"Custom Data Lists","href":"/pages/custom-data-lists"},{"title":"Custom Data Sets","href":"/pages/custom-data-sets"},{"title":"Reverse Logistics","href":"/pages/reverse-logistics"},{"title":"Extensible Order Routing","href":"/pages/extensible-order-routing"},{"title":"Suggestion Logs and Debug","href":"/pages/suggestion-logs-and-debug"}]},{"group":"Reporting","pages":[{"group":"Dashboards","pages":[{"title":"Channel Dashboard","href":"/pages/channel-dashboard"},{"title":"Continuity Orders for Products Dashboard","href":"/pages/continuity-orders-for-products-dashboard"},{"title":"Customer Dashboard","href":"/pages/customer-dashboard"},{"title":"Deferred Sales Dashboard","href":"/pages/deferred-sales-dashboard"},{"title":"Discount Dashboard","href":"/pages/discount-dashboard"},{"title":"Fulfillment Dashboard","href":"/pages/fulfillment-dashboard"},{"title":"Fulfillment Year-to-Date Dashboard","href":"/pages/fulfillment-year-to-date-dashboard"},{"title":"Individual Category Dashboard","href":"/pages/individual-category-dashboard"},{"title":"Individual Discount Dashboard","href":"/pages/individual-discount-dashboard"},{"title":"Individual Location Dashboard","href":"/pages/individual-location-dashboard"},{"title":"Individual Product Dashboard","href":"/pages/individual-product-dashboard"},{"title":"Locations Dashboard","href":"/pages/locations-dashboard"},{"title":"New Customer Dashboard","href":"/pages/new-customer-dashboard"},{"title":"Order Dashboard","href":"/pages/order-dashboard"},{"title":"Order Detail Dashboard","href":"/pages/order-detail-dashboard"},{"title":"Order Item Details Dashboard","href":"/pages/dashboards-order-detail-dashboard"},{"title":"Order Payment Details Dashboard","href":"/pages/order-payment-details-dashboard"},{"title":"Orders Year-to-Date Dashboard","href":"/pages/orders-year-to-date-dashboard"},{"title":"Payment Type Dashboard","href":"/pages/payment-type-dashboard"},{"title":"Product Dashboard","href":"/pages/product-dashboard"},{"title":"Product Category Dashboard","href":"/pages/product-category-dashboard"},{"title":"Product Category Returns Dashboard","href":"/pages/product-category-returns-dashboard"},{"title":"Product Returns Dashboard","href":"/pages/product-returns-dashboard"},{"title":"Product Subscription Dashboard","href":"/pages/product-subscription-dashboard"},{"title":"Purchase Order Dashboard","href":"/pages/purchase-order-dashboard"},{"title":"Purchase Order Account Details Dashboard","href":"/pages/purchase-order-account-details-dashboard"},{"title":"Purchase Order Details Dashboard","href":"/pages/purchase-order-details-dashboard"},{"title":"Rejected Shipment Detail Report","href":"/pages/rejected-shipment-detail-report"},{"title":"Return Details Dashboard","href":"/pages/return-details-dashboard"},{"title":"Returns Dashboard","href":"/pages/returns-dashboard"},{"title":"Shipment Method Dashboard","href":"/pages/shipment-method-dashboard"},{"title":"Shipment Type Dashboard","href":"/pages/shipment-type-dashboard"},{"title":"Shipment Detail Dashboard","href":"/pages/shipment-detail-dashboard"},{"title":"Subscription Dashboard","href":"/pages/subscription-dashboard"},{"title":"Unclaimed BOPIS Orders Dashboard","href":"/pages/unclaimed-bopis-orders-dashboard"},{"title":"Fulfillment SLA Dashboard","href":"/pages/fulfillment-sla-dashboard"}]},{"group":"Explores and Views","pages":[{"title":"Explores Overview","href":"/pages/explores-overview"},{"title":"Category View","href":"/pages/category-view"},{"title":"Child Shipment Number View","href":"/pages/child-shipment-number-view"},{"title":"Customer View","href":"/pages/explores-and-views-customer-view"},{"title":"Customer Account Segment View","href":"/pages/customer-account-segment-view"},{"title":"Customer Contact View","href":"/pages/customer-contact-view"},{"title":"Discount View","href":"/pages/discount-view"},{"title":"Inventory In Stock Notification Subscription View","href":"/pages/inventory-in-stock-notification-subscription-view"},{"title":"Location View","href":"/pages/location-view"},{"title":"Order View","href":"/pages/order-view"},{"title":"Order Discount View","href":"/pages/order-discount-view"},{"title":"Order Attributes View","href":"/pages/order-attributes-view"},{"title":"Order Item View","href":"/pages/order-item-view"},{"title":"Order Item Attributes View","href":"/pages/order-item-attributes-view"},{"title":"Order Payment View","href":"/pages/order-payment-view"},{"title":"Product View","href":"/pages/product-view"},{"title":"Product Attributes View","href":"/pages/product-attributes-view"},{"title":"Product Category Details View","href":"/pages/product-category-details-view"},{"title":"Product in Catalog View","href":"/pages/product-in-catalog-view"},{"title":"Purchase Order Account View","href":"/pages/purchase-order-account-view"},{"title":"Return View","href":"/pages/return-view"},{"title":"Return Item View","href":"/pages/return-item-view"},{"title":"Shipment View","href":"/pages/shipment-view"},{"title":"Shipment Package Tracking Number View","href":"/pages/shipment-package-tracking-number-view"},{"title":"Shipment Package View","href":"/pages/shipment-package-view"},{"title":"Shipment Reassigned Item View","href":"/pages/shipment-reassigned-item-view"},{"title":"Subscription View","href":"/pages/subscription-view"},{"title":"Subscription Cancelled Item View","href":"/pages/subscription-cancelled-item-view"},{"title":"Subscription Item View","href":"/pages/subscription-item-view"},{"title":"Transferred Shipment Number View","href":"/pages/transferred-shipment-number-view"}]},{"title":"Reporting Overview","href":"/pages/reporting-overview"},{"title":"Filter and Edit Reports","href":"/pages/filter-and-edit-reports"},{"title":"Download Reports","href":"/pages/download-reports"},{"title":"Custom Reports","href":"/pages/custom-reports"}]},{"group":"Search","pages":[{"title":"Search and Merchandizing","href":"/concept-guides/search-and-merchandizing"},{"group":"Search Schema","pages":[{"title":"Search Schema Overview","href":"/pages/search-schema-overview"},{"title":"Add a Core Field","href":"/pages/add-a-core-field"},{"title":"Add Custom Attributes","href":"/pages/add-custom-attributes"},{"title":"Field Type Analyzer Implementation Guide","href":"/pages/field-type-analyzer-implementation-guide"},{"title":"Field Type Analyzers","href":"/pages/field-type-analyzers"},{"title":"Term-Based Suggester","href":"/pages/term-based-suggester"},{"title":"Stop Words","href":"/pages/stop-words"}]},{"group":"Search Configurations","pages":[{"title":"Search Configurations Overview","href":"/pages/search-configurations-overview"},{"title":"Create or Edit a Search Configuration","href":"/pages/create-or-edit-a-search-configuration"},{"title":"Search Types","href":"/pages/search-types"},{"title":"Third-Party Search Tools","href":"/pages/third-party-search-tools"},{"title":"Personalized Search","href":"/pages/personalized-search"},{"title":"Product Slicing within Search","href":"/pages/product-slicing-within-search"},{"title":"MinMatch","href":"/pages/minmatch"},{"title":"Phrase Slop and Boosting","href":"/pages/phrase-slop"},{"title":"Spell Correction","href":"/pages/spell-correction"},{"title":"Field Weights","href":"/pages/field-weights"},{"title":"Boost and Bury Fields","href":"/pages/boost-and-bury"},{"title":"Whitespace","href":"/pages/whitespace"},{"title":"Return Fields","href":"/pages/return-fields"},{"title":"Merchandizing Rules","href":"/pages/merchandizing-rules"},{"title":"Search Term Redirects","href":"/pages/search-term-redirects"},{"title":"Search Synonyms","href":"/pages/search-synonyms"},{"title":"Facets","href":"/pages/search-facets"},{"title":"Vector Search","href":"/pages/vector-search"}]},{"title":"Integrating Personalization With Search","href":"/pages/integrating-personalization-with-search"}]},{"group":"Subscriptions","pages":[{"title":"Product Subscriptions Overview","href":"/concept-guides/subscriptions"},{"title":"Import Historical Subscriptions","href":"/pages/import-historical-subscriptions"},{"title":"Configure Subscriptions","href":"/pages/configure-subscriptions"},{"title":"Subscription Discounts","href":"/pages/subscription-discounts"},{"title":"Create Subscription as Offline Order","href":"/pages/create-subscription-as-offline-order"},{"title":"Manage Subscriptions","href":"/pages/manage-product-subscriptions"},{"title":"Update Next Order Only","href":"/pages/update-next-order-only"},{"title":"Order Subscription Now","href":"/pages/order-subscription-now"},{"title":"Recycle Subscription Payments","href":"/pages/recycle-subscription-payments"},{"title":"Subscription Installments","href":"/pages/subscription-installments"},{"title":"Subscription Localization","href":"/pages/subscription-localization"},{"title":"Subscription Notifications","href":"/pages/subscription-notifications"}]},{"group":"System","pages":[{"group":"Settings","pages":[{"group":"Payment Settings","pages":[{"title":"Payment Gateways","href":"/pages/payment-gateways"},{"title":"Payment Types","href":"/pages/payment-types"},{"title":"Payment Ranking and Auto Capture","href":"/pages/payment-ranking-and-auto-capture"},{"title":"Payment Extensibility","href":"/pages/payment-extensibility"},{"title":"Payment Extensibility Starter Kit","href":"/pages/payment-extensibility-starter-kit"},{"title":"Apple Pay Configuration","href":"/pages/apple-pay-configuration"},{"title":"Google Pay Configuration","href":"/pages/google-pay-configuration"},{"title":"Fraud Checking","href":"/pages/fraud-checking"}]},{"group":"Shipping Settings","pages":[{"title":"Shipping Settings Overview","href":"/pages/shipping-settings-overview"},{"title":"Shipping Zones","href":"/pages/shipping-zones"},{"title":"Product Shipping Rules","href":"/pages/product-shipping-rules"},{"title":"Shipping Carriers","href":"/pages/shipping-carriers"},{"title":"Shipping Methods and Fees","href":"/pages/shipping-methods-and-fees"},{"title":"Shipping Extensibility","href":"/pages/shipping-extensibility"}]},{"title":"General Settings","href":"/pages/general-settings"},{"title":"Tax Settings","href":"/pages/tax-settings"},{"title":"Publishing Settings","href":"/pages/publishing-settings"}]},{"group":"Schema","pages":[{"title":"Schema Overview","href":"/pages/schema-overview"},{"title":"Category Attributes","href":"/pages/schema-category-attributes"},{"title":"Customer Attributes","href":"/pages/schema-customer-attributes"},{"title":"Location Types","href":"/pages/schema-location-types"},{"title":"Location Attributes","href":"/pages/schema-location-attributes"},{"title":"Inventory Attributes","href":"/pages/schema-inventory-attributes"},{"title":"Extensible Attribute","href":"/pages/schema-extensible-attribute"},{"title":"Extensible Item Attribute","href":"/pages/schema-extensible-item-attribute"}]},{"group":"Customization","pages":[{"title":"Application Settings","href":"/pages/application-settings"},{"title":"Custom Route Settings","href":"/pages/custom-route-settings"},{"title":"Subnav Links","href":"/pages/subnav-links"},{"group":"Apps and Integrations","pages":[{"title":"App Support Levels","href":"/pages/app-support-levels"},{"title":"Adyen Application","href":"/pages/adyen-application"},{"title":"Apple Pay Integration","href":"/pages/apple-pay-integration"},{"title":"Avalara Application","href":"/pages/avalara-application"},{"title":"ChannelAdvisor Application","href":"/pages/channeladvisor-application"},{"title":"CyberSource Decision Manager Application","href":"/pages/cybersource-decision-manager-application"},{"title":"Delivery Solutions Integration","href":"/pages/delivery-solutions-integration"},{"title":"Google Pay Integration","href":"/pages/google-pay-integration"},{"title":"Kount Application","href":"/pages/kount-application"},{"title":"Pay with Amazon Application","href":"/pages/pay-with-amazon-application"},{"title":"Pay with Amazon Technical Specs","href":"/pages/pay-with-amazon-technical-specs"},{"title":"PayPal Express Application","href":"/pages/paypal-express-application"},{"title":"PayPal Express Technical Specs","href":"/pages/paypal-express-technical-specs"},{"title":"PayPal Multiparty Application","href":"/pages/paypal-multiparty-application"},{"title":"Stripe Application","href":"/pages/stripe-application"}]}]},{"group":"Structure","pages":[{"title":"Catalog and Site Structure Settings","href":"/pages/catalog-and-site-structure-settings"},{"title":"Channel Settings","href":"/pages/channel-settings"},{"title":"Customer Sets","href":"/pages/structure-customer-sets"}]},{"group":"Permissions","pages":[{"title":"Users and User Groups","href":"/pages/users-and-user-groups"},{"title":"User Roles","href":"/pages/user-roles"},{"title":"IP Restrictions","href":"/pages/ip-restrictions"},{"title":"Logging User Edits","href":"/pages/logging-user-edits"},{"title":"SSO Implementation","href":"/pages/sso-implementation"},{"title":"Geography-Based User Access","href":"/pages/geography-based-user-access"}]},{"group":"Localization","pages":[{"title":"Attribute Localization","href":"/pages/localization-attribute-localization"},{"title":"Subscription Localization","href":"/pages/localization-subscription-localization"}]},{"title":"International Support","href":"/pages/international-support"},{"title":"Troubleshooting Your Implementation","href":"/pages/troubleshooting-your-implementation"},{"title":"Glossary","href":"/pages/glossary"}]},{"group":"Call Center","pages":[{"title":"Call Center Overview","href":"/pages/call-center-overview"},{"title":"Manage Customer Sessions","href":"/pages/manage-customer-sessions"}]},{"group":"Content","pages":[{"title":"Content Overview","href":"/pages/content-overview"},{"title":"Preview and Apply Themes","href":"/pages/preview-and-apply-themes"},{"title":"File and Image Management","href":"/pages/file-and-image-management"},{"title":"Fulfiller and Returns Customization","href":"/pages/content-fulfiller-and-returns-customization"}]},{"group":"Import/Export","pages":[{"title":"Introduction to Import/Export","href":"/pages/introduction-to-import-export"},{"title":"Import and Export Tools","href":"/pages/import-and-export-tools"},{"title":"Troubleshooting Import Issues","href":"/pages/troubleshooting-import-issues"},{"title":"Catalogs Template","href":"/pages/catalogs-template"},{"title":"Price Lists Template","href":"/pages/price-lists-template"}]},{"group":"Kibo AI","pages":[{"title":"Kibo AI Overview","href":"/concept-guides/kibo-ai"},{"title":"Set Up and Use Kibo AI ","href":"/pages/kibo-ai-setup"},{"group":"Capabilities","pages":[{"title":"Configure Agent","href":"/pages/kibo-ai-configure"},{"title":"Explain Agent","href":"/pages/kibo-ai-explain"},{"title":"Analyze Agent","href":"/pages/kibo-ai-analyze"},{"title":"Engage Agent","href":"/pages/shopper-agent-implementation-guide"}]}]},{"group":"Dropship","pages":[{"title":"Dropship Overview","href":"/pages/dropship-overview"},{"title":"Configure Dropship","href":"/pages/configure-dropship"},{"title":"Manage Vendors","href":"/pages/manage-vendors"},{"title":"Vendor Settings","href":"/pages/vendor-settings"},{"title":"Vendor Onboarding","href":"/pages/vendor-onboarding"},{"title":"Vendor Locations","href":"/pages/vendor-locations"},{"title":"Vendor Order Processing","href":"/pages/vendor-order-processing"},{"title":"EDI Reference","href":"/pages/edi-reference"},{"title":"Vendor Inventory","href":"/pages/vendor-inventory"},{"title":"Vendor Analytics","href":"/pages/vendor-analytics"},{"title":"Vendor User Management","href":"/pages/vendor-user-management"}]}]},{"tab":"Developers","pages":[{"title":"Developers","href":"/developer-guides"}]},{"tab":"Solutions","pages":[{"title":"Solutions","href":"/solutions"}]},{"tab":"Videos","pages":[{"title":"Videos","href":"/video"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/november-10-2026-1-2644-service-update"}]}]},"basePath":"","title":"Pay with Rewards - Kibo Documentation","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}