Jump to content
thirty bees forum

datakick

Administrators
  • Posts

    2,895
  • Joined

  • Last visited

  • Days Won

    434

Everything posted by datakick

  1. datakick

    Cache 'warmer'

    are you using FPC? If not, than there is nothing to warm...
  2. you can't download github repository and use it as a module. Github contains source code that needs to be build.
  3. I've just added new feature to my conseqs module that can handle this use case https://store.getdatakick.com/en/blog/conseqs-attach-file-to-outgoing-emails
  4. New release: 0.2.0 I'm happy to announce new version of this module. This version brings one important feature Ability to impact execution path Until now, conseqs rules were executed in parallel to the code that triggered it. It run in isolation and it could not impact execution path of the code that triggered it. Let's take Before email is sent trigger as an example. Regardless of what action was executed, the email was always sent, unchanged. We were able to create rule to log information about email, but it wasn't possible to create action to prevent email from being sent, or to modify email subject... That's not true anymore. This new version of module supports these kind of actions. New actions: Change Order Status you can create rules and change order status example use case is to automatically cancel old, unpaid orders Email: prevent sending email this action will block email from being sent for example, you can drop contact form notification emails or you can ignore emails to disposable addresses (for example mailinator) Email: change subject you can use this action to compose custom email subject ideal for email personalisation Email: add BCC recipient you can add new recipient to BCC great way to send yourself copy of all emails sent from your store Email: attach file you can dynamically attach file(s) to your emails for example, you can attach product manual to Order Confirmation email Email: change recipient you can use this action to change email recipient (to email address) Email: change email template this action will allow you to use different email template to render email You can use this feature to have different templates for different customer groups, for example I hope you will find these new features useful. If you have any feature requests or suggestions, please let me know. At the moment, I have the last big feature planned for this module -- Custom variables (as explained in previous post)
  5. This should be already fixed in upcoming version / bleeding edge: https://github.com/thirtybees/thirtybees/commit/45fe39bf0b82aedf0e570263447c8fb7cc306a58
  6. As I wrote before, I will add new variable 'Order: Products' that will contain html <table>...</table> with products in order. Similarly for cart object. That should be enough to address this use case. Anyway, I do plan to add another feature that will allow you to define your own variables. It will be another (optional) step between Trigger and Conditions. In here, you will be able to create new variables, and used them later in Conditions and Actions. You will be able to define new variables using one of these ways: expression to calculate new variable value based on old values (provided by Trigger) {Custom:MyPrice} = {Order.Total} * 1.2 {Custom:Subject} = 'Hello ' + {Customer.First name} + ' ' + {Customer.Last name} ... this is very similar to what my DataKick module supports now fetch some data from database using SQL query, like this: SELECT COUNT(1) FROM tb_order WHERE id_customer = {Order:Customer:ID} That should give great flexibility to create (almost) any automation that comes to mind
  7. Conseqs actually parses email template, finds all {placeholders}, and then requires you to provide values for them. Now it depends on what data are available -- every kind of trigger provides different set of data you can use. For example, trigger "Order was updated" give you complete Order object, so you can it's data bind to email placeholders. But if you use trigger "Page view: Product", you don't have any order to work with. This trigger gives you Product object displayed on current page. Other thing is that email templates are very dumb. We can't use any loops, for cycles, or even conditional statements in them. They are not smarty templates, unfortunately. So it's very hard to display dynamic content, like products in order. Thirtybees can do this only by using nasty hack -- it pregenerate html table with ordered products and pass it to email template in as one variable. I guess I could do something similar in conseqs (when dealing with Order, or Cart object) Regarding sql queries -- what do you mean? Could you please explain more?
  8. There is no automatic conversion of points to coupon during checkout. Customer needs to do this manually -- both in native loyalty module, and in krona module. See screenshot from native loyalty module -- when I placed order 316, points from order 315 were not used. In order to use points, customer needs to manually click on Transform button.
  9. Loyalty module creates database entry when order is placed, and these entries expires separately. That means, if customer places two orders 2019-01-01 - 10 points 2019-01-10 - 20 points If expiration period is 20 days, then on 2019-01-15 the total points available is 30. But on 2019-01-30, the first entry expired, and total available points is just 20. Krona, if I'm not mistaken, doesn't do think like that. It keeps single record with current total amount. So, it's not easily possible to expire individual entries. But I believe it's nonsense, anyway. I would suggest that every purchase will re-start expiration. This way, all what's needed is new column in player table.
  10. I believe Krona doesn't have loyalty points expiration feature
  11. datakick

    carrier errors

    I can also confirm that the fix works. I've picked this change into the next tb version https://github.com/thirtybees/thirtybees/commit/51ebfa051ebd330f0d35a873679ca28ff818e2d2
  12. I believe krona module supports this already. When you import players for the first time, you can use option 'Import Core Loyalty Points':
  13. New release 0.1.0 I'm pushing this module towards the final shape. This new version is almost complete solution, from framework perspective. What's new: 1) Integration with @wakabayashi amazing krona module. You can now use any conseqs trigger to award loyalty points to your customer. For example, give extra loyalty points if bank payment is done within 5 days or placing order. Or anything else, the possibilities are unlimited 2) Log errors -- shit happens, so we need to count with that. The last thing we want is conseq rule to cause 500 error page. From now on this is (almost) impossible. If any error happens during rule execution, it will NOT affect user in any way. Instead, error will be silently log, and page will render. You will see error log page in your back office conseq module page: 3) Measures - you can now measure some interesting values in your database, and react when this value changes over time. This is the most important functionality in this release. Until now, conseqs could react to real-time events only. We could create rule that was executed when order is placed, or when customer visits some page. We needed some event to perform the action. With measures, we don't need to anymore. It depends on cron task to periodically re-calculate some values. If the current value is different than measured value from the last run, we can trigger any action. This opens doors to many possibilities, and many new types of triggers. For example, this version contains trigger to detect and react to loyalty points expiration (pinging @30knees) I know this sounds way too technical, so let me try to explain this by example: Example: Assignment: We want customer to be assigned to VIP group if (and only if) he purchased over $300 in the last 90 days Solution: (you can download the complete solution vip_group_example.json, and import it to your conseqs module) 1) we will create measure that will calculate amount purchased in last 90 days by customer. This measure will be based on following sql, which returns id customer, and purchased amount in the last 90 days: SELECT `id_customer`, SUM(`total_paid_real` / `conversion_rate`) AS `total` FROM `tb_orders` AS `o` WHERE `o`.`valid` = 1 AND `o`.`date_add` > DATE_SUB(NOW(), INTERVAL 90 DAY) GROUP BY `id_customer` 2) we will create new rule to assign customer to VIP group if measure value goes over threshold of $300 trigger = Measure Value Changed add 2 conditions: "Measure: Old value" < 300 "Measure: New value" >= 300 action = Assign customer to group, bind values "Customer ID" bind to "Measure: Customer: ID" "Group" set to constant value of "VIP" 3) similarly, we will create new rule to assign customer back to Customer group, if measure value goes below $300 trigger = Measure Value Changed add 2 conditions: "Measure: Old value" >= 300 "Measure: New value" < 300 action = Assign customer to group, bind values "Customer ID" bind to "Measure: Customer: ID" "Group" set to constant value of "Customer" And we are done. Conseqs module will periodically recalculate measure, and executes one of these rules if necesseary. The same process in screenshots: 1) create measure: 2) create rule
  14. I wonder - how did you perform the upgrade? Manually, or did you use coreupdater? From what version? Because I can't understand how you've managed to get to this particular error. For advdebug to not be initialized, you would need to delete or modify config/defines_custom.inc.php file. And neither coreupder or tbupder does this (I believe), and why would you do it manually?
  15. This exception is encrypted using your server's private key. Only you can decrypt it. Turn on debug mode to see the error message on the screen
  16. There's some error during bootstrap. It might not be related to Configuration class at all, you need to figure out root cause first. Start by changing line 85 in /config/config.inc.php to d([ $e->getMessage(), $e->getCode(), $e->getTrace(), $e->getFile(), $e->getLine() ]); That will tell you more
  17. Yes, revws comes with Yotpo import functinality. In fact, it's also in free version of the module. It looks like I should make it more prominent somehow, as people have hard time finding it. Maybe I'll add import button to the review page if there are no reviews -- right after installation. That could do the trick.
  18. These kind of triggers are in the backlog, but it's not immediate task. The problem here is that there is no real-time event conseqs could subscribe and react to. In this case, this trigger action is defined by state that changes over time. That means that some cron needs to run, and periodically check if the conditions are met. What's even more complicated is the fact that conditions can hold for a long time. We definitely don't want to send email reminder to use loyalty points every time cron task executes. That means some database storage in which we will hold previous value of this measurement, and use it to react on changes only. Altogether, it's very complicated. But I agree that this extends the use cases significantly, so I'll definitely implement this in near future.
  19. I just copied and pasted text you entered here
  20. @movieseals you are using some sort of adblocker, aren't you? My site uses gdpr popup, and some ad-blocker extensions can incorrectly categorize it as an ad, and hide it. This is how it should look 🙂 Anyway, to learn more / download this module, you can go to my store
  21. I've just tested this, and it works correctly: This is probably related to your theme / css / fonts you are using
  22. I've just released new version 0.0.3, with following changes: Features: Ability to register third-party triggers and actions -- Other modules can now register their own triggers and actions. I will soon release new version of my other modules (datakick, revws, pricealert) that will add integrations with conseqs. That will allow to trigger action when new review is created, generate xml/csv file when something happens, etc. Import and export rules -- you can now export your rules and import them back, or to another server. If you have some interesting rules, you can now share them with the community! New action - log into text file,... you can log anything that happens in your store. For example, you can keep track of order state changes. Or you can generate list of orders with VAT number in separate file, etc. New action: Assign customer to group - you can, for example, automatically assign your customers to B2B group if they enter VAT number New binding mode - Interpolation -- in previous version, you could bind action parameters to either constant, or value provided by trigger. Newly, you can combine multiple values using interpolation binding. During runtime, placeholders will be replaced by actual values. You can use this, for example, to personalize subject email: Improvements: Added more common context variables that you can use for binding (date, time, current url, shop url, shop email,...) Caching object models detection to improve performance Bugfixes fix mobile issues I'm open for any ideas for future enhancements!
  23. Please don't, that's not how you should customize thirtybees (or prestashop). Changing core files is the worst you can do, it will lock you to the current version, with very limited options to upgrade. The best way to do this is to implement your own module. If that's too hard for you, at least do this using override. You should never change core files. In other words, Advanced Parameters > Configuration Information > LIST OF CHANGED FILES should be empty. If it's not, you will hate yourself soon enough.
  24. There is nothing different here from prestashop 16. You will need to do the same changes on both platforms.
×
×
  • Create New...