本文整理汇总了C#中ProcessorArgumentCollection.GetArticleBySkuPath方法的典型用法代码示例。如果您正苦于以下问题:C# ProcessorArgumentCollection.GetArticleBySkuPath方法的具体用法?C# ProcessorArgumentCollection.GetArticleBySkuPath怎么用?C# ProcessorArgumentCollection.GetArticleBySkuPath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProcessorArgumentCollection
的用法示例。
在下文中一共展示了ProcessorArgumentCollection.GetArticleBySkuPath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreatePayPalPaymentDetails
private PaymentDetailsType CreatePayPalPaymentDetails(IInvoice invoice, ProcessorArgumentCollection args = null)
{
string articleBySkuPath = args.GetArticleBySkuPath(_settings.ArticleBySkuPath.IsEmpty() ? null : GetWebsiteUrl() + _settings.ArticleBySkuPath);
var currencyCodeType = PayPalCurrency(invoice.CurrencyCode());
var currencyDecimals = CurrencyDecimals(currencyCodeType);
decimal itemTotal = 0;
decimal taxTotal = 0;
decimal shippingTotal = 0;
AddressType shipAddress = null;
var paymentDetailItems = new List<PaymentDetailsItemType>();
foreach (var item in invoice.Items)
{
if (item.LineItemTfKey == Merchello.Core.Constants.TypeFieldKeys.LineItem.TaxKey)
{
taxTotal = item.TotalPrice;
}
else if (item.LineItemTfKey == Merchello.Core.Constants.TypeFieldKeys.LineItem.ShippingKey)
{
shippingTotal = item.TotalPrice;
var address = item.ExtendedData.GetAddress(Merchello.Core.AddressType.Shipping);
if (address != null) {
shipAddress = new AddressType() {
Name = address.Name,
Street1 = address.Address1,
Street2 = address.Address2,
PostalCode = address.PostalCode,
CityName = address.Locality,
StateOrProvince = address.Region,
CountryName = address.Country().Name,
Country = (CountryCodeType)Enum.Parse(typeof(CountryCodeType), address.Country().CountryCode, true),
Phone = address.Phone
};
}
}
else if (item.LineItemTfKey == Merchello.Core.Constants.TypeFieldKeys.LineItem.DiscountKey)
{
var discountItem = new PaymentDetailsItemType
{
Name = item.Name,
ItemURL = (articleBySkuPath.IsEmpty() ? null : articleBySkuPath + item.Sku),
Amount = new BasicAmountType(currencyCodeType, PriceToString(item.Price*-1, currencyDecimals)),
Quantity = item.Quantity,
};
paymentDetailItems.Add(discountItem);
itemTotal -= item.TotalPrice;
}
else {
var paymentItem = new PaymentDetailsItemType {
Name = item.Name,
ItemURL = (articleBySkuPath.IsEmpty() ? null : articleBySkuPath + item.Sku),
Amount = new BasicAmountType(currencyCodeType, PriceToString(item.Price, currencyDecimals)),
Quantity = item.Quantity,
};
paymentDetailItems.Add(paymentItem);
itemTotal += item.TotalPrice;
}
}
var paymentDetails = new PaymentDetailsType
{
PaymentDetailsItem = paymentDetailItems,
ItemTotal = new BasicAmountType(currencyCodeType, PriceToString(itemTotal, currencyDecimals)),
TaxTotal = new BasicAmountType(currencyCodeType, PriceToString(taxTotal, currencyDecimals)),
ShippingTotal = new BasicAmountType(currencyCodeType, PriceToString(shippingTotal, currencyDecimals)),
OrderTotal = new BasicAmountType(currencyCodeType, PriceToString(invoice.Total, currencyDecimals)),
PaymentAction = PaymentActionCodeType.ORDER,
InvoiceID = invoice.InvoiceNumberPrefix + invoice.InvoiceNumber.ToString("0"),
SellerDetails = new SellerDetailsType { PayPalAccountID = _settings.AccountId },
PaymentRequestID = "PaymentRequest",
ShipToAddress = shipAddress,
NotifyURL = "http://IPNhost"
};
return paymentDetails;
}