vendrhub / vendr-usync Goto Github PK
View Code? Open in Web Editor NEWuSync serializers for Vendr, the eCommerce solution for Umbraco v8+
License: MIT License
uSync serializers for Vendr, the eCommerce solution for Umbraco v8+
License: MIT License
Tried to use it on V10 but it didn't work.
I'll try to spend some time to see what's wrong and where but thought it'd be good to keep it as an issue here too :)
Could this be extended so uSync Publisher can push / pull the settings between sites from within the backoffice?
When a vendr installation has no Stores, there is no push/pull option on the root 'Stores' node - so you can't pull the stores from another existing site.
there should be a 'push/pull' at the root 'Stores' node just like there is for Content and Media when using uSync.Complete
I tested on Umbraco 8.10.1 and 8.12.2, uSync v8.9, Vendr.uSync v1.0.0
Temp fix: Manually add these settings to the config/usync8.Config file
<Handler Alias="vendrStoreHandler" Enabled="true" />
<Handler Alias="vendrCurrencyHandler" Enabled="true"/>
<Handler Alias="vendrCountryHandler" Enabled="true" />
<Handler Alias="vendrEmailTemplateHandler" Enabled="true" />
<Handler Alias="vendrOrderStatusHandler" Enabled="true" />
<Handler Alias="vendrPaymentMethodHandler" Enabled="true" />
<Handler Alias="vendrRegionHandler" Enabled="true" />
<Handler Alias="vendrShippingMethodHandler" Enabled="true" />
<Handler Alias="vendrTaxClassHandler" Enabled="true" />
This was raised in the Vendr Deploy repo but probably counts here too, but some payment provider settings might not want to be deployed so we have implemented an app setting to ignore specific settings. Whatever we do in that package, we are probably going to need to replicate here too
Hi Matt,
We are currently running an Umbraco 8.17 instance with uSync Complete version 8.10.2, and Vendr version 2.0.2.
After the installation of the latest version of Vendr uSync (2.0.0), no options that involve Vendr show on the uSync Synchronisation Dashboard. (i.e. no Vendr options available under the Report, Import or Export button).
What is suprising is that 'Vendr.Usync (v2.0.0)' does show up in the label at the top of the uSync dashboard itself, next to all the other uSync addons that are installed. Another thing that I noted is that during the install, it only added the Vendr.uSync package to the package.config, but no other App_Plugins/uSync files were touched or added to the solution during the install.
Hope you can help me figure out what's going wrong!
Kind regards,
Corné Hoskam
Working on Umbraco 9 with uSync 9.0.1 with clean fresh installs, tried to install Vendr uSync 2 and, uSync dashboard disappears console error is following;
{"ExceptionMessage":"The given key 'Vendr' was not present in the dictionary.","ExceptionType":"System.Collections.Generic.KeyNotFoundException, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e","StackTrace":" at System.Collections.Generic.Dictionary`2.get_Item(TKey key)\r\n at uSync.BackOffice.Controllers.uSyncDashboardApiController.<>c.<GetHandlerGroups>b__29_1(String v)\r\n at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)\r\n at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)\r\n at uSync.BackOffice.Controllers.uSyncDashboardApiController.GetHandlerGroups()\r\n at lambda_method693(Closure , Object , Object[] )\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()\r\n--- End of stack trace from previous location ---\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()\r\n--- End of stack trace from previous location ---\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)"}
Uninstalling Vendr uSync 2 fixes the uSync dashboard.
Firstly, amazing that this package has been released, I'm super excited to start using it.
However, I think I have a stumbling block that would prevent me from using it for the time being, especially on a site that is already set up.
It's possible that some settings, for example payment provider settings, might need to vary on different environments.
It would be great if the usync handlers worked in the same way as the uSync Dictionary handler works, in that it can have a flag set which indicates it's one way.
What this does, as I understand it, is only imports new settings/fields that weren't previously set. This way it wouldn't override changes to the live's site settings, but could for example, set up a new country/currency.
We have a bug/enhancement on the Vendr Deploy repo around Product Attributes introduced in Vendr 1.5.0. These should be considered more "contenty" as these are likely to change by the hand of the store owner, and not be like settings that get created and are hardly updated.
We need to see then what we should do about adding some level of support around these?
When you save something with a handler it should trigger a save of the item to disk, for v3 this doesn't appear to be happening.
its not a major deal, if people are running and export or syncing via uSync.Complete but it should be there so we can keep in sync.
for example the PaymentMethodHandler
should handle PaymentMethodSavedNotification
and PaymentMethodDeletedNotification
but it doesn't fire.
guessing because we never actually register these via an EventHub?
but ?
All the handlers are in a collection that is loaded via uSync
We are implimenting IEventHandlerFor
so i am not sure how we register them
public class PaymentMethodHandler : VendrSyncHandlerBase<PaymentMethodReadOnly>, ISyncVendrHandler
, IEventHandlerFor<PaymentMethodSavedNotification>
, IEventHandlerFor<PaymentMethodDeletedNotification>
Guess it is a quick thing but not sure what it requires ?
Running the Vendr.uSync v2, with Vendr V2 on Umbraco v9.0.1 in release mode breaks the backoffice.
It seems the backoffice bundler is trying to load some files that don't exist meaning it can't render any package stylesheets, breaking uSync, Vendr backoffice, etc. As the bundler only runs when debug = false
this only manifests in production.
I can see the NuGet package doesn't currently include the required App_Plugins files so this is the likely cause, there's some broken backoffice dictionary keys too.
I updated to 2.1.0-pullrequest0010-0007
on the pre-release MyGet feed and it seems to fix things, although an unnecessary XDT file is included (needed for V8 not V9).
uSync regularly tracks renames and deletes of entities in Umbraco, but doesn't seem to do the same for Vendr.
When renaming (changing the alias) it is expected that uSync creates a new definition under the new name and updates the previous / existing definition like this:
<Empty Key="{guid}" Alias="{alias}" Change="Rename" />
The behaviour is similar for deletes, whereby the definition file is not deleted but is instead updated like this:
<Empty Key="{guid}" Alias="{alias}" Change="Delete" />
When renaming / removing configuration in Vendr these changes are not being tracked - tested with payment methods, email templates, and export templates, but likely applies broadly.
Tested on Umbraco v9.0.1 with Vendr v2 and Vendr uSync v2.0.0.
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.