Jump to content
thirty bees forum

datakick

Administrators
  • Posts

    2,902
  • Joined

  • Last visited

  • Days Won

    436

Everything posted by datakick

  1. This looks like a bug in the module.I'll check and try to come up with a fix
  2. Thank you. I've picked your changes and released new version of module.
  3. Works (somewhat) properly for me, I've just tested it with homefeatures and blockbestsales modules. The logic for product availability is complicated. Every product can belong to multiple categories. Customer can belong to multiple groups. To be order-able, product must be associated with at least one category that is associated with at least one customer group
  4. Nice one, this should be part of the module. You can create pull request here, and we'll merge it: https://github.com/thirtybees/mailalerts
  5. That's great, I love that the collectlogs module help fixing bugs in third party modules. The prestabay module probably pass $product->link_rewrite directly to Link::getImageLink method. Depending on mode the $product object was instantiated, this property can either contain text, or array of texts (one for each language). I guess in this case it's the later. This would result in image url like https://domain.com/1-Niara_home/array.jpg instead of expected https://domain.com/1-Niara_home/product-link-rewrite.jpg It is not a big deal, because both urls are valid. But the first url is ugly, wrong, and not-so-much SEO friendly.
  6. near miss. It's in file /themes/{{theme}}/product-list.tpl How to change it depends on theme -- every theme can implement this differently. Some paid themes can have this configurable, some not. In default theme (niara, community-theme-default) this is not configurable. Number of columns depends on the class used for individual product block -- smarty variable product_block_size_class. There is already some logic that switches between different number of columns depending on page name: https://github.com/thirtybees/niara/blob/d469fcb47b589783deebe847b77bc8d1c0a1d242/product-list.tpl#L3-L6
  7. Congrats, you have discovered a bug 🙂 This will be fixed in next release. Meanwhile, you can edit file modules/datakick/engine/prestashop/functions/combination-attribute-value.php and change lines 97 and 88 from AND comb.id_product_attribute = ' . (int)$combinationId . ' AND a.id_attribute_group = ' . (int)$attribute . ' to AND comb.id_product_attribute = ' . $combinationId . ' AND a.id_attribute_group = ' . $attribute . ' With the fix in place, you can extract any attribute value, if you know attribute group id. For example, if I have these attributes groups: I can create list of combination, and use combination id + constant 3 to extract color from combination: combinationAttributeValue(combinations.id, 3)
  8. There is combinationAttributeValue function: https://www.getdatakick.com/function/combination-attribute-value/
  9. You can edit file psonesixmigrator/classes/ConfigurationTest.php and change line 322 to true. https://github.com/thirtybees/psonesixmigrator/blob/bcc9d1d12fb5e47b6a613a6ecebdf9b6fed1ab05/classes/ConfigurationTest.php#L322 public static function testFopen() { return true; }
  10. Yes, that is the problem. You have (for some reason) set your store to use PHP Encryption, but no encryption key is generated. No idea how this happened. Because no encryption key exists, thirty bees will raise the first warning: "PHP Encryption can't be used because _PHP_ENCRYPTION_KEY_ constant is not defined." And fallback to Blowfish encryption. Blowfish encryption is deprecated, and raises the second warning. The fix is very simple. Go to Performance tab switch encryption to Blowfish. Save switch encryption to PHP Encryption Save That's it. When you change encryption from Blowfish to PHP Encryption, system will generate new encryption key if none exists.
  11. Can you describe a use case for this? I don't think this is possible right now. We would have to extend Cart Rules and add new type of restriction. This is not related to loyalty points at all.
  12. I've just pushed this to bleeding edge. Your body tag will now have class depending on selected context, for example mulstistore-context-all, multistore-context-group-1 or multistore-context-shop-2 You can add custom css into <admin_dir>/themes/default/css/overrides.css body.multistore-context-shop-3 .bootstrap #header_infos { background-color: lightgreen; }
  13. That makes sense. Thanks for investigating, I've pushed the fix to bleeding edge.
  14. {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if} replace with simple {$product.price} On a related note -- I strongly recommend to remove all rich snippets markup metadata from this file. Imagine you have product page that shows 9 related products in the footer. When google parses this page, it sees that this page contains information about 10 products. Which is not true - the page contains one product, and 9 links to related products. Similarly, when google index your category page, it sees that this is page that contains 12 products. Again, that's not true. It is category listing page with links to 12 products. Having product metadata in product miniature blocks creates unnecessary noise which can confuse search engines. Just get rid of them, and google will be able to better index your pages.
  15. I don't have this issue. Do you have some reprosteps?
  16. "Image Position" is considered only if you don't use "Image URLs (x,y,z...)" Field. Your csv mapping can contain either "Image URLs (x,y,z...)" field - then these images will be downloaded and used. Or your mapping can contain "Image Position" / "Choose among product images by position (1,2,3...)" -- in which case combination will be assigned existing product images.
  17. Yes, data import is not per store, but for all stores.
  18. datakick

    Upgrading

    Hi Andy, you can buy support time on our website. We will be happy to help upgrade your store. Are you talking about core update only, or do you need update of PHP as well?
  19. Looks like PHP8 issue. Try to edit file /classes/stock/Warehouse.php line 665, and change $res = call_user_func_array('array_intersect', $list); to $res = call_user_func_array('array_intersect', array_values($list)); Let me know if that helped -- if so, I will add this to bleeding edge.
  20. build-in stats in thirty bees does not process UTM tags. Those stats are based on webserver requests only, very low level. If you want to track conversion, funnels, etc, then you really need to use tool like matomo or ganalytics.
  21. you can use Matomo (piwik), its self hosted ganalytics alternative. There is native tb module for it.
  22. Hi everyone, I've releaesd new module MailQueue. This module uses latest thirty bees Mail Transport functionality, so currently it can be used in bleeding edge / 1.5.0 only. Link to the module: https://store.getdatakick.com/en/modules/mail-queue As the module name suggest, the main functionality of this module is to defer sending emails. Instead of trying to deliver email as part of business process, module will serialize and save it to storage (filesystem, redis, db). Cron or CLI queue processor (that runs in separate thread) will pick these queued emails and attempt delivery later. You can create multiple outgoing queues, and create conditions to determine which emails should go to which queue. For example, queue for 'contact' form messages. Queue for shop admin recipients. Queue for emails that contains words 'binance' or 'viagra'. Queue for transaction emails, queue for marketing emails,... Each queue can have different settings, of course (it wouldn't make it much sense otherwise) throttling -- how many emails can be sent per hour delay -- initial delay to send email failed delivery retry settings manual approval, etc retention policy -- how long do you want to keep email in the queue / after send sending channel -- every queue can be send using different email transport. You can send transaction and marketing emails through differnt SMTP servers Some benefits of this system original process is not blocked by email sending. Slow SMTP servers can block order creation process even for a few seconds. process is not interrupted by SMTP errors - if SMTP server was down, exception could be raised, and this could block process to be finalized (order not completed) this supports sending a large amount of emails easily -- enqueueing emails is fast, so you can generate a lot of emails during one request - useful for sending marketing emails to a lot of recipients retry option - cron/cli can retry deliver email later if SMTP error occurs you can view email content before it is sent, and even after it was sent (depending on queue retention policy) delaying some emails (for example you can delay review request email by 3 days) pause queue in case of some attack email priority different sending channels I'm currently looking for volunteers that would like to test this module, before I release it officially. And of course, if you have some ideas or questions, let me know. I'd love to hear them all.
  23. Review request link looks like this https://domain.com/en/module/revws/EmailAction?id=<ID>&action=<ACTION>&product-id=2&rating=5&secret=<SECRET> When the link is generated and send by email, parameter <SECRET> is calculated as md5("<ID><ACTION><SALT>") where <SALT> is secret key stored in database, not visible to customer, When customer click on email, EmailAction controller once again calculates the secret using <ID>, <ACTION>, and then matches it with provided <SECRET> parameter. If the calculated hash value is different, link is rejected, and permission denied is thrown. This can happen only if one of the following is true: parameter <ID> in url has been changed parameter <ACTION> in url has been changed parameter <SECRET> in url has been changed secret <SALT> was changed (in the database -- for example by resetting module)
×
×
  • Create New...