Jump to content
thirty bees forum

Mark

Members
  • Posts

    277
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Mark

  1. With some jigging about and persisting with the buggy code, its possible to get the thing set properly once you know what you are doing and know how to set Free Shipping by not using Free Shipping, but its stilll a bug and bad UI and the Free Shipping button should probably stay as thats a nice simple clear thing for users, in my my view. That is, if it was to work properly.

     

  2. Its not a case of there being something wrong with my setup so far as I can tell, its a problem requiring code changes to fix the logic around Free Delivery. I guess the next stage is to put this into GitHub so the problem can be dealt with. @datakickdid invite me to do so awhile back, but I didnt because I dont feel like I know the system well enough yet to get this request right.

  3. 7 hours ago, zen said:

    What did you setup in the STEP 3 of carrier configuration ?

    put 0 for each field.. if it's not the case already

    Ive tried all sorts of combinations, putting 0 for each one doesnt work either @zen

    11 hours ago, dynambee said:

     We manage free shipping by having near-zero weight items cost $0 to ship and then assigning a weight of 1g to those items.

    It's a hacked together system to get around the shipping system limitations, but it works.

    @dynambee do you foresee problems or considerations by fixing the free shipping button so that it overrides everything for the prescribed zones and groups and makes shipping free for that item regardless of all other settings?

    It would only make shipping free for that item, so the actual total shipping cost would still be the sum of all the individual cart items

  4. 59 minutes ago, dynambee said:

    How many carriers do you have set up?

    Seven

    59 minutes ago, dynambee said:

    Have you manually assigned certain carriers to certain items?

    Most share similar carriers, but not all, they all have some common carriers

    59 minutes ago, dynambee said:

    Do you have more than one item in the shopping cart when you go to check out?

    Ive tried different combinations of one, two, some.

    59 minutes ago, dynambee said:

    If you are basing your shipping on item cost, why not set the item weights to zero? 

    Im basing shipping on "weight". Not really weight, but how many items I know will fit into certain sized delivery bags.

    59 minutes ago, dynambee said:

    Overall TB is a great platform but the shipping system inherited from PS is probably the weakest point. It's not very good at managing things for complex shipping situations.

    It is complex, but its generally a pretty good attempt at a complex range of scenarios. However one weak point is the Free Shipping. When we say Free Shipping it should mean no nonsense, that for those groups, zones etc, that item is Free if Free Shipping is selected for that carrier. There's a bug preventing this absolute situation from my happening I believe.

    @dynambee

     

  5. No matter what I do, items that weigh over 1kg are not eligible for free shipping as set by carrier settings.

     

    I have checked: Zones, Countries, Carriers settings, Customer groups, Shipping Preferences, Product settings. They all correctly permit Free shipping by a certain carrier.

     

    But in the checkout, the customer gets

     

    "The product selection cannot be delivered by the available carrier(s): it is too heavy. Please amend your cart to lower its weight."

     

    If I change the product weight to under 1 kg, its fine

     

    There's multiple ways to set the shipping in the Shipping Locations and Costs in the Carrier Settings, but no matter which one I do and it appears to be set correctly, the result is still the same....

    Capture.PNG

  6. Users can certainly buy online using Stripe or Paypal, but they don't. Thsite probably isn't as polished as it could be, but functionally everything is there. Stripe and Paypal cost money and increase risk of buyer clawing money back so I prefer them paying by bank transfer or cash anyway.

    Im open to suggestions as to how to make it more polished

  7. Oh OK,

    Bank transfer is used all the time here (New Zealand). All you need is the banks app and just enter someone's account and the amount, and at no cost the other person is paid virtually instantly.

    It costs nothing for either party to use.

    I sell via TB just consumer goods to consumers

  8. lol, there's nothing wrong with the server as I was saying earlier. I dont believe its a server issue. By taking out the mailing function (and doing so doesnt make any detectable difference), that seems to prove that. Everything else happens fast.

    @zen everything I do i about making it fast and easy for the customer. I dont like forcing them to do anything except pay, all I need is name and mailing address and they can give that it in 3 seconds on social media and they can pay me by bank transfer in about 30 seconds.

    TB does more than just process orders for customers. TB gives prospects a pretty good platform that they can see the product, catalog and details and know I have a shop for credibility and reference. And if they want to pay by credit card or paypal they can on the site, but most prefer just to pay by bank transfer.

    To me, though TB is important for managing stock, seeing stats and recording sales for my records.

     

     

  9. Hi, tried the LogIn As A Customer although this adds more delay acting as a customer than as admin.

    Also tried disabling email, this didnt affect speed.  Presenting a list of all customers (or all addresses) at the end of adding one new one, is an unnecessary step that uses time and system resources. ALl Im trying to do is clear the screen (All customers or all addresses) when it comes up so it goes away, but I have to wait while it hangs before I can clear it.

    There's no need for the admin to see a list of all customers or all addresses after creating a new one. Instead the admin should just be able to get on with job of processing the order for that customer.

    Why do I do this and not force the customer to register @wakabayashi? Well I dont like forcing them to register and spend their time completing forms. They told me their name and mailing address and theyve paid me, thats good enough for me.

    NB: I actually do all the order processing outside thirtybees, (ie sending the stuff, making cash sales). All Im using TB for is to put the orders into a system for my own records, because its too cumbersome for customers to register and order. They tell me in one or two conversation messages on social media what they want, then the pay me, almost always outside TB. Thats all they need to do.

     

  10. 13 hours ago, wakabayashi said:

    I know this processes. We add almost daily orders to the BO. I am surprised, that you prefer it that way by default. We try as much, to push our customers, to order themself. It saves us time and nerves 😉

    We do it the same way: prename.surename@shop-domain.ch. It's true that it makes no sense to set a passwort there. But it's also not a big deal to put something in this field.

    I agree its a lot of work for something not really necessary.

    13 hours ago, wakabayashi said:

     

    You write a lot about many seconds. I don't have such a big delay on my server. Probably your server is also slow. But true I also noticed that this process is not really quick. Not sure if there is any issue with the ajax post request, or if it just takes this time. A video of your process would help to understand, what you really mean.

    The server isn't too bad, the real thing is that presenting the entire list of customers and addresses after we add a new one is totally unnecessary.

     

    13 hours ago, wakabayashi said:

     

    Yeah that's a bit ugly. We have created an account like store-customers@shopdomain.com. We add all orders there, that don't need any address. The address is then our company address. We use this account mainly for people who buy directly at our house.

    Yes I thought about adding a general account to handle all non addressed people but it doesnt help me track individuals or sales properly this way. I'd rather they had a an account each, but with a default address. Its reather time consuming entering the same address over and over again.

     

    13 hours ago, wakabayashi said:

    Yeah I believe this is worth considering. Especially in the BO, but I have heard, that some shops use such APIs also on FO.

    Front end is good too, anything to save the customer hassle and time signing up is good.

    13 hours ago, wakabayashi said:

     

    No idea what you mean. A bug report needs to be concret. And it's better to report bugs seperat, not mixing it up in a post, that is about improving/enhancing features.

    Fair call, Ill put this on github at some point, I just thought that if someone was going to do these things, this fix could be done at the same time.

  11. Hi all,

    I do all my selling online in social media, customers just go to the site to see details but dont usually buy from it, they cant be bothered form filling (typical consumers of today). They pay me outside the site- cash or bank transfer and doing so involves no form filling or time online, so they are happy. Its also cheapest and easiest for me to do this too, so its win win.

    Consequently the site is mainly an admin tool for me to display for prospects and for me to process and view orders.

    Used this way, when admin does all the order creation, there's many little things that aren't right when using the site in this fashion.

    Ultimately, everything works ok (despite back end fails upon order submit), but there's a few things that make the process painful.

    I can soldier on with the bugs and process problems if its only me using it this way, but if there's others having the same problems (now or in the future), could it be worth looking at? There's a fair bit of work involved in implementing all my suggestions so I realise it would only happen if many wanted it.

    Im happy to get more technical about suggestions but some of the suggestions include:

    1) a) New Order creation>>Adding new customer: I dont usually collect email addresses. I just create them an xxxyyy@<my domain name> address based on their first and last names. Because it's not a real email, a password isn't needed. However if the customer account is later updated to be real then it will need a password. I would propose that any new customer account created by admin has a system generated password sent when a real email is created. Telling the system what a fake domain name to use is would also tell it that everything else is a real email and will need a real password.

     b) If there is an error creating the new customer, its about 5-10 seconds after submit before the error can be fixed. It should be instantly fixable.

    c) If the submitted new customer data is OK, then a screen comes up displaying all customers. It then disappears after about 10 seconds. This seems unnecessary. Once the new customer data is OK, we could just go straight back to the Add New Order page.

    2) Add New Order Form

    a) Adding a new address. The form requires a new address be added for that customer.  I believe there could be two options here, Add New Address and Add Default Address. Every single time I add a new customer I have to add the same default address. I would rather just create a default address once then click that every time I do not want to add all customer address details.

    b) Adding a new address: Adding addresses is  painful process for both admin and customer when signing up. To greatly speed things up I would propose adding a Google Address API box, where the user starts typing and the address options appear for the user and they click which is correct.

    c) After the address is added, then like 1c) above, all the addresses appear. This screen hangs for about 10 seconds. Like 1c) this is a completely unnecessary part of the process that just consumes time and hassle.

     

    After that, the order creating side mainly makes sense.

    But then, right at the end, when I push "Create The Order", 90% of the time, there's a bug. The order data is correctly written and processed in the back end, but the entire screen disappears with what is presumably some php bug. Backpage, and all the data is there and correct but getting rid of that php bug would be very much better.

     

    Thanks

     

    Those are the main issues I have with Admin Creating a New Order/Customer. Hopefully Im not alone on this and others would also like some changes here too.

     

     

     

     

     

  12. Thanks @datakick I have now updated to Bleeding Edge 1.1.0 , great spotting.

    Things seem to ok at first glance at the moment, and images that werent working before under Stable1.1.0 are now there

    Now I'll do what @Traumflugsuggests and look closely at any remaining problem images and replace them and look for anything else.

    Thank you all. 

     

    Brilliant Core Updater process by the way, love that its so easy to change versions.

     

  13. Note for anyone looking at my site and seeing I have images: I have temporarily reverted to Stable version of 1.1.0 which does present most but not all of the images while we complete this last piece of the puzzle, in order that customers, in the main, can do their thing....

  14. I told why I cancelled your back office access @zen and you seemed fine with that at the time. It was cancelled because Traumflug was working on the code to fix it for everyone and there would be no need for you or I to try and change the back office or codebase when the proper solution was close at hand.

    Within hours of that, Traumflug did correct the code and it was the right decision to not spend time trying to change the codebase or back office settings adhoc in a potentially hazardous fashion.

     

    Despite having done a bleeding edge update yesterday @datakickmy ImageType.php file doesnt resemble yours.

     

    This is what I have

     

    <?php
    /**
     * 2007-2016 PrestaShop
     *
     * thirty bees is an extension to the PrestaShop e-commerce software developed by PrestaShop SA
     * Copyright (C) 2017-2018 thirty bees
     *
     * NOTICE OF LICENSE
     *
     * This source file is subject to the Open Software License (OSL 3.0)
     * that is bundled with this package in the file LICENSE.txt.
     * It is also available through the world-wide-web at this URL:
     * http://opensource.org/licenses/osl-3.0.php
     * If you did not receive a copy of the license and are unable to
     * obtain it through the world-wide-web, please send an email
     * to license@thirtybees.com so we can send you a copy immediately.
     *
     * DISCLAIMER
     *
     * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
     * versions in the future. If you wish to customize PrestaShop for your
     * needs please refer to https://www.thirtybees.com for more information.
     *
     * @author    thirty bees <contact@thirtybees.com>
     * @author    PrestaShop SA <contact@prestashop.com>
     * @copyright 2017-2018 thirty bees
     * @copyright 2007-2016 PrestaShop SA
     * @license   http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
     *  PrestaShop is an internationally registered trademark & property of PrestaShop SA
     */

    /**
     * Class ImageTypeCore
     *
     * @since 1.0.0
     */
    class ImageTypeCore extends ObjectModel
    {
        // @codingStandardsIgnoreStart
        /**
         * @var array Image types cache
         */
        protected static $images_types_cache = [];
        /** @var array $images_types_name_cache */
        protected static $images_types_name_cache = [];
        /** @var string Name */
        public $name;
        /** @var int Width */
        public $width;
        /** @var int Height */
        public $height;
        /** @var bool Apply to products */
        public $products;
        /** @var int Apply to categories */
        public $categories;
        /** @var int Apply to manufacturers */
        public $manufacturers;
        /** @var int Apply to suppliers */
        public $suppliers;
        /** @var int Apply to scenes */
        public $scenes;
        /** @var int Apply to store */
        public $stores;
        // @codingStandardsIgnoreEnd

        /**
         * @see ObjectModel::$definition
         */
        public static $definition = [
            'table'   => 'image_type',
            'primary' => 'id_image_type',
            'fields'  => [
                'name'          => ['type' => self::TYPE_STRING, 'validate' => 'isImageTypeName', 'required' => true, 'size' => 64],
                'width'         => ['type' => self::TYPE_INT, 'validate' => 'isImageSize', 'required' => true],
                'height'        => ['type' => self::TYPE_INT, 'validate' => 'isImageSize', 'required' => true],
                'categories'    => ['type' => self::TYPE_BOOL, 'validate' => 'isBool'],
                'products'      => ['type' => self::TYPE_BOOL, 'validate' => 'isBool'],
                'manufacturers' => ['type' => self::TYPE_BOOL, 'validate' => 'isBool'],
                'suppliers'     => ['type' => self::TYPE_BOOL, 'validate' => 'isBool'],
                'scenes'        => ['type' => self::TYPE_BOOL, 'validate' => 'isBool'],
                'stores'        => ['type' => self::TYPE_BOOL, 'validate' => 'isBool'],
            ],
        ];

        protected $webserviceParameters = [];

        /**
         * Returns image type definitions
         *
         * @param string|null $type Image type
         * @param bool        $orderBySize
         *
         * @return array Image type definitions
         * @throws PrestaShopDatabaseException
         *
         * @since   1.0.0
         * @version 1.0.0 Initial version
         * @throws PrestaShopException
         */
        public static function getImagesTypes($type = null, $orderBySize = false)
        {
            // @codingStandardsIgnoreStart
            if (!isset(static::$images_types_cache[$type])) {
                $query = (new DbQuery())
                    ->select('*')
                    ->from('image_type');
                if (!empty($type)) {
                    $query->where('`'.bqSQL($type).'` = 1');
                }

                if ($orderBySize) {
                    $query->orderBy('`width` DESC, `height` DESC, `name` ASC');
                } else {
                    $query->orderBy('`name` ASC');
                }

                static::$images_types_cache[$type] = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query);
            }

            return static::$images_types_cache[$type];
            // @codingStandardsIgnoreEnd
        }

        /**
         * Check if type already is already registered in database
         *
         * @param string $typeName Name
         *
         * @return int Number of results found
         *
         * @throws PrestaShopDatabaseException
         * @throws PrestaShopException
         * @since   1.0.0
         * @version 1.0.0 Initial version
         */
        public static function typeAlreadyExists($typeName)
        {
            if (!Validate::isImageTypeName($typeName)) {
                die(Tools::displayError());
            }

            Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(
                (new DbQuery())
                    ->select('`id_image_type`')
                    ->from('image_type')
                    ->where('`name` = \''.pSQL($typeName).'\'')
            );

            return Db::getInstance()->NumRows();
        }

        /**
         * @param string $name
         *
         * @return string
         *
         * @throws PrestaShopDatabaseException
         * @throws PrestaShopException
         * @since   1.0.0
         * @version 1.0.0 Initial version
         */
        public static function getFormatedName($name)
        {
            $themeName = Context::getContext()->shop->theme_name;
            $nameWithoutThemeName = str_replace(['_'.$themeName, $themeName.'_'], '', $name);

            //check if the theme name is already in $name if yes only return $name
            if (strstr($name, $themeName) && static::getByNameNType($name)) {
                return $name;
            } elseif (static::getByNameNType($nameWithoutThemeName.'_'.$themeName)) {
                return $nameWithoutThemeName.'_'.$themeName;
            } elseif (static::getByNameNType($themeName.'_'.$nameWithoutThemeName)) {
                return $themeName.'_'.$nameWithoutThemeName;
            } else {
                return $nameWithoutThemeName.'_default';
            }
        }

        /**
         * Finds image type definition by name and type
         *
         * @param string $name
         * @param string $type
         *
         * @param int    $order
         *
         * @return bool|mixed
         * @throws PrestaShopDatabaseException
         * @throws PrestaShopException
         * @since   1.0.0
         * @version 1.0.0 Initial version
         */
        public static function getByNameNType($name, $type = null, $order = 0)
        {
            static $isPassed = false;

            // @codingStandardsIgnoreStart
            if (!isset(static::$images_types_name_cache[$name.'_'.$type.'_'.$order]) && !$isPassed) {
                $results = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT * FROM `'._DB_PREFIX_.'image_type`');

                $types = ['products', 'categories', 'manufacturers', 'suppliers', 'scenes', 'stores'];
                $total = count($types);

                foreach ($results as $result) {
                    foreach ($result as $value) {
                        for ($i = 0; $i < $total; ++$i) {
                            static::$images_types_name_cache[$result['name'].'_'.$types[$i].'_'.$value] = $result;
                        }
                    }
                }

                $isPassed = true;
            }

            $return = false;
            if (isset(static::$images_types_name_cache[$name.'_'.$type.'_'.$order])) {
                $return = static::$images_types_name_cache[$name.'_'.$type.'_'.$order];
            }
            // @codingStandardsIgnoreEnd

            return $return;
        }
    }

     

  15. Excuse me, I'm not sure what caused that response from you zen.
    My website is in production live and has no images and customers cannot see the products they are trying to buy and making complaints.

    I do not know how to fix that and haven't made any suggestions that I have ant better way.

    I reached out for help on the settings and still have a broken site

     

  16. OK so right now I have no images, I have no idea how to change the settings so I have images. The settings I have are at the start of this thread and I believe that they are set by the theme and I dont want want to particularly play with those.

  17. Ive just undertaken a bleeding edge update which I believe incorporate's @Traumflug's changes.

     

    Unfortunately now I seem to have no images at product.solutions.org.nz

    When updating the thumbnails I get

     

    Original image is corrupt (/home/solution/public_html/product/img/p/1/9/4/194.jpg) or bad permission on folder

     

×
×
  • Create New...