using Nop.Core.Configuration; using Nop.Plugin.Payments.PayPalCommerce.Domain; namespace Nop.Plugin.Payments.PayPalCommerce; /// /// Represents the plugin settings /// public class PayPalCommerceSettings : ISettings { #region Properties #region Onboarding /// /// Gets or sets internal merchant id /// public string MerchantGuid { get; set; } /// /// Gets or sets the merchant id /// public string MerchantId { get; set; } /// /// Gets or sets a webhook URL /// public string WebhookUrl { get; set; } #endregion #region Credentials /// /// Gets or sets a value indicating whether to manually set the credentials (for example, there is already the REST API App created) /// public bool SetCredentialsManually { get; set; } /// /// Gets or sets a value indicating whether to use sandbox environment /// public bool UseSandbox { get; set; } /// /// Gets or sets client identifier /// public string ClientId { get; set; } /// /// Gets or sets client secret /// public string SecretKey { get; set; } #endregion #region Configuration /// /// Gets or sets the payment type /// public PaymentType PaymentType { get; set; } /// /// Gets or sets a value indicating whether to use Advanced Credit and Debit Card Payments (Custom Card Fields) /// public bool UseCardFields { get; set; } /// /// Gets or sets a value indicating whether the strong customer authentication (SCA/3DS) is required /// public bool CustomerAuthenticationRequired { get; set; } /// /// Gets or sets a value indicating whether to use Apple Pay /// public bool UseApplePay { get; set; } /// /// Gets or sets a value indicating whether to use Google Pay /// public bool UseGooglePay { get; set; } /// /// Gets or sets a value indicating whether to use Alternative Payment Methods (iDEAL, Bancontact, etc) /// public bool UseAlternativePayments { get; set; } /// /// Gets or sets a value indicating whether to use Vault (store buyers payment information) /// public bool UseVault { get; set; } /// /// Gets or sets a value indicating whether to skip order confirmation page during checkout process /// public bool SkipOrderConfirmPage { get; set; } /// /// Gets or sets a value indicating whether to use shipment tracking /// public bool UseShipmentTracking { get; set; } /// /// Gets or sets a value indicating whether to display buttons on the shopping cart page /// public bool DisplayButtonsOnShoppingCart { get; set; } /// /// Gets or sets a value indicating whether to display buttons on a product details page /// public bool DisplayButtonsOnProductDetails { get; set; } /// /// Gets or sets a value indicating whether to display buttons on the checkout payment method page /// public bool DisplayButtonsOnPaymentMethod { get; set; } /// /// Gets or sets a value indicating whether to display logo in header links /// public bool DisplayLogoInHeaderLinks { get; set; } /// /// Gets or sets the source code of logo in header links /// public string LogoInHeaderLinks { get; set; } /// /// Gets or sets a value indicating whether to display logo in footer /// public bool DisplayLogoInFooter { get; set; } /// /// Gets or sets the source code of logo in footer /// public string LogoInFooter { get; set; } #endregion #region Advanced settings /// /// Gets or sets a period (in seconds) before the request times out /// public int? RequestTimeout { get; set; } /// /// Gets or sets the disabled funding sources for the transaction (separated by comma) /// By default, funding source eligibility is determined based on a variety of factors /// public string DisabledFunding { get; set; } /// /// Gets or sets the enabled funding sources for the transaction (separated by comma) /// Enable funding can be used to ensure a funding source is rendered, if eligible /// public string EnabledFunding { get; set; } /// /// Gets or sets the layout option to determine the button layout when multiple buttons are available (vertical, horizontal) /// public string StyleLayout { get; set; } /// /// Gets or sets the color option (gold, blue, silver, white, black) /// public string StyleColor { get; set; } /// /// Gets or sets the shape option (rect, pill, sharp) /// public string StyleShape { get; set; } /// /// Gets or sets the label option (paypal, checkout, buynow, pay, installment) /// public string StyleLabel { get; set; } /// /// Gets or sets the tagline option (true, false) /// public string StyleTagline { get; set; } /// /// Gets or sets a value indicating whether to hide the checkout button on the shopping cart page /// public bool HideCheckoutButton { get; set; } /// /// Gets or sets a value indicating whether the only immediate payment (credit card, PayPal balance, or instant ACH) /// from the customer is accepted /// public bool ImmediatePaymentRequired { get; set; } /// /// Gets or sets the order validity interval (in seconds) when the existing order will be used. /// Set to 0 to create a new order for each payment attempt /// public int OrderValidityInterval { get; set; } /// /// Gets or sets a value indicating whether the Messaging Configurator is supported for the merchant /// public bool ConfiguratorSupported { get; set; } /// /// Gets or sets Pay Later messaging configurations /// public string PayLaterConfig { get; set; } /// /// Gets or sets a value indicating whether the plugin was updated but no merchant ID was specified. If not, the merchant must specify it /// public bool MerchantIdRequired { get; set; } #endregion #endregion }