teacommerce / tea-commerce-for-umbraco Goto Github PK
View Code? Open in Web Editor NEWTea Commerce is an e-commerce package for Umbraco CMS
Home Page: https://www.teacommerce.net/
License: MIT License
Tea Commerce is an e-commerce package for Umbraco CMS
Home Page: https://www.teacommerce.net/
License: MIT License
I tried to see what happens if added same discount code or gift card again. If I add the exact same value it seem to be ignored as it already exists. However if I add an extra whitespace in end of the code, the same code is added to the order multiple times.
e.g. first time I add a discount code called "NEWYEAR2015" and second time "NEWYEAR2015 ". Notice the whitespace in the end.
Then I see this:
and the order have the same discount code and gift card twice, but without the space.
When I add a space in front I don't see an server error and it's ignored. If I add exact same value again the I get an server error as below, but no duplicates. But if I add an space in the end I also get the server error below and the code is added twice in the order object like shown in the screenshot above.
<error><![CDATA[MESSAGE:
Destinationen for en aktivering udløste en undtagelse.
STACKTRACE:
ved System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
ved System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
ved System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
ved Umbraco.Web.BaseRest.RestExtensionMethodInfo.Invoke(String[] parameters)
INNEREXCEPTION:
System.Data.SqlClient.SqlException (0x80131904): Violation of PRIMARY KEY constraint 'PK_TeaCommerce_AppliedDiscountCode'. Cannot insert duplicate key in object 'dbo.TeaCommerce_AppliedDiscountCode'. The duplicate key value is (46f2fa57-b40a-42f5-9dc2-fdf3b7669860, NEWYEAR2015).
The statement has been terminated.
ved System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
ved System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
ved System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
ved System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
ved System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
ved System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
ved System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
ved System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
ved TeaCommerce.Api.Persistence.Database.Insert(String tableName, String primaryKeyName, Boolean autoIncrement, Object poco)
ved TeaCommerce.Api.Persistence.Database.Insert(Object poco)
ved TeaCommerce.Api.Persistence.Repositories.OrderRepository.Save(Order order)
ved TeaCommerce.Api.Models.Order.Save()
ved TeaCommerce.Api.Web.FormPostHandler.AddDiscountCode(Int64 storeId, IDictionary`2 formFields, IDictionary`2 settings)
ved TeaCommerce.Api.Web.FormPostHandler.FormPost()
ClientConnectionId:8b52c22a-1015-4b0d-81fe-58b1666f918b]]></error>
when there are duplicates of discount codes or gift cards on the order, furthermore I get this error if I want to remove of code. This happens because the collection contains duplicates of the same key (discount code or gift card code). This really shouldn't happen, that you can add same code multiple times:
<error><![CDATA[MESSAGE:
Destinationen for en aktivering udløste en undtagelse.
STACKTRACE:
ved System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
ved System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
ved System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
ved Umbraco.Web.BaseRest.RestExtensionMethodInfo.Invoke(String[] parameters)
INNEREXCEPTION:
System.InvalidOperationException: Sekvensen indeholder mere end ét tilsvarende element
ved System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
ved TeaCommerce.Api.Web.FormPostHandler.RemoveDiscountCode(Int64 storeId, IDictionary`2 formFields, IDictionary`2 settings)
ved TeaCommerce.Api.Web.FormPostHandler.FormPost()]]></error>
As mentioned in issue #9, it should be possible to download a list of promo codes, with the count of number of times they've been used/remaining - this data is present in the underlying SQL table, but that's not available to a backoffice user.
In the e-mail templates, e.g. edit-order.cshtml and email-template-confirmation.cshtml it display the amount of the gift cards used, but it doesn't display any price about the Discount Codes used, e.g. when you use an Discount Code "NEWYEAR2015" with 10% of Subtotal price and if Subtotal is 5.990,00 the Discount for TotalPrice would be 599,00.
Otherwise you might be wondering, where the "missing" subtracted price in the TotalPrice come from.
The part below is already in the template:
@if ( Model.TotalPrice.GiftCardsAmount.Value > 0 ) {
<tr>
<td colspan="4" align="right">
@(Model.GiftCards.Count > 1 ? "Gift cards" : "Gift card")
</td>
<td style="white-space: nowrap;" align="right">
@Model.TotalPrice.GiftCardsAmount
</td>
<td></td>
</tr>
}
so I have just added this new part below the gift card amount:
@if ( Model.TotalPrice.Discount.Value > 0M ) {
<tr>
<td colspan="4" align="right">
@(Model.DiscountCodes.Count > 1 ? "Discount codes" : "Discount code")
</td>
<td style="white-space: nowrap;" align="right">
@Model.TotalPrice.Discount
</td>
<td></td>
</tr>
}
Maybe also add a "-" as text in front to clarify that these prices are subtracted?
Another little thing is in product rules and awards, is to ensure that the label have a for attribute and the checkbox has a matching id attribute.
Furthermore the "accumulate" checkbox and it's label is not always next to each other.
When a variant combination already is added, it would make since to preselect it and disable those buttons (or remove them from the options).
Furthermore, based on the starterkit when choosing Color: Black, Green
they are submitted, but you get an error:
Some of your variants does not have the same variant types
Maybe the "Add variant options" button should be disabled in that case? but I am not sure how I will work when you only have a single variant group like Color
- in that case it should be okay to add variants only from one variant group.
I also thought about if you can configurate the product to use different variant groups? e.g. if you sell a shoe you might want to use variant groups for Color
and Shoe Size
.. but for a T-shirt Color
and Size
...
so often you want to add variants based on the product type.
Finally it would also be great to demonstrate in demo site, that if you e.g. select Color:Black
it is available in Size:S,M,L
.. but for Color:Green
it is only available in Size:S,M
on frontend (just for demonstration purpose)
When adding new variants or removing variants it should set $dirty
property on the (property) form, which will show the "unsaved changes" box if you browse to another node with unsaved changes.
when selection af Color (e.g. Green) "- Select all variant types -" change to "- Deselect all variant types -" ... it doesn't happen when selection just a Size (e.g. Medium).
Maybe add a NuGet package, so you have the option to install Tea Commerce via NuGet?
I have tested install of Tea Commerce 3.0.7 for Umbraco 7.3.1, but it seems to be missing some language keys (en-US).
In Umbraco 7.3.0+ you don't have to modify Umbraco core language files, but instead in /App_Plugins/TeaCommerce/ add a folder /Lang .. and in this folder and language files named with culture name like da-DK.xml, en-GB.xml, en-US.xml etc.
Like this https://github.com/Merchello/Merchello/tree/merchello-dev/src/Merchello.Web.UI/App_Plugins/Merchello/lang
But I think Tea Commerce get the localization in a different way?
This guy was not able to add a product without a sku field - it did not fallback to the id.
https://our.umbraco.org/projects/website-utilities/tea-commerce/tea-commerce-support/84857-can-no-longer-add-to-basket
Maybe there should be a delete/remove rule group link/button, so if you have multiple rules, you don't have to delete each rule to start over - just remove the rule group and define new rules.
Generally I think when you have someting that "add", there should also be a "remove" feature.
I think it would be nice to have the option to export orders to e.g. CSV, Excel..
I think it would be great if you could choose which order variant groups should be sorted in backoffice.
At the moment the sort order seems to be A-Z
.. which might be fine in most cases, but for sizes it would probably be better with a sort order like S, M, L
(order of tree nodes - which probably also will be the order you prefer to use on frontend).
I think it will be most flexible to use sort order of the tree nodes as the editors can decide the sort order (but I am not sure if it might conflict with frontend in some cases?)
When you change the quantity of an orderline in the edit-order screen inside umbraco and hit save the quantity has been incremented but the prices don't seem to change and also it doesn't seem to take into consideration the stock as the stock for this product 1 yet I could increase it to 2. Or maybe it does take it into consideration and that is why the prices don't change but if that is the case then it shouldn't stay incremented after you save the order.
Thanks,
Tom
For discount codes maybe change the tree node icon to a red tag icon, when it is not active or valid anymore? and maybe the marketing root node could be used to list the created discount codes?
When you are editing/watching details about a gift card, it would be good to have a link/button to go back to the list of gift cards as you can't click gift cards, marketing og orders tree nodes, so it's less userfriendly to edit gift cards now as you have to click on another tree node and then back to the gift cards node.
Fortunately you can use the browser back button.
I would love if there were a build-in datatype/property editor or another way to handle many variants and different variant groups.
E.g. I once had a company with 27 different shoe sizes (incl. ½ sizes) and it would be difficult to handle variants as tree nodes. Just for 10 products that would be 270 child nodes.
Maybe you could just add or select variants and variant groups on a product and the combinations would be generated? From there you could change price, stock etc. on each variant.
I know you guys could build a custom solution for a specific client that need this and it might be okay with a medium size client with many products, but for a small client it might be harder to convince to client to pay that extra compared with the price of the license.
I think many using Tea Commerce would like to have a built-in support for this and would be willing to pay a small amount to get this developed - I would.
Is this something that could be considered in the future versions of Tea Commerce?
Hi i'm having an issue with the instalation, i followed the wizzard package instalation on Umbraco and installing local with the same results.
at the end of the installation returns this error message, i tried to installing Tea Commerce on Umbraco 7.4 and 7.3.6
Could not load types from assembly umbraco, Version=1.0.5871.32307, Culture=neutral, PublicKeyToken=null, errors:
Exception: System.IO.FileLoadException: No se puede cargar el archivo o ensamblado 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' ni una de sus dependencias. La definición del manifiesto del ensamblado no coincide con la referencia al ensamblado. (Excepción de HRESULT: 0x80131040)
Nombre de archivo: 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'
AVS: El registro del enlace de ensamblado está desactivado.
Para habilitar el registro de errores del enlace de ensamblado, establezca el valor de Registro HKLM\Software\Microsoft\Fusion!EnableLog como 1.
Nota: existe una disminución del rendimiento asociada registro de errores del enlace de ensamblado.
Para desactivar esta característica, elimine el valor de Registro [HKLM\Software\Microsoft\Fusion!EnableLog].
Exception: System.IO.FileLoadException: No se puede cargar el archivo o ensamblado 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' ni una de sus dependencias. La definición del manifiesto del ensamblado no coincide con la referencia al ensamblado. (Excepción de HRESULT: 0x80131040)
Nombre de archivo: 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'
AVS: El registro del enlace de ensamblado está desactivado.
Para habilitar el registro de errores del enlace de ensamblado, establezca el valor de Registro HKLM\Software\Microsoft\Fusion!EnableLog como 1.
Nota: existe una disminución del rendimiento asociada registro de errores del enlace de ensamblado.
Para desactivar esta característica, elimine el valor de Registro [HKLM\Software\Microsoft\Fusion!EnableLog].
Exception: System.IO.FileLoadException: No se puede cargar el archivo o ensamblado 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' ni una de sus dependencias. La definición del manifiesto del ensamblado no coincide con la referencia al ensamblado. (Excepción de HRESULT: 0x80131040)
Nombre de archivo: 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'
AVS: El registro del enlace de ensamblado está desactivado.
Para habilitar el registro de errores del enlace de ensamblado, establezca el valor de Registro HKLM\Software\Microsoft\Fusion!EnableLog como 1.
Nota: existe una disminución del rendimiento asociada registro de errores del enlace de ensamblado.
Para desactivar esta característica, elimine el valor de Registro [HKLM\Software\Microsoft\Fusion!EnableLog].
Based on the demo on demo.teacommerce.net then console shows errors for Tea Commerce section, e.g. in SearchOrders.aspx
It seems it rely on the old .live() function - it should be replaced by the .on() function http://api.jquery.com/on/
I am not sure if any Umbraco v6 version use a version of jQuery before v.1.7?
I think it would be great to highlight the current tree node in Umbraco 7 :)
You can add product rules for multiple products, but you need to add a product rule for each product and select the product.
It might be easier/better if you have a MNTP (multi-node tree picker) to select multiple products.
How is the "discount code rule" intended to work?
Both Manual and Generate doesn't seem to add content to "Discount codes:" and "Unused discount codes:" .. and the download link returns:
The specified argument value for the function is not valid. [ Argument # = 1,Name of function(if known) = isnull ]
.. maybe because the discount code is null?
I should mention i have tested with SQL CE.
Set default/initial rule and award otherwise when it's blank and you click "add", nothing happens, because there is an error:
TypeError: Cannot read property 'alias' of undefined
so maybe just set the first element in the dropdownlist as default value?
I've just tried upgrading a site to 7.2.1 and when I navigate to the Tea Commerce order search page in Umbraco I get the following error:
An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0104: 'Constants' is an ambiguous reference between 'ClientDependency.Core.Constants' and 'TeaCommerce.Umbraco.Application.Constants'
Thanks,
Tom
Under the Security node if I just check the "Marketing" checkbox it doesn't check the store checkbox, but if I reload the view it's checked.. but I can't just checked only the store + marketing ... I also have to check the Settings checkbox.. so for my editor user it either doesn't have access to marketing or it has access to marketing, but also to settings.
TC.GetVariantGroups(1, product.Id.ToString());
throws:
Autofac.Core.Registration.ComponentNotRegisteredException: The requested service 'TeaCommerce.Umbraco.Configuration.Variants.Services.IVariantService`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[TeaCommerce.Umbraco.Configuration.Variants.Models.VariantPublishedContent, TeaCommerce.Umbraco.Configuration, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null]]' has not been registered. To avoid this exception, either register a component to provide the service, check for service registration using IsRegistered(), or use the ResolveOptional() method to resolve an optional dependency.
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve[TService](IComponentContext context, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve[TService](IComponentContext context)
at TeaCommerce.Umbraco.Web.TC.GetVariants[T](Int64 storeId, T product, Boolean onlyValid) in C:\Users\niklas.raab\AppData\Local\JetBrains\Shared\v07\DecompilerCache\decompiler\2DBF3533-0880-4597-9E2C-62FFDD726AA9\ae\88000066\TC.cs:line 325
at TeaCommerce.Umbraco.Web.TC.GetVariantGroups[T](Int64 storeId, T product, Boolean onlyValid) in C:\Users\niklas.raab\AppData\Local\JetBrains\Shared\v07\DecompilerCache\decompiler\2DBF3533-0880-4597-9E2C-62FFDD726AA9\ae\88000066\TC.cs:line 330
at ASP._Page_Views_MacroPartials_List_Variants_of_Product_cshtml.Execute() in c:\Dev\PGM\trunk\.NET\Orca.Homepage.Web\Views\MacroPartials\List Variants of Product.cshtml:line 12
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
at Umbraco.Core.Profiling.ProfilingView.Render(ViewContext viewContext, TextWriter writer)
at Umbraco.Web.Mvc.ControllerExtensions.RenderViewResultAsString(ControllerBase controller, ViewResultBase viewResult)
at Umbraco.Web.Macros.PartialViewMacroEngine.Execute(MacroModel macro, IPublishedContent content)
at Umbraco.Web.Macros.PartialViewMacroEngine.Execute(MacroModel macro, INode node)
at umbraco.macro.LoadPartialViewMacro(MacroModel macro)
at umbraco.macro.renderMacro(Hashtable pageElements, Int32 pageId)
at Umbraco.Web.UmbracoComponentRenderer.RenderMacro(macro m, IDictionary`2 parameters, page umbracoPage)
at Umbraco.Web.UmbracoComponentRenderer.RenderMacro(String alias, IDictionary`2 parameters, page umbracoPage)
at Umbraco.Web.UmbracoComponentRenderer.RenderMacro(String alias, IDictionary`2 parameters)
at Umbraco.Web.UmbracoHelper.RenderMacro(String alias, IDictionary`2 parameters)
at ASP._Page_Views_Partials_grid_editors_macro_cshtml.Execute() in c:\Dev\PGM\trunk\.NET\Orca.Homepage.Web\Views\Partials\Grid\Editors\Macro.cshtml:line 13
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
at Umbraco.Core.Profiling.ProfilingView.Render(ViewContext viewContext, TextWriter writer)
at System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection)
at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model)
at ASP._Page_Views_Partials_grid_editors_base_cshtml.Execute() in c:\Dev\PGM\trunk\.NET\Orca.Homepage.Web\Views\Partials\Grid\Editors\Base.cshtml:line 19
What is the problem? It occours only after the update
Security and Licenses trees have same sortOrder, which cause that they sometimes switch position in the tree structure in Tea Commerce section.
<add silent="false" initialize="true" sortOrder="0" alias="tea-commerce-store-tree" application="teacommerce" title="Stores" iconClosed="folder.gif" iconOpen="folder_o.gif" assembly="TeaCommerce.Umbraco.Application" type="Trees.StoreTree" action="" />
<add silent="false" initialize="true" sortOrder="1" alias="tea-commerce-licenses-tree" application="teacommerce" title="Licenses" iconClosed="folder.gif" iconOpen="folder_o.gif" assembly="TeaCommerce.Umbraco.Application" type="Trees.LicenseTree" action="" />
<add silent="false" initialize="true" sortOrder="2" alias="tea-commerce-need-help-tree" application="teacommerce" title="Need help?" iconClosed="folder.gif" iconOpen="folder_o.gif" assembly="TeaCommerce.Umbraco.Application" type="Trees.NeedHelpTree" action="" />
<add silent="false" initialize="true" sortOrder="1" alias="tea-commerce-security-tree" application="teacommerce" title="Security" iconClosed="folder.gif" iconOpen="folder_o.gif" assembly="TeaCommerce.Umbraco.Application" type="Trees.SecurityTree" action="" />
Not a big issue, but I think it would be less confusing, when the level 1 trees have unique sortOrders in this section. E.g.
Stores: sortOrder=0
Security: sortOrder=1
Licenses: sortOrder=2
Need help?: sortOrder=3
I installed af Tea Commerce 3 in an Umbraco 6.2.4 and Tea Commerce 2.3.2
Now I noticed the property "Lenght" under the tab "Gift cards" for the store was set the null, which means no code was generated and after the first "empty" gift card it returned an exception:
I changed the "Lenght" property to 10, but it also changed "Number of days to be valid" to same value.. shouldn't it be possible to set two different values?
Anyway, after changing this value to 10, I could create a new giftcard:
When you loop through the gift cards it's easy to output the value of the giftcard with the "Amount" property.. however when looping the discount codes there are only they only have "Code" and "IsFulfilled" properties.
If you add multiple discount codes and gift cards, you might want to see how much each represents in the discount. There don't seem to be an easy way to access to value.
I can find the value like this:
foreach (var discountCode in discountCodes)
{
var di = order.TotalPrice.Discounts.ElementAt(0);
<span class="discountCode">@discountCode.Code @di.WithVatFormatted</span>
}
the index "0" should match the loop, so first time 0, then 1, 2.. etc... but you could have three discount codes, where the no. 1 and 3 is on total price og no. 2 on subtotal. Then if I want the discount price for no. 3 it would be order.TotalPrice.Discounts.ElementAt(1); (the second element).. so I can't ensure that the loop match the same same elements in the TotalPrice.Discounts or Subtotal.Discounts arrays.
but I have another code, where the discount is related to Subtotal, so I would have to use order.SubtotalPrice.Discounts ... and the award could have been added to shipment price and payment price aswell.
but I think it only is relevant, when you have a discount code rule for the campaign. Is there another to get the discount price for the matching discount code?
When deleting an order it reloads to a 404 page.
When editing the number of days a gift card should be valid and save the settings - it's not saved.
It would be great if i was easier to search for orders that have a discount code or gift card added .. or just have a discount subtracted, if the campaign doesn't require use of a discount code, e.g. "buy 10 and get 1 for free" or "get $20 discount when you buy for more than $200".
Sometimes I have seen that the node names in the tree don't always match the User language.
E.g. here I am logged in as admin user which is set to English (UK), but the node names are in Danish. But there is another user created which use Danish.
Using Umbraco 6.2.4 and Tea Commerce 3.0.0
However when I browsed to another section and came back it was updated.
Have you guys seen that before?
In e.g. marketing section it has many hardcode text labels.. might be useful to localize these values.
If I create a new gift card, how do I delete them? Shop owner might create one by mistake, so I should be possible to delete them again. But they are listed as tree nodes like discount codes and haven't any checkbox in the list like for the order lists.
I could set the "valid to" date to a data in the past so it isn't valid anymore.. but at some point you want to clean up, right?
We used GetAllFinalizedOrdersAsXml to search for orders by email address but it's been removed in one of the recent builds. How can we search for orders by email address?
With the marketing module and the API, I can easily get the total discount and total gift card amount. However there doesn't seem to be an easy way to access the total saved price for an order, when you have used both a giftcard and a discount code.
E.g. I have created two giftcards on 50 DKK and 200 DKK .. and a discount code with 10% discount of total price.
I have a property to get total discount and total gift card amount. However if I want the total save price a can add the values, but if I also want the format and currency set i Tea Commerce I have to do some more work. How would you handle this, without hardcode the currency format in the razor or JavaScript code?
Would it make sence to have two properties like "totalSavedPrice" and "totalSavedPrice.Formatted"?
In e.g. JavaScript I can add the prices, but I then need a function/helper to get the price 519.5 in the right format.
cart.find('#discount').text((parseFloat(order.totalPrice.giftCardsAmount.value) + parseFloat(order.totalPrice.discount.withVat)));
For gift cards if I clear date and click save I get an server error:
An overflow occurred while converting to datetime.
Could the field be marked as required instead?
In edit-order.cshtml in total column in list the gift cards used, but not discount codes used..
It does list discounts codes below "Order lines", however if discount codes are used, it might not be clear exactly how the final total price is calculated because you are not seing the subtracted price for discount codes.
I have modified the template with an addtional row for subtracted discount codes, but I think it should be default and I have added a minus in front to make it clear that it is a price that is subtracted:
@if ( Model.TotalPrice.GiftCardsAmount.Value > 0 ) {
<tr>
<td colspan="4" align="right">
@(Model.GiftCards.Count > 1 ? "Gift cards" : "Gift card")
</td>
<td style="white-space: nowrap;" align="right">
- @Model.TotalPrice.GiftCardsAmount
</td>
<td></td>
</tr>
}
@if ( Model.TotalPrice.Discount.Value > 0 ) {
<tr>
<td colspan="4" align="right">
@(Model.DiscountCodes.Count > 1 ? "Discount codes" : "Discount code")
</td>
<td style="white-space: nowrap;" align="right">
- @Model.TotalPrice.Discount
</td>
<td></td>
</tr>
}
Futhermore I have also added it to email-template-confirmation.cshtml
When you go to the payment gateway with an order, go back and add a new product and the order is cloned. Then the order doesn't get a new cart number which it should. Some gateways requires unique numbers.
Calling TC.GetFinalizedOrdersForCustomer(storeId, customerId) returns zero orders with a valid storeId and customerId of a customer with finalised orders.
In Umbraco 7 you get an error after you pick an image for a Shipping Method and the click delete to remove the image. Might also be an issue for Payment methods.
I have tested with Umbraco 7.4.1 / SQL CE and Tea Commerce 3.1.0
I think I have had this issue before and it seems to happen first time you create a new store or marketing campaign .. or when there isn't any stores or campaigns already created.
It seems to happen immediately after reloading the child nodes for "Stores" or "Marketing".
I get this error in the console.
)]}',
{"Message":"Authorization has been denied for this request."}
It is possible to add blank/empty codes for discount code rule, when using manual option.
Could this field have client side validation to ensure the field is not empty, when the editor click "add". I think an easy fix would be to diable the add-link until the textarea has a value.
I think it would be great to add a sort direction icon for ascending/descending like in listview instead of icon-navigation-road
- so it will be more clear than sorting in happening, e.g. if sorting on a column with same values.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.