JOIN DiGiDi - Digital Distribution


DiGiDi is a co-operative company (a.m.b.a). Read regulations
This means that everyone who uses DiGiDi is a co-owner and shareholder of DiGiDi.

All shareholders have one share and one vote.

DiGiDi is thus sincerely democratic, Non profit and equal terms apply to all members.

All of the earnings are divided according to sales, so there is no redistribution amongst the shareholders.
YOU receive all that YOU earn and YOU only pay for what YOU get.

To become a co-owner you have to purchase a share worth the value of 'One Day's Pay'.

To simplify there are 3 prices, dependent on where you LIVE:

Western Europe, US, New Zeeland:
€135, £100, $150 

Rest of Europe, Americas, Asia:
€50, £35, $55

Africa, RoW:
€8, £6, $10



This is a deposit which is deposited in your personal members account. The payment is used to develop all of DiGiDi's online services.

You are ONLY legally liable for your deposit.
Whenever you want to, you can sell your share and get your deposit back.

When you spend money distributing your work through DiGiDi the expenses will be deducted from you members account.
When you sell something (e.g. downloads or streams of your music) the money will go to your members account.

You can always take out the excess money from your account.

Exception in template (Designs\Dwsimple\UserManagement/CreateProfile/sp_user_create_account2-0ENG.cshtml): System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Dynamicweb.Base.PasswordGenerate(String strCharNumber, String security)
   at Dynamicweb.Base.PasswordGenerate(String strCharNumber)
   at CompiledRazorTemplates.Dynamic.acfbbaefcafe.Execute()
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context)
   at RazorEngine.Templating.TemplateService.Run(ITemplate template, DynamicViewBag viewBag)
   at RazorEngine.Templating.TemplateService.Parse(String razorTemplate, Object model, DynamicViewBag viewBag, String cacheName)
   at RazorEngine.Razor.Parse[T](String razorTemplate, T model, String cacheName)
   at Dynamicweb.Rendering.Template.Output()
@using System.Web; @using Dynamicweb; @{ var validationLoop = GetLoop("FormValidationErrors"); string Name = GetString("UserManagement:User.Name.InputName"); string Address = GetString("UserManagement:User.Address.InputName"); string Zip = GetString("UserManagement:User.Zip.InputName"); string City = GetString("UserManagement:User.City.InputName"); string Country = GetString("UserManagement:User.Country.InputName"); string Phone = GetString("UserManagement:User.PhoneMobile.InputName"); string Email = GetString("UserManagement:User.Email.InputName"); string Company = GetString("UserManagement:User.Company.InputName"); string UserName = GetString("UserManagement:User.UserName.InputName"); string CVRnr = GetString("UserManagement:User.VatRegNumber.InputName"); string Labelname = GetString("UserManagement:User.CustomField.AccessUser_Labelname.Input.ID"); string Service = GetString("UserManagement:User.CustomField.AccessUser_Service.Input.ID"); string NewPassword = GetString("UserManagement:User.NewPassword.InputName"); string NewPasswordConfirm = GetString("UserManagement:User.NewPasswordConfirm.InputName"); string UserCreatedOnPageId = GetString("UserManagement:User.AccessUser_UserCreatedOnPageId.InputName"); var showSelectableGroups = GetLoop("SelectableGroups"); var showCustomFields = GetLoop("UserManagement:User.CustomFields"); var pageView = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.GetPageview(); var area = Dynamicweb.Content.Area.GetAreaById(pageView.AreaID); string EcomLanguageID = area.EcomLanguageID; int pageID = pageView.Page.ID; string RobotText = Pageview.Area.Item["Sp_RobotText"].ToString(); var password = Base.PasswordGenerate("10"); } @if (validationLoop.Any()) { <div id="errormessages"><br> @foreach (LoopItem i in GetLoop("FormValidationErrors")) { <div class="alert alert-block alert-danger fade in static top-alert"> <b>@i.GetString("UserManagement:User.FormValidationError.Message") @if (i.GetString("UserManagement:User.FormValidationError.FieldNiceName") == "Username") { @:Angiv venligst en anden email adresse. } else { @:Der er sket en fejl, oplysningerne er ikke gemt } </b> </div> } </div> } else if (!String.IsNullOrWhiteSpace(System.Web.HttpContext.Current.Request.QueryString["usermnagementform"])) { <div class="alert alert-block alert-success fade in static top-alert"> <b> Dine ændringer er gemt </b> </div> } <div class="js-formcontainer"> @GetValue("UserManagement:User.FormStart") @{ if(showCustomFields.Any()) { foreach (var group in showCustomFields) { var groupSystemName = group.GetString("CustomField.SystemName"); var groupSystemNameForUpdate = "CustomField.AccessUser_" + group.GetString("CustomField.SystemName"); if(groupSystemName == "AccessUser_Language") { <input type="hidden" class="form-control" name="@groupSystemNameForUpdate" value="@EcomLanguageID"> } if (groupSystemName == "AccessUser_UserCreatedOnPageId") { <input type="hidden" class="form-control" name="@groupSystemNameForUpdate" value="@pageID"> } } } } <h2>Join DiGiDi</h2> <table width="100%" cellspacing="2" cellpadding="2" style="border-collapse:separate; border-spacing:10px; border:1px solid #ddd;"> <tr> <td align="left" width="20%"><label for="@Email" class="control-label">Email</label></td> <td> <input type="text" class="form-control js-req js-email" id="@Email" name="@Email" placeholder='Email' value='@GetValue("UserManagement:User.Email")' > <div class="errormessage js-invalid-nofill" style="display:none;"> Must be filled </div> <div class="errormessage js-invalid-email" style="display:none;"> Email adress not legit </div> </td> </tr> <tr> <td align="left"><label for="@Name" class="control-label">Name</label></td> <td><input type="text" class="form-control js-req js-name" id="@Name" name="@Name" placeholder='Name' value='@GetValue("UserManagement:User.Name")' > <div class="errormessage js-invalid-nofill" style="display:none;"> Must be filled </div> </td> </tr> <tr> <td align="left"><label for="@Address" class="control-label">Address</label></td> <td><input type="text" class="form-control js-req js-address" id="@Address" name="@Address" placeholder='Address' value='@GetValue("UserManagement:User.Address")' > <div class="errormessage js-invalid-nofill" style="display:none;"> Must be filled </div> </td> </tr> <tr> <td align="left"><label for="@Zip" class="control-label">Zipcode and city</label></td> <td> <div style="float: left; width: 29%;"><input type="text" class="form-control zip js-req js-zip" id="@Zip" name="@Zip" placeholder='Zipcode' value='@GetValue("UserManagement:User.Zip")' > </div> <div style="float: left; width: 70%; margin-left:1%;"><input type="text" class="form-control city js-req js-city" id="@City" name="@City" placeholder='City' value='@GetValue("UserManagement:User.City")' > </div> <div class="errormessage js-invalid-nofill-fields" style="display:none"> Please fill out all the fields </div> </td> </tr> <tr> <td align="left"><label for="@Country" class="control-label">Country</label></td> <td> <select class="form-control Country js-req js-country" id="@Country" name="@Country" placeholder='Country' value='@GetValue("UserManagement:User.Country")' > @foreach (var country in Dynamicweb.eCommerce.International.Country.getCountries().OrderBy( c => c.CountryText.Name)) { var isSelected = country.Code2 == "GB"; <option value='@country.Code2' selected="@isSelected">@country.CountryText.Name</option> } </select> <div class="errormessage js-invalid-nofill" style="display:none;"> Must be filled </div> </td> </tr> <tr> <td align="left"><label for="@Phone" class="control-label">Phone</label></td> <td><input type="text" class="form-control js-req js-phone" id="@Phone" name="@Phone" placeholder='Phone' value='@GetValue("UserManagement:User.PhoneMobile")' > <div class="errormessage js-invalid-nofill" style="display:none;"> Must be filled </div> </td> </tr> <tr style="display:none"> <input type="hidden" id="@UserName" name="@UserName" value='@GetValue("UserManagement:User.Email")' > <input type="hidden" id="@NewPassword" name="@NewPassword" value="@password" > <input type="hidden" id="@NewPasswordConfirm" name="@NewPasswordConfirm" value="@password" > </tr> <tr> <td align="left"><label class="control-label">Do you represent a company? </label></td> <td><input type="checkbox" name="IsCompany" value="Yes" class="js-show-company-fields"></td> </tr> <tr class="js-company-yes" style="display:none;"> <td align="left"><label for="@Company" class="control-label">Company name</label></td> <td> <input type="text" class="form-control js-company" id="@Company" name="@Company" placeholder='Company name' value='@GetValue("UserManagement:User.Company")' > <div class="errormessage js-invalid-nofill" style="display:none;"> Must be filled </div> </td> </tr> <tr class="js-company-yes" style="display:none;"> <td align="left"><label for="@CVRnr" class="control-label">Company reg no.</label></td> <td> <input type="text" class="form-control js-cvr" id="@CVRnr" name="@CVRnr" placeholder='Company reg no.' value='@GetValue("UserManagement:User.VatRegNumber")'> <div class="errormessage js-invalid-nofill" style="display:none;"> Must be filled </div> </td> </tr> <tr> <td align="left"><label for="@Labelname" class="control-label">Labelname</label></td> <td><input type="text" class="form-control js-req js-name" id="@Labelname" name="@Labelname" placeholder='Labelname' value='@GetValue("UserManagement:User.AccessUser_Labelname")' > <div class="errormessage js-invalid-nofill" style="display:none;"> Must be filled </div> </td> </tr> @{ var services = GetLoop("UserManagement:User.CustomField.AccessUser_Service.Options"); } @if (services.Any()) { <tr> <td align="left"><label for="CustomField.AccessUser_AccessUser_Service" class="control-label">@Translate("Smartpage:UserForm.Service", "Pick service")</label></td> <td> <div class="radio"> @foreach (LoopItem service in services) { <label> <input type="radio" name='@Service' value='@service.GetString("Option.Key")' selected='@service.GetBoolean("Option.IsSelected")' /> @service.GetString("Option.Key") <br /> </label> } </div> </td> </tr> } @{ if(showSelectableGroups.Any()) { <tr> <td valign="top"><label for="memberof" class="control-label">Newsletter signup</label>: </td> <td valign="top"> @foreach (var group in showSelectableGroups) { var groupValue = group.GetValue("UserManagement:User.SelectableGroup.InputName"); var groupName = group.GetString("UserManagement:User.SelectableGroup.Name"); if (groupName.Contains("PRO")) { <div style="display:none;"> <input type="checkbox" id="memberof" name="@groupValue"> </div> } else { <div class="checkbox"> <label> <input type="checkbox" id="memberof" name="@groupValue"> @groupName </label> </div> } } </td> </tr> } } <tr><td></br></td></tr> <tr> <th align="left"><label class="control-label">Check text</label></td> <td><label>@RobotText</label></td> </tr> <tr class="js-robottext-validate"> <td align="left"><label for="RobotTextEntered" class="control-label">Enter check text</label></td> <td><input type="text" class="form-control js-req js-robottext-entered" data-text='@RobotText' id="RobotTextEntered" name="RobotTextEntered" placeholder='Enter check text'> <div class="errormessage js-invalid-nofill" style="display:none;"> Must be filled </div> <div class="errormessage js-invalid-robottext-entered" style="display:none;"> Please enter correct check text </div> </td> </tr> <tr> <td></td> <td align="left"> <input type="submit" id="submitter" class="js-btn-confirm btn btn-info" value='Apply for membership'></td> </tr> </table> @GetValue("UserManagement:User.FormEnd") </div> <script type="text/javascript" src="//code.jquery.com/jquery-1.11.3.min.js"></script> <script src="http://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script> <script src="http://jqueryvalidation.org/files/dist/additional-methods.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("input[name='@Service']").on("change", function(e) { var that = $(e.currentTarget); $("input[name='UserManagement_Form_SelectableGroup_4107']").prop("checked", (that.val() == "PRO")); }); $('.js-show-company-fields').click(function() { if (!$(this).is(':checked')) { $('.js-company-yes').hide(); $(".js-company").removeClass("js-req").removeClass("invalid-field"); $(".js-cvr").removeClass("js-req").removeClass("invalid-field"); //$(".js-company-yes").removeAttr("display"); } else { $(".js-company-yes").show(); $(".js-company").addClass("js-req"); $(".js-cvr").addClass("js-req"); // $('.js-company-yes').style.display = "none"; } }); $(".js-btn-confirm").click(function (e) { e.preventDefault(); $(".js-formcontainer").find("form").submit(); }); $(".js-formcontainer").find("form").submit(function() { $(".js-invalid-nofill-fields").show(); if (validateFields($(".js-formcontainer"))) { $('#@UserName').val($('#@Email').val()); return true; } return false; }); }); function validateFields(parent) { var numFalse = 0; var numZipCity = 0; parent.find(".js-req").each(function () { if($(this).hasClass("js-zip") || $(this).hasClass("js-city") ) { if ($(this).val() == "") { numZipCity++; numFalse++; } if(numZipCity > 0){ $(".js-invalid-nofill-fields").show(); } else { $(".js-invalid-nofill-fields").hide(); } } else { var parentItem = $(this).parent(); if ($(this).val() == "") { if (!$(this).hasClass("invalid-field")) $(this).addClass("invalid-field"); parentItem.find(".js-invalid-nofill").show(); numFalse++; } else { parentItem.find(".js-invalid-nofill").hide(); $(this).removeClass("invalid-field"); if (!parentItem.find(".js-invalid-nofill").hasClass("hide")) parentItem.find(".js-invalid-nofill").addClass("hide"); // If not empty, check specifics if (!validateField($(this))) { if (!$(this).hasClass("invalid-field")) $(this).addClass("invalid-field"); numFalse++; } else { $(this).removeClass("invalid-field"); } } } }); if(numFalse == 0) { return true; } else { return false; } } function validateField(field) { var isNum; var numFalse = 0; var parentItem = $(this).parent(); if (field.hasClass("js-robottext-entered")) { var robotText = $('.js-robottext-entered').data("text"); var enteredItem = $('.js-robottext-entered').val(); if (enteredItem === robotText) { $(".js-invalid-robottext-entered").hide(); } else { $(".js-invalid-robottext-entered").show(); return false; } } if (field.hasClass("js-email")) { var isMail = IsEmail(field.val()); if (!isMail) { $(".js-invalid-email").show(); return false; } else { $(".js-invalid-email").hide(); } } if (field.hasClass("js-password-confirm")) { if (field.val() != $(".js-password").val()) { $(".js-invalid-password-confirm").show(); return false; } else { $(".js-invalid-password-confirm").hide(); } } return true; } function IsEmail(email) { var regex = /^([\w-\.]+)@@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; return regex.test(email); } </script>

Contact us

  • DiGiDi - Digital Distribution a.m.b.a.
  • Gl. Kongevej 11 4., DK-1610, Denmark

  • Phone: +45 27 89 18 14
  • Email: info@digidi.org