Jump to content

cubicsquare

Member
  • Posts

    158
  • Joined

  • Last visited

  • Days Won

    2

cubicsquare last won the day on September 27

cubicsquare had the most liked content!

1 Follower

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

cubicsquare's Achievements

Enthusiast

Enthusiast (6/14)

  • Dedicated Rare
  • Reacting Well Rare
  • First Post Rare
  • Collaborator Rare
  • Conversation Starter Rare

Recent Badges

5

Reputation

  1. 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; 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.
  2. 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.
  3. 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?
  4. 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
  5. 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?
  6. 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.
  7. Never mind, the problem isn't there anymore. I'll update if l see the problem again.
  8. Thank you, now l realise why l had a separate duplicate image column in my upload spreadsheet that missed the preamble part of the URL in the image locations. I've been away too long. Now it's working, woo hooo!
  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. OK i will try again later. I sleep now. By the way, yes, a "/" in the category name creates an ad hoc category tree.
  13. 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?
  14. Sorry, it's my bad. No idea how it happened but in my concatenation formulae for one specific spreadsheet, l was missing a "/" so it was file not found. Good on you for pointing out it was a nonsense thing to say - you're on the ball!
  15. 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?
×
×
  • Create New...