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

Pw 6851/oms namespace #815

Merged
merged 7 commits into from
Feb 3, 2023
Merged
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
29 changes: 28 additions & 1 deletion metadata/site_import/meta/system-objecttype-extensions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,40 @@
</attribute-definition>
<attribute-definition attribute-id="adyenPaymentMethod">
<display-name xml:lang="x-default">adyenPaymentMethod</display-name>
<description xml:lang="x-default">paymentMethod used by shopper</description>
<description xml:lang="x-default">paymentMethod used by shopper (used to sync with OMS Test)</description>
<type>string</type>
<mandatory-flag>false</mandatory-flag>
<externally-managed-flag>false</externally-managed-flag>
<min-length>0</min-length>
<field-length>0</field-length>
</attribute-definition>
<attribute-definition attribute-id="adyen_payment_adyenPaymentMethod">
<display-name xml:lang="x-default">adyen_payment_adyenPaymentMethod</display-name>
<description xml:lang="x-default">paymentMethod used by shopper (used to sync with OMS Production)</description>
<type>text</type>
<mandatory-flag>false</mandatory-flag>
<externally-managed-flag>false</externally-managed-flag>
<min-length>0</min-length>
<field-length>0</field-length>
</attribute-definition>
<attribute-definition attribute-id="adyen_payment_Adyen_Payment_Method_Variant">
<display-name xml:lang="x-default">adyen_payment_Adyen_Payment_Method_Variant</display-name>
<description xml:lang="x-default">payment variant used by shopper (used to sync with OMS Production)</description>
<type>text</type>
<mandatory-flag>false</mandatory-flag>
<externally-managed-flag>false</externally-managed-flag>
<min-length>0</min-length>
<field-length>0</field-length>
</attribute-definition>
<attribute-definition attribute-id="Adyen_Payment_Method_Variant">
<display-name xml:lang="x-default">Adyen_Payment_Method_Variant</display-name>
<description xml:lang="x-default">payment variant used by shopper (used to sync with OMS Test)</description>
<type>text</type>
<mandatory-flag>false</mandatory-flag>
<externally-managed-flag>false</externally-managed-flag>
<min-length>0</min-length>
<field-length>0</field-length>
</attribute-definition>
<attribute-definition attribute-id="adyenPartialPaymentsOrder">
<display-name xml:lang="x-default">adyenPartialPaymentsOrder</display-name>
<description xml:lang="x-default">partial payments order data</description>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,16 @@ beforeEach(() => {
const { adyen } = require('../../index');
paymentFromComponent = adyen.paymentFromComponent;
jest.clearAllMocks();
req = { form: { data: { paymentMethod: { type: 'mocked_type' } } } };
req = {
form: {
paymentMethod: 'method',
data: {
paymentMethod: {
type: 'mocked_type'
}
}
}
};
res = { redirect: jest.fn(), json: jest.fn() };
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,13 @@ function handleGiftCardPayment(currentBasket, order) {
);
giftcardPM.paymentTransaction.paymentProcessor = paymentProcessor;
giftcardPM.custom.adyenPaymentMethod = parsedGiftCardObj.brand;
giftcardPM.custom[`${constants.OMS_NAMESPACE}_adyenPaymentMethod`] =
parsedGiftCardObj.brand;
giftcardPM.custom.Adyen_Payment_Method_Variant =
parsedGiftCardObj.paymentMethod.brand;
giftcardPM.custom[
`${constants.OMS_NAMESPACE}_Adyen_Payment_Method_Variant`
] = parsedGiftCardObj.paymentMethod.brand;
giftcardPM.paymentTransaction.custom.Adyen_log =
session.privacy.giftCardResponse;
giftcardPM.paymentTransaction.custom.Adyen_pspReference =
Expand Down Expand Up @@ -184,6 +191,13 @@ function paymentFromComponent(req, res, next) {
}
paymentInstrument.custom.adyenPaymentMethod =
AdyenHelper.getAdyenComponentType(req.form.paymentMethod);
paymentInstrument.custom[`${constants.OMS_NAMESPACE}_adyenPaymentMethod`] =
AdyenHelper.getAdyenComponentType(req.form.paymentMethod);
paymentInstrument.custom.Adyen_Payment_Method_Variant =
req.form.paymentMethod.toLowerCase();
paymentInstrument.custom[
`${constants.OMS_NAMESPACE}_Adyen_Payment_Method_Variant`
] = req.form.paymentMethod.toLowerCase();
});

if (isExpressPayment(reqDataObj)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,11 @@ function placeOrder(req, res, next) {
);
paymentInstrument.paymentTransaction.paymentProcessor = paymentProcessor;
paymentInstrument.custom.adyenPaymentMethod = parsedGiftCardObj.giftCard.name;
paymentInstrument.custom[`${constants.OMS_NAMESPACE}_adyenPaymentMethod`] = parsedGiftCardObj.giftCard.name;
paymentInstrument.custom.Adyen_Payment_Method_Variant = parsedGiftCardObj.giftCard.brand;
paymentInstrument.custom[
`${constants.OMS_NAMESPACE}_Adyen_Payment_Method_Variant`
] = parsedGiftCardObj.giftCard.brand;
paymentInstrument.paymentTransaction.custom.Adyen_log = JSON.stringify(parsedGiftCardObj);
paymentInstrument.paymentTransaction.custom.Adyen_pspReference = parsedGiftCardObj.giftCard.pspReference;
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ beforeEach(() => {
cardNumber: 'mockedCardNumber',
adyenPaymentMethod: 'Credit Card',
adyenIssuerName: null,
stateData: 'mockedStateData',
stateData: '{"paymentMethod": {"type":"scheme"}}',
creditCardToken: 'mockedStoredCardToken',
expirationMonth: { value: 'mockedMonth' },
expirationYear: { value: 'mockedYear' },
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const Transaction = require('dw/system/Transaction');
const AdyenHelper = require('*/cartridge/scripts/util/adyenHelper');
const collections = require('*/cartridge/scripts/util/collections');
const constants = require('*/cartridge/adyenConstants/constants');

function removeAllPaymentInstruments(currentBasket) {
collections.forEach(currentBasket.getPaymentInstruments(), (item) => {
Expand All @@ -17,6 +18,8 @@ function convertToSfccCardType(paymentInformation, paymentInstrument) {
paymentInstrument.setCreditCardType(sfccCardType);

paymentInstrument.custom.adyenPaymentMethod = sfccCardType;
paymentInstrument.custom[`${constants.OMS_NAMESPACE}_adyenPaymentMethod`] =
sfccCardType;

if (paymentInformation.creditCardToken) {
paymentInstrument.setCreditCardExpirationMonth(
Expand Down Expand Up @@ -54,9 +57,22 @@ function handle(basket, paymentInformation) {
session.privacy.partialPaymentData;
}

paymentInstrument.custom.Adyen_Payment_Method_Variant =
paymentInformation.stateData
? JSON.parse(paymentInformation.stateData)?.paymentMethod?.type
: null;
paymentInstrument.custom[
`${constants.OMS_NAMESPACE}_Adyen_Payment_Method_Variant`
] = paymentInformation.stateData
? JSON.parse(paymentInformation.stateData)?.paymentMethod?.type
: null;
if (paymentInformation.isCreditCard) {
// If the card wasn't a stored card we need to convert sfccCardType
convertToSfccCardType(paymentInformation, paymentInstrument);
} else {
paymentInstrument.custom[
`${constants.OMS_NAMESPACE}_adyenPaymentMethod`
] = paymentInformation.adyenPaymentMethod;
}
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ module.exports = {
MAX_API_RETRIES: 3,

GIFTCARD_EXPIRATION_MINUTES: 30,
OMS_NAMESPACE: 'adyen_payment',

CHECKOUT_ENVIRONMENT_TEST: 'test',
CHECKOUT_ENVIRONMENT_LIVE_EU: 'live',
Expand Down