Skip to content

Commit

Permalink
Merge branch 'issue-1991-Do-not-display-product-availability-until-al…
Browse files Browse the repository at this point in the history
…l-required-product-attributes-are-selected' into develop

# Conflicts:
#	upgradescripts/4.00-4.10 (under development)/upgrade.sql
  • Loading branch information
skoshelev committed Jan 9, 2018
2 parents a738cb9 + 9e6a339 commit 33f7dea
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 6 deletions.
10 changes: 6 additions & 4 deletions src/Libraries/Nop.Services/Catalog/ProductExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public static class ProductExtensions
{
#region Utilities

private static string GeStockMessage(Product product, string attributesXml, ILocalizationService localizationService, IProductAttributeParser productAttributeParser, IDateRangeService dateRangeService)
private static string GeStockMessage(Product product, string attributesXml, ILocalizationService localizationService, IProductAttributeParser productAttributeParser, IDateRangeService dateRangeService, IProductAttributeService productAttributeService)
{
if (!product.DisplayStockAvailability)
return string.Empty;
Expand Down Expand Up @@ -68,7 +68,8 @@ private static string GeStockMessage(Product product, string attributesXml, ILoc
}
else
{
stockMessage = localizationService.GetResource("Products.Availability.InStock");
stockMessage = !productAttributeService.GetProductAttributeMappingsByProductId(product.Id)
.Any(pam => pam.IsRequired) ? localizationService.GetResource("Products.Availability.InStock") : localizationService.GetResource("Products.Availability.SelectRequiredAttributes");
}
}
return stockMessage;
Expand Down Expand Up @@ -185,9 +186,10 @@ public static TierPrice GetPreferredTierPrice(this Product product, Customer cus
/// <param name="localizationService">Localization service</param>
/// <param name="productAttributeParser">Product attribute parser</param>
/// <param name="dateRangeService">Date range service</param>
/// <param name="productAttributeService">Product attribute service</param>
/// <returns>The stock message</returns>
public static string FormatStockMessage(this Product product, string attributesXml,
ILocalizationService localizationService, IProductAttributeParser productAttributeParser, IDateRangeService dateRangeService)
ILocalizationService localizationService, IProductAttributeParser productAttributeParser, IDateRangeService dateRangeService, IProductAttributeService productAttributeService)
{
if (product == null)
throw new ArgumentNullException(nameof(product));
Expand All @@ -209,7 +211,7 @@ public static TierPrice GetPreferredTierPrice(this Product product, Customer cus
stockMessage = GetStockMessage(product, localizationService, dateRangeService, stockMessage);
break;
case ManageInventoryMethod.ManageStockByAttributes:
stockMessage = GeStockMessage(product, attributesXml, localizationService, productAttributeParser, dateRangeService);
stockMessage = GeStockMessage(product, attributesXml, localizationService, productAttributeParser, dateRangeService, productAttributeService);
break;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15870,6 +15870,9 @@
<LocaleResource Name="Products.Availability.OutOfStock">
<Value>Out of stock</Value>
</LocaleResource>
<LocaleResource Name="Products.Availability.SelectRequiredAttributes">
<Value>Please select required attribute(s)</Value>
</LocaleResource>
<LocaleResource Name="Products.BasePrice">
<Value>equates to {0} per {1} {2}</Value>
</LocaleResource>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -982,7 +982,7 @@ public virtual IActionResult AddProductToCart_Details(int productId, int shoppin
}

//stock
var stockAvailability = product.FormatStockMessage(attributeXml, _localizationService, _productAttributeParser, _dateRangeService);
var stockAvailability = product.FormatStockMessage(attributeXml, _localizationService, _productAttributeParser, _dateRangeService, _productAttributeService);

//conditional attributes
var enabledAttributeMappingIds = new List<int>();
Expand Down
2 changes: 1 addition & 1 deletion src/Presentation/Nop.Web/Factories/ProductModelFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1190,7 +1190,7 @@ public virtual string PrepareProductTemplateViewPath(Product product)
ShowGtin = _catalogSettings.ShowGtin,
Gtin = product.Gtin,
ManageInventoryMethod = product.ManageInventoryMethod,
StockAvailability = product.FormatStockMessage("", _localizationService, _productAttributeParser, _dateRangeService),
StockAvailability = product.FormatStockMessage("", _localizationService, _productAttributeParser, _dateRangeService, _productAttributeService),
HasSampleDownload = product.IsDownload && product.HasSampleDownload,
DisplayDiscontinuedMessage = !product.Published && _catalogSettings.DisplayDiscontinuedMessageForUnpublishedProducts
};
Expand Down
3 changes: 3 additions & 0 deletions upgradescripts/4.00-4.10 (under development)/upgrade.sql
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ set @resources='
<LocaleResource Name="Admin.Catalog.LowStockReport.SearchPublished.UnpublishedOnly">
<Value>Unpublished only</Value>
</LocaleResource>
<LocaleResource Name="Products.Availability.SelectRequiredAttributes">
<Value>Please select required attribute(s)</Value>
</LocaleResource>
</Language>
'

Expand Down

0 comments on commit 33f7dea

Please sign in to comment.