Jump to content
thirty bees forum

Pedalman

Members
  • Posts

    422
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Pedalman

  1. Well, I am interested in learning new stuff and I want to improve my daily workflow constantly. So, instead of dealing any further with XAMPP under Windows I would like to know which is the proper way to go.

    I use since years virtual machines and have stick with VirtualBox. As far as I good dig Bitnami for example hosts ready to go images for virtual machines. Especially interesting might be here the bitnami-lampstack-7.3.9-0-linux-debian-9-x86_64.ova .

    I also have a nas running with XPenology and some docker containers. Is this a good idea for testing new modules and functions in TB or too complicated and less user friendly than a virtual machine. This I could take anywhere (Mac, Linus, 'Win) and blow it up with software i usually use when doing stuff on my TB install.

  2. I had always thought that a proper pdf template for slips would do the trick. I had to edit my pdf templates during Prestashop times and migrated them to TB two years ago.

    Anyway, this is not how it should be done and the core system should work flawless in this case. So, I really vote for a proper guide how to use these (old) functions a)RMA a) partial refund (that can also fully refund^^) with the relates order statuses and possible emails going out to customer with nice screenshots for dumb merchants as me.

    • Like 1
  3. I need to create 6500 chars long order message.

    I tried to override ordermessage with an increased max allowed chars but I had to learn that I can only override functions and no definitions.

    Can you help me here?

      */
        public static $definition = [
            'table'     => 'order_message',
            'primary'   => 'id_order_message',
            'multilang' => true,
            'fields'    => [
                'date_add' => ['type' => self::TYPE_DATE,                   'validate' => 'isDate'                                           ],
                'name'     => ['type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 128 ],
                'message'  => ['type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isMessage',     'required' => true, 'size' => 6500],
            ],
        ];

     

  4. Hello

    since I am lazy and since I am also looking for the best way to optimize my off line seo I thought about a way to combine shor and long description of products.

    For compatiblity reasons both database entries should still be used but in a template it could be solved differently. Moreover via module's like Datakick's that also integrate into backoffice product edit form it might be possbile to annex those fields and graft on them into one form. So I could happily enter one! product description like it is naturally to my writing style and thinking about a product and the template could split the description via js in order to satisfy customers used way to scan a product page and seo as google feed etc. modules that derive data from both or either db field could be used the usual way.

    In short, I stumbled about this online shop that shows it:

    https://www.louis.de/artikel/packsack-vintage/10027813?filter_article_number=10027813&list=cc66f11b0cf530dc3a73743738346e6e#description

     

    What do you think about it and is this doable via module?

  5. And now since I know that Petr has an adress in L.A. 😊 while doing tests I can tell you that our orders for Sep. and Oct. increased three times while the numer of open carts decreased by two times in comparission to last year.

    I am confident that this is mainly due to Petr's CHEX module.

    Thank you to all who tested and for Datakick's constant development of his modules.

    • Like 2
  6. I am going to run my shop now with CHEX and am very excited about how things go.

    At the moment I am only missing an option to set the CHEX UI apart from the then "background" front-end of the shop. In our case we would certainly benefit if the normal front-end of our shop would get an opaque layer since it does visually distract the customer from the CHEX UI and its forms. For example if you scroll down a bit in CHEX on a PC you will see the footer area of the front-end and it distracts...

  7. Hello I am still missing a tutorial how to use the core updater module.

     

    I am running now stable Thirtybees V1.1.0 and I understand that bleeding edge version refers to the version that can be testest and might improve things. But might also introduce new issues. So it is reflecting latest developing step but is meant for testing. But what are the 'new' versions called "issue-..." ?

    Are they meant to be applied by merchants that prefer to run the stable version? So, they are patches we should install? If so, I guess we start with lowest number?

  8. Hello

    I did some testing today an I think there might be a bug or the image settings in backoffice need more explaining. Everybody seriously into selling products online needs high quality images that are at the same time not to big in size...

     

    I got some product images from my supplier. I do not know if these are already compressed but judging from size I say no.

    Original jpg is 514K

    Lossless compression of the same: 412K

    Lossy compression (85-90% Qual.) of original: 65K

     

    Settings in Thirtybees backoffice for images are:

    Use PNG only if there is a PNG 🙂

    JPEG Qual: 100 !!

    PNG Qual: 0

    I use this settings since I like to compress files my own with my own software (Riot Image compression tool and FileOptimizer).

     

    Then I uploaded images via backoffice and found that the source file, e.g. 3766.jpg, remains untouched as far I can say. Then this one is resized due to image settings in backoffice (theme).

    My problem is I do not understand why the resulting images 3766-home_default.jpg,  3766-home_default2x.jpg, 3766-large_default.jpg, 3766-large_default2x.jpg are always of the same size?

    I mean the lossy source variant is 8 times smaller.

    I can testify that there is small difference for bigger images like 3766-thickbox_default.jpg but not worth to mention.

     

    So, either the settings for images compression in backoffice are not working or there is a functionality/process I do not get. At the moment it looks to me that it hardly makes no sense to compress and optimize files before I upload them (also since I use Webp on the frontend but this need better sources else quality gets blurry).

     

    Another point I noticed. If you delete product images from backoffice mostly all 2x images and some other remain on the host in the folder structure /img/p/...

  9. On 8/10/2019 at 11:51 PM, Purity said:

    Looks awesome.
    Has anybody upgraded on warehouse theme?
    I am wondering about compatibility.

    I have and found no issues (except entering custom css in Theme Editor of Warehouse goes without 'formatting' but it is no issue at all).

    All is working great and I am super happy.

     

    PS:

    Nevertheless I will buy Panda since it is superbly supported by Johnny and I like to try new stuff 🙂 and also the same with Niara and a nice page builder I am still looking for.

  10. I am in a hurry but I think the following information might be relevant. It is about the way how passwords are sent via email. Might be that Thirtybees handles this now different than Presta did once but I do not know. I use this Module form Saxtec :

    "https://www.youtube.com/watch?v=FiDsiwDQzLM

    https://addons.prestashop.com/de/sicherheit-brechtigungen/31295-rechtssicheres-kundenkennwort.html

  11. Each time I enter something into html/css forms unkown html code is added!

    I have this issues for at least a month and I have no clue where it comes from. This means it is not related to the great Thirtybees V1.1.0 since my shop was already on the branch up to git commits dating to 18th January 2018.

    For a long time I thought this was a problem with latest changes to TB and Warehouse theme from IQUIT since I noticed it when I entered my custom CSS code into the relating form. Now I noticed to my horror that each time I edited a product, category or ... this code has been added.

    Since I do most stuff in the module StoreCommander I thought that it is a problem between SC and TB but after I digged the sweeping amount of this code I had already in my 'frontend' data I did a test. I created a new product in Thirtybees BO and went to the form description.

    It was empty as expected but then I hit the 'css code' button in tinymce? and saw the code already there?! I googled it and found that Wordpress users had the same problem and found this snipped already two years ago 😞

    <p></p>
    <div id="ir-ext-ui" style="color: #000000; font-size: 16px; line-height: 16px; background-color: #f7f7f7; border: 1px solid #999999; border-radius: 1px; bottom: 1px; left: 1px;">
    <div class="ir-ext-dimensions"><span class="ir-ext-rendered" title="Rendered image dimensions (after any scaling/resizing has been applied)"> <span data-ir-ext-width=""></span>x<span data-ir-ext-height=""></span> </span> <span class="ir-ext-natural" title="Natural image dimensions (without applying any scaling/resizing)"> (<span data-ir-ext-width=""></span>x<span data-ir-ext-height=""></span>) </span></div>
    <div class="ir-ext-filesize"><span data-ir-ext-value=""></span> <span data-ir-ext-unit=""></span></div>
    </div>

    How can I get rid of that and be sure my shop isn't starting to grow an autonomouse life?

  12. Hello

    If I remember a year or so ago Prestashop and Thirtybees had some problems with passwords. Part of the solution was to move a table or all to utf8mb4. Anyhow should my DB's charset be 'upgraded?:

     

    Today I wanted to have a closer look at the superb Thirtybees module PRESTOOLS and I got the warning:

    Char set is 'utf8' instead of 'utf8mb4'.Collation is 'utf8_general_ci' instead of 'utf8mb4_unicode_ci'.

    logo1.png
  13. I am having issue with latest V3.40 Mollie payment module. They changed stepped from 3.35 to 3.4 and the new version can no more send order confirmation to Thirtybees 1.1.

    I just reinstalled V3.35 and orders are coming in.

    No orders/transfers are being booked in TB anymore. Very annoying since over the weekend some dozend oders have been booked on Mollies side but not in our orders section 😞

    Since Mollie still supports PS1.6 their might be a conflict between Mollie V3.4 and TB1.1. It would be very great and helpful if someone could look into this since I supect that the Mollie support won't be interested to do so.

    Quote

    Compatible with PrestaShop:

    1.5.x.x
    1.6.x.x
    1.7.0.x - 1.7.6.x
    Compatible with PHP:

    5.3.29 - 7.3.x
    the JSON and cURL extension are required
    Changes:

    Settings splitted to General settings and advanced settings tabs.
    Added apple pay method.
    Payment API no longer needs billing and shipping addresses.
    Updated FR translations.
    Fixed statuses in back-office order page.
    Added backorder statuses for orders with out of stock products.
    Fixed issue when ordering without taxes.
    Moved Html code out of PHP classes.
    Changed namespace prefix when calling vendor functions.

    PS: There seems to a new person in charge for the repo on GIT now.

  14. I am having issue now since I updated to TB 1.1. latest with Mollie. No orders/transfers are being booked in TB anymore. Very annoying since over the weekend some dozend oders have been booked on Mollies side but not in our orders section 😞

    Moreover, I updaed with TB Mollie too. From 3.35 to V3.4. So what triggers the problem I do not know. Very annoying 😕

  15. Hello

    I could get it working again after totally deleting module's folder and also! /img/belvg_stickerspro. Eventually I could install it as new module and stickers appeared again. I want to add that resetting and normal deinstall did not work. So, all is fine at the moment.

    Thank you

  16. Hello

    I do not know whether there is a difference between PS1.6 and TB's image controller but my BELVG Sticker PRO module fails to create my "sticker badges" on product thumb.

    Here is code of two admin controller overrides it needs:

    AdminImportController.php

    <?php
    
    class AdminImportController extends AdminImportControllerCore
    {
        public function __construct()
        {
            parent::__construct();
    
            if (Tools::getValue('entity') == $this->entities[$this->l('Products')]) {
                $this->available_fields['belvg_stickerspro'] =  array('label' => $this->l('Belvg StickersPro'));
            }
        }
    
        
        public function productImport()
        {
            parent::productImport();
    
            $this->receiveTab();
            $handle = $this->openCsvFile();
            for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, $this->separator); $current_line++)
            {
                if (Tools::getValue('convert')) {
                    $line = $this->utf8EncodeArray($line);
                }
    
                $info = AdminImportController::getMaskedRow($line);
    
                if (Tools::getValue('forceIDs') && isset($info['id']) && (int)$info['id']) {
                    $product = new Product((int)$info['id']);
                } elseif (Tools::getValue('match_ref') && array_key_exists('reference', $info)) {
                    $datas = Db::getInstance()->getRow('
                                SELECT p.`id_product`
                                FROM `'._DB_PREFIX_.'product` p
                                '.Shop::addSqlAssociation('product', 'p').'
                                WHERE p.`reference` = "'.pSQL($info['reference']).'"
                            ');
                    if (isset($datas['id_product']) && $datas['id_product']) {
                        $product = new Product((int)$datas['id_product']);
                    } else {
                        $product = new Product();
                    }
                } elseif (array_key_exists('id', $info) && (int)$info['id'] && Product::existsInDatabase((int)$info['id'], 'product')) {
                    $product = new Product((int)$info['id']);
                } else {
                    //$product = new Product();
                    continue;
                }
    
                //Belvg StickersPro logic
                $belvg_stickerspro_module = Module::getInstanceByName('belvg_stickerspro');
                if (is_object($belvg_stickerspro_module) && $belvg_stickerspro_module->id) {
                    $stickers = explode($this->multiple_value_separator, $info['belvg_stickerspro']);
                    if (count($stickers)) {
                        $ids_stickers = array();
                        foreach ($stickers as $sticker) {
                            if ($sticker) {
                                $ids_stickers[$sticker] = 1;
                            }
                        }
    
                        if (count($ids_stickers)) {
                            $sticker_flag = TRUE;
                            $sticker_flag &= BelvgStickersProProduct::deleteDataForProduct((int)$product->id, $ids_stickers, Context::getContext()->shop->id);
                            $sticker_flag &= BelvgStickersProProduct::setDataForProduct((int)$product->id, $ids_stickers, Context::getContext()->shop->id);
                            if ($sticker_flag) {
                                $sticker_flag &= $belvg_stickerspro_module->applyStickersToImage($product->id, $ids_stickers);
                                if ($sticker_flag) {
                                    $sticker_flag &= BelvgStickersProIndexer::deleteItemsByProductId((int)$product->id);
                                }
                            }
                        }
                    }
                }
            }
            
            $this->closeCsvFile($handle);
        }
    }

    AdminImagesController.php

    class AdminImagesController extends AdminImagesControllerCore
    {
    
        /**
         * AdminImagesController::__construct()
         * 
         * @return void
         */
        public function __construct()
        {
            require_once (_PS_MODULE_DIR_ .
                'belvg_stickerspro/classes/Belvg_StickersPro.php');
    
            parent::__construct();
            $this->fields_list['stickers'] = array(
                'title' => $this->l('Stickers'),
                'width' => 50,
                'align' => 'center',
                'type' => 'bool',
                'callback' => 'printEntityActiveIcon',
                'orderby' => FALSE); //Belvg StickersPro
    
            $this->_select .= 'belvg_sit.stickers';
            $this->_join .= ('LEFT JOIN `' . _DB_PREFIX_ .
                'belvg_stickerspro_image_type` belvg_sit ON (a.`id_image_type` = belvg_sit.`id_image_type`)');
    
            $this->fields_form['input'][] = array(
                'type' => 'switch',
                'label' => $this->l('Stickers'),
                'name' => 'stickers',
                'required' => FALSE,
                'class' => 't',
                'is_bool' => TRUE,
                'hint' => $this->l('This type will be used for stickers feature.'),
                'values' => array(
                    array(
                        'id' => 'stickers_on',
                        'value' => 1,
                        'label' => $this->l('Enabled')),
                    array(
                        'id' => 'stickers_off',
                        'value' => 0,
                        'label' => $this->l('Disabled')),
                    )); //Belvg StickersPro
        }
    
        /**
         * AdminImagesController::renderForm()
         * 
         * @return
         */
        public function renderForm()
        {
            if (is_object($this->object)) {
                $stickerspro_values = BelvgStickersProModel::getImageTypesData($this->object->
                    id);
                if (!empty($stickerspro_values)) {
                    $this->fields_value['stickers'] = $stickerspro_values['stickers'];
                    //$this->fields_value['sticker_height'] = $stickerspro_values['sticker_height'];
                    //$this->fields_value['sticker_width'] = $stickerspro_values['sticker_width'];
                }
            }
    
            return parent::renderForm();
        }
    
        /**
         * AdminImagesController::postProcess()
         * 
         * @return
         */
        public function postProcess()
        {
            $return = parent::postProcess();
    
            //$id_image_type = Tools::getValue('id_image_type');
            $stickers = Tools::getValue('stickers');
            $products = Tools::getValue('products');
            if (empty($this->errors)) {
                $is_add = Tools::getValue('submitAddimage_type');
                if ($is_add) {
                    //$is_exists = BelvgStickersProModel::checkExistsByImageTypeId($id_image_type);
                    //if (!$is_exists) {
                    $object = $this->loadObject();
    
                    if (!$products) {
                        $stickers = 0;
                    }
    
                    BelvgStickersProModel::addTypeByImageTypeId($object->id, $stickers['stickers']);
    
                    //}
                }
            }
    
            return $return;
        }
    
        /**
         * AdminImagesController::processDelete()
         * 
         * @return bool
         */
        public function processDelete()
        {
            $return = parent::processDelete();
    
            $id_image_type = Tools::getValue('id_image_type');
            BelvgStickersProModel::deleteTypeByImageTypeId($id_image_type);
    
            return $return;
        }
    
        public function renderList()
        {
            $html = parent::renderList();
            $this->context->smarty->assign(array(
                'belvg_stickerspro_submit' => $this->context->link->getAdminLink('AdminStickersPro'),
                'belvg_stickerspro_list' => BelvgStickersProIndexer::getItems(0, 0),
                'belvg_stickerspro_last_records' => BelvgStickersProIndexer::getItems(0, 5),
            ));
            $html .= $this->context->smarty->fetch(_PS_MODULE_DIR_ . '/belvg_stickerspro/views/templates/admin/indexer.tpl');
    
            return $html;
        }
    } 

     

    Can someone see on the run if there is a conflict or might provide a solution?

×
×
  • Create New...