-
Posts
33 -
Joined
-
Last visited
-
Days Won
1
eutervogel last won the day on July 18 2023
eutervogel had the most liked content!
Recent Profile Visitors
1,900 profile views
eutervogel's Achievements
Jr. Member (3/6)
32
Reputation
-
Both — the payload is random, the prefix is configurable, and the overall structure is fixed: Format: PREFIX-XXXX-XXXX-XXXX-XXXX — a prefix plus a 16-character payload in dash-separated groups of four. Prefix: configurable per product via the gs_license_key_prefix field (2–16 uppercase letters/digits, no dashes). If left empty it falls back to the module default PGSHOP. Payload: 16 characters drawn from random_bytes() over a confusion-resistant alphabet (ABCDEFGHJKMNPQRSTVWXYZ2345 — no 0/O/I/1/L/U, so hand-typed keys don't get misread), with rejection sampling to avoid modulo bias. That's ~75 bits of entropy. The block layout, separator and alphabet are fixed in code, only the prefix is a per-product knob. If you need a genuinely different scheme, the generator sits behind a LicenseKeyGenerator interface (RandomBytesLicenseKeyGenerator is the default impl) — you can drop in your own without touching the issuance logic. Yes, guaranteed at the database level, not by in-memory bookkeeping: gs_license_keys.license_key carries a UNIQUE index. Issuance inserts the key; if MySQL returns a duplicate-entry error, the service generates a fresh key and retries up to 5 times (LicenseIssuanceService::persistNewKey). This is deliberately a race-safe atomic insert + retry, not a check-then-insert (which would have a TOCTOU gap). At ~75 bits of entropy a real collision is astronomically unlikely, but the guard is there and correct even under concurrent checkouts.
-
A small update on PWGermanShop: I've just finished adding support for digital products and license management. Current features include: Selling physical and digital products together Automatic license key generation after successful payment License key delivery by email Customer license overview in the frontend ("My Account") Device activation tracking with configurable activation limits License validation API for your applications Backend tools for managing and revoking licenses I've also added a demo product so you can try the complete workflow yourself: https://demoshop.mholte.de/shop/focusframe-timer/ After completing a purchase, you'll receive a license key that actually unlocks the demo application, so it's not just a mock-up. Documentation for the licensing module: https://mholte.de/docs/PWGermanShop/#/betreiber/lizenzen?id=lizenzschlüssel-germanshoplicenses Please note: There is currently a bug when using the "Auf Rechnung" payment method. The license generation and email delivery are not triggered, so for testing please use another payment method (for example "Vorkasse" and click "Zahlung erhalten" in the orders overview, that will trigger the flow). Once you've finished testing, please delete your order. Otherwise, your order details, including your email address, may remain visible in the demo shop's backend until the next automatic reset (up to about 6 hours). I'd really appreciate any feedback, especially if you're planning to sell software, plugins, digital downloads, or other licensed products with PWGermanShop.
-
Thank you so much for your kind and thoughtful feedback! It really means a lot, especially coming from someone with your experience in both ProcessWire and professional e-commerce. The main reason I started developing this shop system was exactly because I felt there was a gap in the ProcessWire ecosystem. I also spent some time looking at PWCommerce, but as you said, the documentation made it very difficult to work with. I also ran into issues with commercial rounding quite early on, and even after quite a bit of tinkering I couldn't really get it to a point where I'd feel comfortable using it for the German market. You're absolutely right about the long term challenge. Building the shop is one thing, but keeping it up to date with changing legal requirements, security updates and everything else that comes with e commerce is probably the biggest task. That's definitely something I'm aware of, and I'll do my best to keep the project actively maintained. Development is still moving forward. I actually added customer accounts to the demo shop just a few minutes ago, so it's slowly growing feature by feature. Thanks again for taking the time to write such detailed feedback. Comments like yours are really motivating and reassure me that building this for the ProcessWire community was the right decision.
-
There was an issue with email delivery because the six-hour reset also reverted the sender address in the "Stammdaten" section back to the placeholder. I've fixed it, so emails are being sent correctly again.
-
I'd like to showcase the demo shop for my ProcessWire shop system. The demo lets you explore both the frontend and the administration backend. Feel free to log in, place test orders, and try out the available features. The shop automatically resets to its default state every six hours, so you can't accidentally break anything. If you'd like to receive the email notifications using your real email address, please make sure to delete your order immediately after testing, as your email address will be visible in the backend. Because this shop system is primarily developed for the German market, the demo shop and the documentation are currently available in German only. The "Stammdaten" section and the payment methods cannot be edited in the demo to prevent misuse. Demo: https://demoshop.mholte.de/ I'd be happy to hear your feedback, suggestions, and bug reports.
-
Thanks for your patience. It took me a while to set up a safe demo shop, but it's finally ready. Feel free to log in and place test orders. If you'd like to receive the email notifications using your real email address, please make sure to delete your order immediately after testing, as your email address will be visible in the backend. The demo shop is reset to its default state every six hours. The "Stammdaten" section and the payment methods cannot be edited in the demo to prevent misuse. Please take a look at: https://demoshop.mholte.de/ I'm looking forward to hearing your thoughts and receiving your bug reports.
-
Hello everyone, I have been working on PWGermanShop, a comprehensive shop system built specifically for ProcessWire to address the regulatory and functional requirements of the German market. The system is nearing its final stages, and I am now looking for a small group of testers to help gather real-world feedback before a wider release. Since the ProcessWire forum is international, I am writing this post in English. However, please note that both the system and its documentation are currently only available in German, as the project is tailored to the DACH region. What is PWGermanShop? PWGermanShop is designed to handle the typical workflows and legal requirements of German e-commerce setups within ProcessWire. You can read through the documentation here to see how it works: 👉 https://mholte.de/docs/PWGermanShop/ How to participate in the test: The system is currently not publicly downloadable. I would like to share the installation files individually with interested testers to ensure a structured feedback process. If you are a ProcessWire developer building sites for the German-speaking market and would like to test the system: Please read the documentation to see if it fits your general requirements. Reply to this thread or send me a private message (PM) if you would like to participate. I will then send you the download link and instructions on how to install it. What kind of feedback is helpful? Is the setup and configuration process logical? Does the documentation cover all the steps clearly? Are there any bugs or edge cases you encounter during your tests? Thank you very much for your interest and support. I look forward to your feedback and to collaborating with some of you! Best regards
-
Hi, I'm just wondering how this file sizes can occur. They are all 1920x1200. It's not a very big deal to me, but I can't wrap my head around what's happening here.
-
Why is this ? showing on an empty template file
eutervogel replied to eutervogel's topic in General Support
Yep, I just wrote that and went for a walk with my dog. I was almost 50m away as I realized, that maybe I had misread the checkbox text. And yes, that did the trick. Sorry for my stupidity. -
Why is this ? showing on an empty template file
eutervogel replied to eutervogel's topic in General Support
Which file creates that specific output? -
Why is this ? showing on an empty template file
eutervogel replied to eutervogel's topic in General Support
Thanks for your answer, but there is not a single character in my template file. As I wrote above, I've created a new empty one for testing. The checkboxes are both unchecked too. Strange isn't it?