Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/24.4.1 #1194

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions .github/workflows/release-upload.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Release upload

on:
pull_request:

jobs:
upload-release:
if: |
github.event_name == 'pull_request' &&
contains(github.head_ref, 'release') &&
github.event.pull_request.base.ref == 'main'
runs-on: ubuntu-latest
timeout-minutes: 5
strategy:
fail-fast: false
matrix:
include:
- sfra-version: 'v6.1.0'
node-version: '14'
sfcc-hostname-secret: 'SFCC_STOREFRONT_URL_004'
code-version-secret: 'SFCC_CODE_VERSION_COMMON'
- sfra-version: 'v6.1.0'
node-version: '14'
sfcc-hostname-secret: 'SFCC_STOREFRONT_URL_006'
code-version-secret: 'SFCC_CODE_VERSION_COMMON'
- sfra-version: 'v5.3.0'
node-version: '14'
sfcc-hostname-secret: 'SFCC_STOREFRONT_URL_007'
code-version-secret: 'SFCC_CODE_VERSION_COMMON'
- sfra-version: 'v5.3.0'
node-version: '14'
sfcc-hostname-secret: 'SFCC_STOREFRONT_URL_018'
code-version-secret: 'SFCC_CODE_VERSION_COMMON'
- sfra-version: 'v6.1.0'
node-version: '14'
sfcc-hostname-secret: 'SFCC_STOREFRONT_URL_019'
code-version-secret: 'SFCC_CODE_VERSION_COMMON'
- sfra-version: 'v6.1.0'
node-version: '14'
sfcc-hostname-secret: 'SFCC_STOREFRONT_URL_020'
code-version-secret: 'SFCC_CODE_VERSION_COMMON'
- sfra-version: 'v6.1.0'
node-version: '14'
sfcc-hostname-secret: 'SFCC_STOREFRONT_URL_022'
code-version-secret: 'SFCC_CODE_VERSION_COMMON'
steps:
- name: Checkout SFRA code
uses: actions/checkout@v4
with:
repository: SalesforceCommerceCloud/storefront-reference-architecture
ref: ${{ matrix.sfra-version }}
ssh-key: ${{ secrets.SERVICE_ACCOUNT_SSH_KEY }}
path: storefront-reference-architecture
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Checkout
uses: actions/checkout@v4
with:
path: adyen-salesforce-commerce-cloud
- name: Install SFRA dependencies
working-directory: storefront-reference-architecture
run: npm install
- name: Install Adyen SFCC dependencies
working-directory: adyen-salesforce-commerce-cloud
run: npm install
- name: Create dw.json file
working-directory: adyen-salesforce-commerce-cloud
run: |
echo '{
"username": "${{ secrets.SFCC_USERNAME }}",
"password": "${{ secrets.SFCC_PASSWORD }}",
"hostname": "${{ secrets[matrix.sfcc-hostname-secret] }}",
"code-version": "${{ secrets[matrix.code-version-secret] }}"
}' >> dw.json
- name: Transpile the code
working-directory: adyen-salesforce-commerce-cloud
run: npm run transpile
- name: Compile the code
working-directory: adyen-salesforce-commerce-cloud
run: npm run compile:js
- name: Build the cartridge
working-directory: adyen-salesforce-commerce-cloud
run: npm run uploadCartridge > output-sfra.txt
- name: Check build result
working-directory: adyen-salesforce-commerce-cloud
run: npm run check-build:sfra
- name: Install Salesforce CLI
run: |
npm install -g sfcc-ci
- name: Zip site_import
working-directory: adyen-salesforce-commerce-cloud/metadata
run: |
zip -r $GITHUB_WORKSPACE/site_import.zip site_import
- name: Upload the metadata to the sandbox
working-directory: adyen-salesforce-commerce-cloud/metadata
run: |
sfcc-ci client:auth '${{ secrets.SFCC_CLIENT_ID }}' '${{ secrets.SFCC_CLIENT_SECRET }}'
sfcc-ci instance:upload $GITHUB_WORKSPACE/site_import.zip -i "${{ secrets[matrix.sfcc-hostname-secret] }}"
- name: Import the metadata to the sandbox
working-directory: adyen-salesforce-commerce-cloud/metadata
run: |
sfcc-ci instance:import site_import.zip -i "${{ secrets[matrix.sfcc-hostname-secret] }}" -s
2 changes: 1 addition & 1 deletion cartridges/app_adyen_SFRA/.project
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>app_adyen_SFRA</name>
<comment>v24.4.0</comment>
<comment>v24.4.1</comment>
<projects></projects>
<buildSpec>
<buildCommand>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ if (window.googleMerchantID !== 'null' && window.Configuration.environment.inclu
store.checkoutConfiguration.paymentMethodsConfiguration.paywithgoogle.configuration[id] = window.googleMerchantID;
store.checkoutConfiguration.paymentMethodsConfiguration.googlepay.configuration[id] = window.googleMerchantID;
}
$('body').on('checkout:updateCheckoutView', function (event, data) {
if (data.order.orderEmail) {
var clickToPayConfiguration = store.checkoutConfiguration.paymentMethodsConfiguration.card.clickToPayConfiguration;
clickToPayConfiguration.shopperEmail = data.order.orderEmail;
}
});

// Submit the payment
$('button[value="submit-payment"]').on('click', function () {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
var helpers = require('./helpers');
var _require = require('./makePartialPayment'),
makePartialPayment = _require.makePartialPayment;
Expand All @@ -35,21 +35,11 @@ function getCardConfig() {
merchantDisplayName: window.merchantAccount
},
exposeExpiryDate: false,
onChange: function onChange(state, component) {
var _state$data, _state$data$paymentMe;
onChange: function onChange(state) {
store.isValid = state.isValid;
var method = state.data.paymentMethod.storedPaymentMethodId ? "storedCard".concat(state.data.paymentMethod.storedPaymentMethodId) : store.selectedMethod;
store.updateSelectedPayment(method, 'isValid', store.isValid);
if ((_state$data = state.data) !== null && _state$data !== void 0 && (_state$data$paymentMe = _state$data.paymentMethod) !== null && _state$data$paymentMe !== void 0 && _state$data$paymentMe.storedPaymentMethodId) {
var holderName = component.props.holderName;
var paymentMethod = state.data.paymentMethod;
paymentMethod.holderName = holderName;
store.updateSelectedPayment(method, 'stateData', _objectSpread(_objectSpread({}, state.data), {}, {
paymentMethod: paymentMethod
}));
} else {
store.updateSelectedPayment(method, 'stateData', state.data);
}
store.updateSelectedPayment(method, 'stateData', state.data);
},
onSubmit: function onSubmit() {
helpers.assignPaymentMethodValue();
Expand Down Expand Up @@ -280,10 +270,6 @@ function getGiftCardConfig() {
}
function handleOnChange(state) {
var type = state.data.paymentMethod.type;
var multipleTxVariantComponents = constants.MULTIPLE_TX_VARIANTS_COMPONENTS;
if (multipleTxVariantComponents.includes(store.selectedMethod)) {
type = store.selectedMethod;
}
store.isValid = state.isValid;
if (!store.componentsObj[type]) {
store.componentsObj[type] = {};
Expand Down Expand Up @@ -397,6 +383,26 @@ function getKlarnaConfig() {
}
return null;
}
function getUpiConfig() {
return {
showPayButton: true,
onSubmit: function onSubmit(state, component) {
$('#dwfrm_billing').trigger('submit');
helpers.assignPaymentMethodValue();
helpers.paymentFromComponent(state.data, component);
},
onAdditionalDetails: function onAdditionalDetails(state) {
document.querySelector('#additionalDetailsHidden').value = JSON.stringify(state.data);
document.querySelector('#showConfirmationForm').submit();
},
onError: function onError(component) {
if (component) {
component.setStatus('ready');
}
document.querySelector('#showConfirmationForm').submit();
}
};
}
function setCheckoutConfiguration() {
store.checkoutConfiguration.onChange = handleOnChange;
store.checkoutConfiguration.onAdditionalDetails = handleOnAdditionalDetails;
Expand Down Expand Up @@ -424,7 +430,8 @@ function setCheckoutConfiguration() {
klarna: getKlarnaConfig(),
klarna_account: getKlarnaConfig(),
klarna_paynow: getKlarnaConfig(),
cashapp: getCashAppConfig()
cashapp: getCashAppConfig(),
upi: getUpiConfig()
};
}
module.exports = {
Expand Down
Loading