Jump to content

kongondo

PW-Moderators
  • Posts

    7,487
  • Joined

  • Last visited

  • Days Won

    147

Everything posted by kongondo

  1. Hi @Spinbox, Thanks for the login details. You have a 5 errors that are showing during the Ajax call. These are coming from your templates and func files. I think they are interfering with the response. I'll fix this on your site and test again.
  2. Hi @Spinbox, Please confirm if your ProcessWire is running off a sub-directory. I have tested on a ML site where Dutch is the main language and English the 'other' language and the hook works fine. What language are you searching in? Maybe it doesn't matter but just want to be sure. Thanks.
  3. This is absolutely brilliant @jploch! Well done! I have had similar plans for Padloper for a while now. I even spoke to a few ProcessWire users to get initial thoughts. I don't mean to hijack your thread but would like to discuss this with you on the side, if that's OK. I had never had of Uberspace. I investigated GCP and AWS and had settled on the latter aiming to use a multitenant approach. I'll look into Uberspace. Well done and best of luck with the launch!
  4. Should be. Incidentally, under the hood, the money libraries also use bcmath.
  5. Thanks @alexm, You have no idea how much grief rounding gave me! (https://www.martinfowler.com/eaaCatalog/money.html). I thought I had this nailed down! I did nearly 500K random tests and I thought I had sorted it out! WooCommerce had issues as well, btw. I even looked at HMRC and EU Regulation, e.g. https://www.gov.uk/hmrc-internal-manuals/vat-trader-records/vatrec12030. I had one mind to make this configurable. There are 3-rd party options for handling money but wasn't keen going that route. If bcmath works fine, I'll take that, otherwise might be forced to use Money or Brick Money. Thanks for the code. I'll have a play.
  6. And the 'error' should show on the compare price side; not the price since there is 'nothing wrong' with the price, presumably.
  7. That's what I thought! ?. I think for now I'll make it show the 'error' only if there is a non-zero value in 'compare price' and that value is less than the 'price'. Ideally though, it should be a warning, not an error. Would this work for you? I can still consider a setting in future but this is the easier fix for now ?.
  8. Please note that these and other config settings can be changed anytime. They are not a 'once-then-set-in-stone' settings.
  9. Yes you can ? (I have just tested to confirm). That error is misleading and I need to rethink it. I wanted a $field->warning() but there isn't one (as far as I can tell). $field->error() is misleading since it suggest and error. I'll have a think, perhaps use $session->warning() instead or make it configurable via settings. For now, please ignore the error. Product should save just fine. Will sort ASAP.
  10. Quick demo of the 'custom shop root page' feature. Note: The option 'Hide the parent pages and their children in the page tree' will do just that. The pages will still be visible in the frontend and in the Products Dashboard. The options 'Limited page tree actions and redirect to Padloper dashboards' will display the pages in the page tree with actions that point to the pages in their respective Padloper Dashboards. E.g. 'edit' will edit the page in Padloper. Thanks.
  11. Thanks to all who have reported bugs so far. These are: Side menu icon not showing: I don't have a fix for this yet but a work around. Please go to /your-processwire-admin/shop/general-settings/. Have a look at the settings under User Interface, select your option then save. If you select any with the 'dropdown menu', you will need a couple of module refresh + logout + login. Error: calling get() on null errors in relation to discounts: This will happen in case you don't have discounts feature installed. The errors are now fixed. If you downloaded Padloper before yesterday, please download again, thanks. Version stays at 009. CSS issues: White on white text as mentioned above. These are not related to Padloper but my site. I am working on a fix. Confirmation emails not arriving after you complete your order: These are not related to Padloper but my shop. I am working on a fix on my server, etc. Language page names not getting changed when their titles change: When you edit any Padloper page and change the title (including variants), the names of the pages should also change. I am investigating. Thanks.
  12. Brilliant, thanks! I'll test here.
  13. Forgot to mention; There were a few other new features I forgot to highlight. I have updated the first post. Please see 'frontend' and 'products' sections. Thanks.
  14. Looks like there are some CSS issues on the new site! Some people are seeing white text on white background! Sorry for this. Trying to debug.
  15. Renewals and Resend Download Code are ready! Apologies it too longer than expected. Forms should be straightforward. Any issues, please let me know. Might need to hard reload the site for the new CSS to catch. Thanks!
  16. Hi all, I am turning out to be a liar at this rate! I really should stop talking about 'tomorrow'. I can only apologise. Projects and Padloper 009 kept me very busy the last many months! I wasn't able to do much on MM next. During that time, I realised that a number of underlying concepts of MM had to change. Hence, I started a re-write of MM but the pace was slow due to afore mentioned reasons. Now that Padloper 009 is out of the way, my main coding focus is on MM! I am quite confident that I'll be able to have a release within a month. This will be a late alpha or early beta, but at least something that can be tested. I don't take your patience for granted. I am trying my best not to let you down this time ?. Thanks!
  17. If you have an active subscription and are getting 404s when trying to download, please PM me. I made a slight tweak to the URLs. Sorry.
  18. Not sure where the time went! We got there finally! ?
  19. Hey @Spinbox, That's fine. In Padloper 009 you could also do it like this (saves you making captureOrder hookable; will get overwritten with upgrades unless I make it hookable here as well): <?php namespace ProcessWire; $wire->addHookAfter('PadloperProcessOrder::isSuccessfulPaymentCaptureHook', function (HookEvent $event) { $paymentIntent = $event->arguments('response'); $orderId = $paymentIntent->metadata->reference_id; // ALTERNATIVELY // $options = $event->arguments('options'); // $orderId = $options['expected_order_id']; if ($paymentIntent && $paymentIntent->status === 'succeeded') { $chargeId = $paymentIntent->latest_charge; // Load the order page using the order ID and save the charge ID $orderPage = wire()->pages->get("template=padloper-order, id={$orderId}"); if ($orderPage->id) { $orderPage->of(false); $orderPage->set('stripe_charge_id', $chargeId); $orderPage->save('stripe_charge_id'); } } }); Hope this helps.
  20. Hi @Spinbox, Sorry for late response! There were a number of issues with titles and names and non-active 'other languages' in Padloper < 009. These have now been fixed. I recently tested this on a ML site the TextTagsSelect works fine for variants. Please upgrade to 009 and let me know how it goes. For existing pages, you will have to manually set them active for non-default languages. You wont' have to do this for new Padloper pages that you create. In Padloper 009, when you edit the title of any page, its name will also be amended in line with the new title. Please let me know how it goes. Thanks.
  21. Apologies all! I did not keep my word! A number of things beyond my control happened but now I am back. Shop is open. I will post an update tomorrow about MM Next. Thanks.!
  22. Padloper 009 I am pleased to announce the release of Padloper 009! It has been a minute! I apologise for the delay. Padloper 009 introduces a number of new features, bug fixes (especially in Multilingual sites) and improves overall code efficiency. Credits Before I get into the details, I would like to say massive thanks for all who have contributed to this release in various ways. You have contacted me via the forums, via PM and via email to report bugs, test Padloper and suggest and sponsor new features. In particular, I would like to thank (in no specific order) @Spinbox, @alexm, @joe_g, @ank, @csaggo.com, @Jan Fromm, @Pete, @Sonia Margollé and @kalimati. Whilst I will not name those who contacted me privately, please accept my gratitude for your help. Apologies if I forgot to give anyone a mention! Massive thanks to @ryan for ProcessWire. Padloper 009 is the most battle-tested Padloper yet! It has been tested and developed on high volume sites, sites that require lots of customisations and multilingual sites whose default language is not English. This robust development has helped fix bugs that I would not have been aware of otherwise as well as new ideas and features to improve the API, workflow and GUI of Padloper. Many of the suggested features have made it into this version. A few others are planned for the future. There is a lot to talk about in this version. Below I’ll just give a summary of the changes and where necessary, create separate topics to discuss some of the new features. Although Padloper 009 has undergone thorough testing, there might, inevitably, be some bugs. If you find one, please let me know in the forums under a separate topic. Thanks! Changes Features Home Customisable dashboard. You can render your own dashboard by creating a template partial named ‘padloper-process-render-shop-home.php’ and placing it at ’/site/templates/padloper/backend/padloper-process-render-shop-home.php’. Please see this thread for more details. Orders Customisable single order view. You can render your own dashboard by creating a template partial named ‘padloper-process-render-orders.php’ and placing it at ’/site/templates/padloper/backend/padloper-process-render-orders.php’. Please see this thread for more details. Order status actions: Can be applied manually for order, payment and shipping status. Quick filters e.g. ‘open’, ‘cancelled’, ‘abandoned’, etc. Products Configurable pricing fields. Sales and Normal Price (e..g WooCommerce) vs Price and Compare Price (e.g. Shopify). Please see this topic for more details. Categories can optionally be named ‘Collections’. Configurable via ‘/admin/shop/configure-padloper/’. Bulk clone existing products. Allow duplicate titles for products. Discounts (new) 4 discount types: Orders, products, free shipping and BOGO (Buy One/Get One - unfinished; see below). Can be applied manually or automatically at checkout. Please see this thread for more details. Add/remove via ‘/admin/shop/configure-padloper/’. Part sponsored by Nifty Solutions. Thanks @Pete! Customers and Customer Groups (new) Customer creation and management. Please see this thread for more details. Customer Groups. This feature will be expanded in the future. Please see the above thread for more info. Add/remove via ‘/admin/shop/configure-padloper/’. General Settings Redone interface Add ‘from email’ settings.. Add bank details settings.. Add order ‘least and most’ sales thresholds for orders’ quick filters. Settings for ‘low stock’ and ‘price fields’ for products. Add tab ‘user interface’ with settings for shop navigation (can have side menu and/or dropdown navigation) and search features (can use quick filters and/or advanced filter). Other Backend Quick filters on various dashboards. Custom Dashboards for Home and Orders. More to be added in future. Frontend Custom shop root page. This allows you to move product-related pages and legal pages to live under a frontend-accessible page. Configurable via /admin/shop/configure-padloper/. Please see this topic for more details. For instance, /myshop/products/, /collections/, /products/, etc. This means you can directly access products on the frontend using their real paths/urls instead of using URL segments. This setting can be changed anytime via configuring Padloper at /admin/shop/configure-padloper/. Custom URL segments for checkout out. E.g. instead of /checkout/success/, /checkout/confirmation/, etc., you can have custom, multilingual segments, e.g. /checkout/order-success/, /checkout/tilaus-menestys/, etc. Miscellaneous Various UI improvements. Dashboards tables sorted by title by default. Breaking Changes Template partials for the frontend have been moved from /site/templates/padloper/ to /site/templates/padloper/frontend/. Deprecated ‘Search Feature’ on the home dashboard has been removed. Use ProcessWire in-built search instead. Padloper hooks into it to group padloper related results. PadloperProcessOrder::orderSaved now becomes PadloperProcessOrder::orderSavedHook.The new approach is to have all hooks in one please for easier maintenance and usage. Bug Fixes Please see the bug fixes topic. How to Get It Padloper 009 is available at https://processwireshop.pw/products/padloper/. For those renewing subscriptions, you will have to wait a bit, apologies. I am finalising work on renewal codes. I am hoping this will be ready by tomorrow. Any issues with the (revamped ?) site please let me know ?. Upgrading This is a major upgrade. Lots of code has been moved around. Best way to upgrade files is to empty the contents of the root Padloper folder and upload the contents of the new version there. There are no data model changes affecting existing features but as always, back up your site(s) first! Next Steps In addition to fixing any bugs that show in 009, these are the plans for the next 3-6 months, possibly more, in order of priority. No new features will be introduced until these are completed. Documentation Documentation will cover all topics including installation, backend and frontend use and the API. ‘How to guides’ will consist of short videos with corresponding textual content on a dedicated Padloper site. Discounts Finish work on the Buy One Get One (BOGO) Discount and automatic discounts. Gift Cards Finish work on Gift Cards. Road Map I will talk about this when the ‘next steps’ tasks have been completed. Thanks!
  23. This is a PLACEHOLDER for details about the new configurable product price fields feature in Padloper 009. More information to follow soon.
  24. This is a PLACEHOLDER for details about the new custom shop root page feature in Padloper 009. More information to follow soon.
  25. Customers and Customer Groups are new features in Padloper 009. Customers You can add/remove this optional feature at any time via ‘/admin/shop/configure-padloper/’. This feature does not require the 'Customer Groups' feature. Please note that there is no direct relationship between a 'shop customer' and an 'order customer'. This decoupling allows for a better delineation between guest and non-guest checkouts. The field for storing order customers is separate from the field for storing shop customers. The former is a 'permanent' record of a transaction (an order) in your shop. There is no direct link between a shop customer and a ProcessWire user, until you link them. Padloper allows you to do this easily. You can add customers to your shop either via the API or the admin. Note: When creating a customer, you have the option to create a (ProcessWire) user account for them as well. You can also do this later when editing the customer. Padloper does not handle the customer registration for you. This is because some devs prefer to send customer a link to register whilst others prefer emailing a temporary password to the customer. Padloper allows you to handle the registration and pass the details back to it to email to the customer. Padloper passes the new customer details, new user details and the temporary password set to the new user to the partial template 'customer-registration-request-email-content-html.php'. Devs can then use that information to handle customer registration. When you add a customer, they get the role 'padloper-customer'. A customer linked to a ProcessWire user is a 'registered customer'. In this case, the $customer->userID equals $user->id and $customer->email is $user->email. Currently, in case you had existing users in your shop that were customers prior to Padloper 009, Padloper does not currently link those users to the customers. You can do this via the API. If you change a 'linked' user's email, the email of the corresponding customer will also be changed to keep them in sync. The same thing happens if you edit the email of a linked (registered) customer; the corresponding user's email will also be amended. If you delete a ProcessWire user linked to a Padloper customer, the customer will be delinked, i.e. will no longer be a registered customer and $customer->userID will be 0. If you delete a registered Padloper customer, the corresponding ProcessWire user will also be deleted. It is possible to email a customer directly from the admin. A customer can have multiple addresses. These can be of types: Primary Shipping Shipping Primary Billing Billing A customer can only have one Primary Shipping and one Primary Billing address. The 'customer view' page allows you to see the details of the last 10 orders of the customer and the total of all their orders to date. With the customers feature, you can pre-populate address details of logged-in customers for a better checkout experience. You can also use this feature to build customer dashboards, address books, etc. as @alexm points out here. Currently, there is no dedicated API to retrieve, amend, etc. a customer. This is planned. For now, you can get a customer as follows: <?php namespace ProcessWire; $email = "mario@blaze.br"; $customer = $padloper->get("template=customer, customer.email={$email}"); if(!$customer instanceof NullPage){ // CUSTOMER FOUND /** @var WireData $customerBasics */ $customerBasics = $customer->padloper_customer; /** @var WireArray $customerAddresses */ $customerAddresses = $customer->padloper_customer_addresses; bd($customer, __METHOD__ . ': $customer - at line #' . __LINE__); bd($customerBasics, __METHOD__ . ': $customerBasics - at line #' . __LINE__); bdb($customerAddresses, __METHOD__ . ': $customerAddresses - at line #' . __LINE__); } Customer Groups You can add/remove this optional feature at any time via ‘/admin/shop/configure-padloper/’. This feature requires the 'Customers' feature. The Customer Groups feature allows you to segment your customers using certain criteria. The segmentation allows you to target specific customers for various purposes including marketing, loyalty services, discounts, statistical analysis, bulk emailing, etc. You will need to implement such actions per your needs, e.g. via an addon, etc. A customer can belong to more than one Customer Group. You can create unlimited Customer Groups. Currently, you need to manually create Customer Groups and add them to Customers. However, in future, you will be able to: Use a GUI query builder to create a customer group then apply it to matching customers. For instance, a Customer Group named 'Europe High' with the criteria "order > 500, country = Italy|Switzerland" Automatically add a Customer to a Customer Group if they meet the criteria. E.g., if a customer places an order and the customer's order totals becomes greater than >= 500 and the customer country is Italy or Switzerland, Padloper will automatically add them to the above 'Europe High' Customer Group. Screenshots
×
×
  • Create New...