Jump to content

cubicsquare

Member
  • Posts

    166
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by cubicsquare

  1. Visibility:

    OK here's my gripe about all carts - not just the Cubic variety.

    We want comparable sales to eBay or Amazon. How do we get this?

    Any actual success stories where sales have gone from mediocre to strong?

     

    Multibuy:

    Of course, once you get an influx of visitors, you'll need to offer multibuy deals. This is a gripe specific to CubeCart and one other cart l won't mention: l think l tried a multibuy extension but it just didn't work. This to me is essential to drive sales.

    I'd want Buy 4, get extra 1 free (the free one being the cheapest in the cart), in conjunction with other BOGO deals as an accumulator which funnels sales to higher and higher quantities, such that you have Buy 4 get extra 1 free, Buy 10 get extra 4 free ... then it jumps to Buy 20 get extra 10 free. It doesn't permit Buy 10 get 4 free plus Buy 4 get extra 1 free i.e. it will discourage the purchase of 19 items in total (10+4, plus 4+1), instead if you add 19 to the basket, you only get the 10 plus 4 free deal, i.e. out of your 19 items, only 4 will be free of charge. As soon as you get to 20 items then avail yourself of another 10 free items !

    This is done by having your multibuy accumulator as exclusive ranges, so if cart quantity is within the given range, then that specific deal kicks in (e.g. 4-5 items means 1 extra free, and it's the cheapest 1, 6-9 items  means 2 extra items free, and it's the cheapest 2, 10 to 19 items means 4 extra items free, and it's the cheapest 4).  If one of these deals is being struck, no other deals can be applied. However, when you reach the very top of the accumulator e.g. buy 20 items, add an extra 10 for free, and those 10 will be the cheapest items ... that deal is exclusive just like the other BOGO tiers i.e. no other deals can kick in, but*also* it's recursive i.e. it's the ultimate deal, it recurs in multiples of itself up to infinity.

     

     

     

     

  2. I guess only CubeCart templates can be used with CubeCart? I've never thought of using anything but the default / free skins, my needs are basic.

    I know there are templates out there which enable vids to be embedded with various controls e.g. playback speed. To do that, you'll need style sheets as auxiliary pages to install into your website. I mean, when you buy the website template, it will be a bundle of different elements which must all be put into various folders for the template to work. I actually did it on my own website. Can't remember how hehe. But the point is: that would indicate that you can't just throw any template at CubeCart. So you'll need to tweak an existing template if no CubeCart video templates exist.

     

    tl;dr: I'd be interested in this too, as l'd like to create quick vids showcasing my own manufactured products, stock video footage set to my own music. I'd like a one-size fits all solution that l can use on any cart's template, not just CubeCart.

  3. For posterity here are the parts you mentioned in the previous post:

     

     

    ///////////////////////////PUBLIC FUNCTION CALCULATE PART OF THE PHP:

    public function calculate() {
            $this->debugH('BASKET TOTALS');
            $this->debug(sprintf('Basket weight: %.3F', $this->_weight));
            $this->debug(sprintf('Basket value: %.2F', $this->_value));
            $this->debug(sprintf('Basket item count: %d', $this->_item_count));
     
            $zone_ids = $this->matching_zone_ids();
     
            $rates = $this->matching_rates($zone_ids);
     
            // CALCULATE PRICE FOR EACH SHIPPING METHOD
     
            $this->_package = array();
     
            for ($i=0; !empty($rates) && $i<count($rates); $i++) {
                $price = 0.0;
                if ($this->_settings['use_flat']) $price += $rates[$i]['flat_rate'];
                if ($this->_settings['use_weight']) $price += $rates[$i]['weight_rate'] * $this->_weight;
                if ($this->_settings['use_item']) $price += $rates[$i]['item_rate'] * $this->_item_count;
                if ($this->_settings['use_percent']) $price += $rates[$i]['percent_rate']/100 * $this->_value;
     
                $this->_package[] = array(
                    'name'      => $rates[$i]['method_name'],
                    'value'     => sprintf('%.2F', $price),
                    'tax_id'    => (int)$this->_settings['tax'],
                    'tax_inclusive'    => (int)$this->_settings['tax_included'],
                    ## Delivery times not applicable to this module
                    'shipping'  => '',
                    'delivery'  => '',
                    'next_day'  => ''
                );
            }
     
            if (!empty($this->_package)) {
                $this->debugH('FINAL SHIPPING OPTIONS FOR THIS ADDRESS AND BASKET');
                foreach ($this->_package as $p)
                    $this->debug(sprintf('%s: %s', $p['name'], $p['value']));
            } else {
                $this->debugH('<strong>All In One Shipping module has no shipping options for this address and basket!</strong>');
            }
     
            $this->echo_debug();
     
            return !empty($this->_package) ? $this->_package : false;
        }

     

     

    ///////////////////////////PRIVATE FUNCTION MATCHING RATES PART OF THE PHP:

     

        private function matching_rates($zone_ids) {
     
            if (!is_array($zone_ids)) {
                return array();
            }
     
            $this->debugH('SHIPPING RATES');
            $this->debug('All rates:', $debug_level=2);
            $this->debug('<pre>'.print_r($this->_all_rates, true).'</pre>', $debug_level=2);
            $this->debug(sprintf('Looking at the shipping rates for zone(s) [ID %s]', implode(', ',$zone_ids)));
     
            // resulting matching rates (if any)
            $rates = array();
     
            $count = count($this->_all_rates);
            for ($i=0; !empty($this->_all_rates) && $i<$count; $i++) {
     
                $r = $this->_all_rates[$i];
     
                if (in_array($r['zone_id'], $zone_ids)) {
     
                    $ok = true;
     
                    if ($this->_settings['range_weight']) {
                        if ($this->_weight < $r['min_weight'] && $r['min_weight'] > 0) {
                            $ok = false;
                        } else if ($this->_weight > $r['max_weight'] && $r['max_weight'] > 0) {
                            $ok = false;
                        }
                        if (!$ok) $this->debug(sprintf('Rate [ID: %d] [%s] --- Weight range [%s &lt; weight &lt;= %s] doesn\'t match basket weight [%s]', $r['id'], $r['method_name'], $r['min_weight'], $r['max_weight'], $this->_weight));
                    }
                    if ($ok && $this->_settings['range_subtotal']) {
                        if ($this->_value <= $r['min_value'] && $r['min_value'] > 0) {
                            $ok = false;
                        } else if ($this->_value > $r['max_value'] && $r['max_value'] > 0) {
                            $ok = false;
                        }
                        if (!$ok) $this->debug(sprintf('Rate [ID: %d] [%s] --- Subtotal range [%s &lt; subtotal &lt;= %s] doesn\'t match basket subtotal [%s]', $r['id'], $r['method_name'], $r['min_value'], $r['max_value'], $this->_value));
                    }
                    if ($ok && $this->_settings['range_items']) {
                        if ($this->_item_count < $r['min_items'] && $r['min_items'] > 0) {
                            $ok = false;
                        } else if ($this->_item_count > $r['max_items'] && $r['max_items'] > 0) {
                            $ok = false;
                        }
                        if (!$ok) $this->debug(sprintf('Rate [ID: %d] [%s] --- Total Quantity range [%s &lt; total quantity &lt; %s] doesn\'t match basket total quantity [%s]', $r['id'], $r['method_name'], $r['min_items'], $r['max_items'], $this->_item_count));
                    }
     
                    if ($ok) {
                        $this->debug(sprintf('Rate [ID: %d] [%s] --- <strong> Shipping rate is valid for this basket!</strong>', $r['id'], $r['method_name']));
                        $rates[] = $r;
                    }
                }
            }
     
            return $rates;

     

     

     

     

     

    16 minutes ago, cubicsquare said:

           if (!is_array($zone_ids)) {
                return array();

     

    Bearing in mind this is my first ever real look at PhP (l just Googled 1 minute ago, apparently it's a programming language all in itself), l would zoom in on the above 2-line quoted part, and add a caveat about the GTIN field, in a series of nested "if" statements, one per shipping policy to be denoted by a GTIN field.

    Each nested "if" statement would exclude the shipping methods named in that GTIN field, period, regardless the weight band.

     

    Of course it would be problematic if you just wanted to give freepost for a specific weight band under a specific Shipping Method but that's rabbit holes for yer, l think the main thing is that your method is powerful because there's no need to redefine each of the >25 shipping zones l have, per shipping policy.

     

    Instead, the GTIN code would treat Shipping Policies as a gentle post edit. And it won't necessarily delete an entire row of data, it would just mute it. So l think that's quite a deft move - l hope it works out for you.

     

    I hope you alert the forum of any versions you produce , even if just for testing, l'd be interested.

     

     

     

     

  4. Good idea, but because there will be a variety of such makeshift GTIN codes (or whatever codes) we may as well call it by its real name: a second axis to AIOS, i.e. Shipping Policy (currently, AIOS is veeeeery linear).

     

    Proposals for AIOS overhaul:

    - Additional Axis: Shipping Weight Ranges (no need to re-type ranges for each new shipping method)

    - Additional Axis: Shipping Policy (this is not a visible axis as such, it is basically a box of filing cards, on each filing card is written out your vertical list of Y-AXIS available shipping methods, and horizontal X-AXIS their cost at each weight range)

    { As an unnecessary extra: a checkbox next to each shipping method, allowing it to be muted, although alternatively of course you can just delete it manually, but then you lose the data you may have given for that shipping method within that shipping policy card, when in fact you might have wanted to be able to toggle it on and off at whim. }

     

    - And this huge leap: somehow allow duplication of a shipping policy, though l don't know how that will be possible because obviously duplicating shipping data will affect the CubeCart databases and l'm not qualified to even say the word "database". I think l may be able to tinker with the other stuff l've just mentioned in this post.

     

    Do you have some way l could view the AIOS app code or is it private? I don't mind really, it's not like l'll rustle up something within a few days or even years but it'd be nice to see if l could make a go of it. HTML was fairly easy to pick up and necessity drove me to learn basic HTML.

     

     

     

     

     

  5. Currently:

    Imagine i'm selling a big sculpture made of coathanger wires. It is big, but doesn't actually weigh a lot. By the way l really think this is moot because l have no such stock but:

     

    2kg item courier options:

    > Small parcel (21x16x11cm): £FREE or £3.50 or sometihng cheap

    > 1kg-10kg Bulky Tariff (50x50x60cm): £14.50

     

    Of course the sculpture won't fit into a small parcel. But, 95.5% of customers will opt for the small parcel tariff. Myself included !!!

    For my product "Coathanger Sculpture of Thinking Man" l need to:

    > mute the small parcel tariff

    and / or:

    > Make visible only the 1kg-10kg Bulky Tariff

     

     

    I guess it's not doable is it? Not with AIOS in its present form.

    If the answer is indeed no, may l ask if there's a way l can play about with the code? I'm a complete stranger to coding but maybe l can pick it up just by looking at the existing code for the AIOS app?

     

  6. Thank you, i returned to this thread because the problem did indeed crop up again, it was just a delayed effect with each new spreadsheet upload. So it's back.

     

    I go to Store Settings > Stock >

    Admin stock warning method = "Use Global stock warning level"

    Global stock warning level = "5"

     

    I have now changed it to:

    Admin stock warning method = "Use product-specific level"

     

    It seems the problem is now solved :)

  7. Hi there, just for that item alone. I guess it's not doable with AIOS, because that only has one axis: Zone.

    If people order multiple items no problem, it's keyed to weight.

    The weight will reveal if there's a bulky policy possible. Even if the order is mixed (bulk + small package combined), so long as they paid bulky for one it's fine. 2 small items in combo will be anticipated correctly as regards their size, by my preset postage rates, i.e. 5kg + 5kg will be anticipated as a 10kg which in turn will be anticipated as a fairly bulky parcel anyways. That's the beauty of my existing system.

     

    But for single items, i'd really like to enforce the "Bulky" tariff or at least block the "small parcel" tariff. I guess the only way is to add a second axis to AIOS, not just zones but also policies. The policy will be called "Bulky Only" and therefore will only have the "Bulky" method within its menu.

     

    I'm guessing therefore it's not possible right now?

  8. Hi there,

    Is there a way to disable some shipping methods for some products in the All in One Shipping extension or via some other means?

    I have one method for bulky items sent economy. It is currently showing in the same pallette as, say, ordinary small parcels sent economy.

    Obviously 99.5% of customers will opt for the cheaper ordinary small parcels economy tariff, rather than the twice as pricey bulky items eonomy tariff. However, if the item is, say, a chair, then i need to enforce the bulk tariff or at least block out the small parcels tariff.

     

     

  9. I have several times attemped to upload my inventory. The stock level warning column is left blank.

     

    Sometimes i match it to CubeCart's upload parameters i.e. CubeCart takes a note of that column.

     

    Last time l tried, l didn't even match it up i.e. l let CubeCart ignore that column.

     

    Either way, whether l tell CubeCart to match up with the Stock Level Warning column in the uploaded inventory or to ignore it, l get a stock warning for each of my inventory items, which l am listing as single items. As l say, the Stock Level Warning column is blank anyway. My actual stock level (Stock Level, Use Stock Level) for each item is 1.

     

    What gives?

     

    @bsmither heeeeeeeelp

  10. Update: I am wondering if the skin i'm using - the Foundation skin - has somehow been revised, and is only permitting images that are cached in a folder specific to the skin?

    I wonder this because this is the URL for the placeholder image that l get instead of the intended product images:

     

    https://store.mysite.com/images/cache/skins/foundation/images/noimage.200.png

     

    Sure, that's just the placeholder image, but l do wonder if all of my ad images were meant to go in that parent "foundation/images" folder, if l'm using the Foundation skin? But l'm sure it never used to be like that. I really doubt this is the real issue.

  11. Hi there @bsmither

    I can now confirm:

    1. CubeCart's inventory upload system doesn't immediately show that the categories have also been uploaded. For a brief while it shows that most of the uploaded products have no categories. Then, after a while, it is revealed that they all have their attached categories, but it appears as if they have only one category per product, even though l may have uploaded multiple categories per product. On drilling down into a product's actual categories tab, it is then revealed that the multiple categories have indeed been recognised, but only the first category in the string is showing in the product list on the control panel. This is designated primary category via a radio button on the aforementioned category tab for that product.

    Very rough trip.

     

    2. Ok this is where it gets really upsetting.

    I have tried the following versions for the images field when aligning my upload spreadsheet contatenated image URL column with CubeCarts "Images (Comma Separated)" heading:

     

    VERSION 1: https://store.mysite.com/images/source/catalogue124/02.jpg,https://store.mysite.com/images/source/catalogue124/04.jpg,https://store.mysite.com/images/source/catalogue124/05.jpg

    VERSION 2: https://store.mysite.com/images/source/catalogue124/02.jpg, https://store.mysite.com/images/source/catalogue124/04.jpg, https://store.mysite.com/images/source/catalogue124/05.jpg

     

     

    Neither of these versions causes a set of 3 images to appear for the product listing. I have had a CubeCart shop with all my inventory successfully, cleanly listed before. That was a work in progress and l abandoned it because l got sidetracked. I deleted it all and started again with the present revised inventory. Yet this time, bizarrely, no images are uploading. I believe l'm expressing the string of multiple image URLs the same as ever, or rather, "VERSION 1" was how l always uploaded my multiple images per product, and l never had a problem before. What gives?

    By the way, the URL names have been changed to protect the innocent. Be assured that each individual URL does load an image successfully. But when l upload a string of 3 images via matching my CSV spreadsheet colum to CubeCart's "Images (Comma Separated)" heading, l get no pics uploaded. As l say, l'm sure it used to work before.

     

  12. Hi there, here's an example of how it is appearing in the text editor version of the .CSV, including the speech marsk:

    "Good stuff, drink & chairs,Fantastic stuff: For the fridge / freezer"

     

    The 2 categories are:

    Good stuff, drink & chairs

    Fantastic stuff: For the fridge / freezer

     

    Obviously, the comma within the title of that first category is messing my day up.

    But it seems also the "/" symbol in a category title is fracturing the category names into pieces too!

     

     

    OK I THINK I HAVE SOLVED IT NOW!

     

    In the PRODUCT INVENTORY of my control panel, l am only seeing the PRIMARY CATEGORY listed. That is the first category mentioned in the string of categories. I was expecting to see multiple categories listed right under each product's name in the product list view, rather than just the primary category. When you go to the product's own category tab, you can change the primary category there.

     

    In tandem with this quirk, of course, l did not realise my categories had commas and forward slashes, and l certainly didn't realise forward slashes were causing category names to fracture just as commas were too, within the category name.

     

     

     

     

    Do you think l should try uploading the multiple image URLs per product, with a space after the commas?

  13. Hi there, is there a special way to express two or more shop categories, such that when l upload 1 product via CSV, on the same row, those multiple categories are mentioned, and thus the product is listed under those multiple categories simultaneously?

     

    Currently, my upload .csv states:

    Category1, Category2

     

    This leads to the uploaded item being without any category, because the category is being inferred as one string: "Category1, Category2"

    Update: according to my notes, multiple categories are indeed to be comma separated.

     

    So where am i going wrong?

     

    Should l have written: Category1,Category2

    instead of: Category1, Category2

     

    ? i.e. should there be zero spaces after the commas?

    Thing is, the images are also not being recognised in my .csv upload - yet they are actually written with zero spaces after the commas, e.g.:

     

    image1,image2,image3

     

    So, it appears that commas are just not liked. Could it be that because it's a comma separated spreadsheet, something is going awry with my use of commas within the spreadsheet?

  14. 15 hours ago, harrisorganic said:

    At the check out the packaging shipping weight is not shown in the total weight. ie a 1.0 kg packaging weight is not shown as an addition to the total weight.

     

    Hi there l'm guessing this is obvious but have you ticked the box above the default shipping weight? The one titled "Weight-based rates"?

    I am unable to test it myself right now.

  15. Hi there, if l remember rightly, you'll need to log into your CubeCart control panel.

    Go to SETTINGS

    Go to Store Settings

    Complete all the details in all of the relevant tabs you will find on that screen.

    For example: select a skin.

     

     

     

    Here are some of the more detailed notes l made a long time ago [NOTE: l'm not sure if they will still work for the latest version of CubeCart, NOTE: These aren't my complete notes on how to set up a CubeCart shop, just the best parts :)]:

     

     
    ---> Select some skins here: https://www.cubecart.com/extensions/skins
    To install a skin, press the lightning icon and then follow the instructions to start your auto-install (the lightning icon is very apt because it is quite a simple process)
     
     
    ---> Set your default skin (see above for how to obtain a skin in the first place):  
    Settings > Store Settings > Layout > Skin Settings
     
     
    ---> Set up your standard shop elements e.g. the About Us section and your various policies on payment, cancellation, returns etc.:  
    File Manager > Documents

     
    ---> Give shop name and address, set up default language and currency, number of new products to display per page, maximum precis length, weight unit, enable SSL, set a GDPR dialogue box and so on:  
    Settings > Store Settings > Continue across all of the available tabs
     
     
    ---> Set up currencies:  
    Settings > Currencies
     
     
    ---> Set up taxes:  
    Settings > Taxes (but they are already set up for you - at least, if you live in the UK; see the template product upload spreadsheet for instructions on tax IDs)
     
     
     
    ---> Set up reCaptcha:
    Settings > Store Settings > Features > Bot Protection
    Follow the link to set up a Google account so that you can obtain and input the reCatpcha keys.
    There is no cost.
     
     
    ---> Set up Shop Categories:
    - Inventory > Categories > Add Category
    - Check Status to activate the category
    - Check Visible to make the category actually visible in your shop
    - Category Name: Input the category title - PLEASE NOTE: I suggest that you check the list of Google categories here: https://support.google.com/merchants/answer/6324436?hl=en&visit_id=637118121844232581-3055822197&rd=1
    Alternatively, you can browse the list of Google categories within the CubeCart admin control panel by navigating Inventory > Products > General > Go to "Miscellaneous" section at bottom of screen > Browse the Google Categories from the pulldown menu
    - Parent Category: Assign a parent category from among the categories already input. It may be an idea to enter the parent categories first, so that they can be selected as parent categories when subcategories are later added. Alternatively, when the list of categories is created, some categories can be designated as subcategories to parent categories by manually clicking and dragging them and thus placing them as subcategories in the finished list of categories.
    - Please note the Search Engines tab, it can help your shop's visibility in search engines.
     
     
     
    ---> Upload your inventory:
    - Prepare your CubeCart Upload spreadsheet from the generic "Template" spreadsheet.
    - Set up an FTP account via your web hosting control panel
    - Using an FTP program such as FileZilla, upload all of your product inventory images in their correct folders as per the filepaths given in your inventory upload spreadsheet. The parent folder will be "images/source" on your server space, within the CubeCart installation folder.
    - In your CubeCart admin control panel: Inventory > Import Catalog as a .csv file. You may need to change the delimiter (see the dialogue box that appears when you open the CSV file in a spreadsheet program) and the language used (only UTF-8 and ISO 8859-1 encodings are allowed). Test the delimiter by opening the .csv file as a text file, to see what separates the columns of data e.g. a comma, an apostrophe, or a space / tab space etc.
     

     

  16. Hi there, please may l know what is in the latest update?

     

    AllInOneShipping-1.0.22.zip

    Date: 7th Oct 2021, 14:29

     

    Edit: I found the changelog in the Documentation tab, question answered: "1.0.22 - Added default packaging weight"

×
×
  • Create New...