Skip to content

Commit

Permalink
Pw 6851/oms namespace (#815)
Browse files Browse the repository at this point in the history
* introduce two new fields to sync with oms

* changed mocked state data

* show variant in oms

* extended req form in payment from comp test file

* added OMS env in system attributes
  • Loading branch information
amihajlovski committed Feb 3, 2023
1 parent 1269369 commit b435edb
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 3 deletions.
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

0 comments on commit b435edb

Please sign in to comment.