Jump to content

bsmither

Member
  • Posts

    17,980
  • Joined

  • Last visited

  • Days Won

    603

Everything posted by bsmither

  1. The new CSS rules (the ones that were deleted) tell the browser to scale the image as wide as the <div> container it is in. (Browsers do not do a very good job of enlarging images.) That <div> container ends up being 438px on a large viewport.
  2. Yes, I did miss one closing parenthesis. For import? CubeCart and CubeCart's database structure is already programmed for UTF8. There is no need to specify it. On the other hand, depending on the version of Excel (if a difference in versions exist), maybe the only choice for a codepage is what the computer is set for. But see if your version can follow this: To save a text file as tab-delimited, UTF-8 encoded in Excel: Choose File->Save as from the menu. In the 'Save as type' dropdown > select 'Text (Tab delimited) (*.txt)' (also try CSV) (if you have this...) Select 'Web Options' in the 'Tools...' dropdown at the bottom of the dialog box. Select the 'Encoding' tab. In the 'Save this document as:' dropdown, select 'Unicode (UTF-8)' Allow me to make a sincere suggestion: if you are able (that is, not prohibited by company policy), get and install LibreOffice. It's free. LibreOffice is much better at dealing with world-standard file formats, and is able to handle Excel formats. You might also be interested in this: https://jaimonmathew.wordpress.com/2011/08/23/excel_addin_to_work_with_unicode_csv/
  3. Please see: https://forums.cubecart.com/topic/52197-picture-size/
  4. If this is an extension, then the extension's folder should have a skin subfolder. In there would be the CSS files. Also, if the extension does not bother itself with changing any of the color or font stylings (that is, it only deals with box sizing and positioning), there won't be any CSS rules for overriding what Foundation already gives globally. But, since we have an ID (vertical-navigation-box-link-cbd), we can use that to create specific rules, such as: #vertical-navigation-box-link-cbd { font-size: 0.8rem; }
  5. A better solution would be to get an "External"-type extension. Here are a couple: https://www.cubecart.com/extensions/product-feeds/data-pump-import/update/export https://www.cubecart.com/extensions/product-feeds/storeya-export But you can try this (I have not actually tried this myself): In the administrative folder, /sources/products.export.inc.php, near line 145, find: deliverFile(false, false, $output, $filename); Change to: deliverFile(false, false, chr(bindec('11101111')).chr(bindec('10111011')).chr(bindec('10111111').$output, $filename);
  6. By design, CSV files do not have any kind of language or codepage identifiers. Characters represented by UTF8 code points will appear as their full two, three, of four byte sequences. It is up to the application displaying the data to figure this out -- either by inspection or by a default setting for loading the file. UltaEdit does this by looking for obvious UTF8 byte sequences within the first 16K (maybe 4K, maybe 256K, I do not recall) of the file's contents. UltraEdit also honors the file's first two bytes, if present, called the Byte Order Mark (BOM). When having UltraEdit save this file, the settings may be such that UltraEdit adds the BOM to the file. This, in turn, allows Excel to honor the BOM and display the contents appropriately. Excel does not do content inspection. The BOM is really to indicated '-endian' format, and may mess up other readers. But it will let Excel display the file correctly. The CubeCart code that writes the CSV can be modified to output the BOM.
  7. (Not verified but doubtful) Are your options assigned to the product using Option Sets? Are you using an early version of CubeCart 5? Does your database have the CubeCart_options_matrix table? If so, use an external utility to view the rows in this table. Find the rows where the 'product_id' is the id of the product you are experimenting with.
  8. We use the browser's diagnostic tools to show us the CSS rules that are affecting the thing we want to change. The diagnostic tool has the ability to allow you to select that thing or to be able to right-click on that thing and in the context menu that pops up, click Property Inspector. If the rule is broadly applied, then the next highest container will need to be included in a new CSS rule. That new rule can be added to Foundation's cubcart.default.css file. Rules added to this file overrule all other rules because it gets loaded last. What browser do you prefer to use? (Personally, I use Firefox 47 with Firebug. Firefox is up to 51(?) but past 47 Firebug has relegated is functionality to Firefox's internal Developer Tools which nobody likes.)
  9. Using phpMyAdmin or some other database maintenance utility, find your way to the database structure, and observe the indexes for a given table. The banner is suggesting that, for this table, there be an index (KEY aka INDEX) named cat_parent_id applied to the column cat_parent_id. If a banner should mention PRIMARY, there is no name given to this index (as "PRIMARY" is the name), that is applied to the column.
  10. Welcome SergeiG! Glad to see you made it to the forum. In CC615 (maybe CC614 as well), the Advanced Search page (in the Foundation skin) should give you a selector to filter by Manufacturer. It will be difficult to include the manufacturer's name in the Quick Search field, as only the 'manufacturer_id' number (as a key into the manufacturers database table) is available in the Inventory table, where the search is performed.
  11. The 'not allowed as a key' messages are usually when CubeCart is getting incomplete data from, or has a broken connection to, the database server. In this case, however, most, if not all, columns seem to be those that have been added over time. Meaning, if a CC615 codebase is accessing a CC3 database, these table columns won't be in the CC3 database. The above is from 23 January. So, unless you have included month-old error messages accidentally, I would guess that the server's clock is/was off by a month. The second group of error messages are pointing out that the file /classes/cubecart.class.php didn't make it up to your site (FTP?).
  12. I think carrying over only products and the customers is a bad idea. I do not know specifically why CC615 thinks you are at CC3, unless there are some "markers" giving a false impression: no CubeCart_history table, a missing Version statement in ini.inc.php, maybe something else. In my latest attempt to upgrade, the step by step progress didn't happen. I had to click on the Continue button for each intermediary step.
  13. When I got to the 80% mark, I expected the Setup to automatically work it's way through the various steps, from CC3 to CC615. But the automatic-ness didn't happen. I don't know why. I have not looked at the code, but I blame my browser. I had to click continue from the beginning through each and every step, all the way to the end. The "history" table doesn't show up until some point in CC4. So you can ignore the 'version is not allowed' message.
  14. Last simple edit before we get all medieval on this: In the module's shipping.class.php, find: $response = $this->_client->getRates($request); if ($response->HighestSeverity != 'FAILURE' && $response->HighestSeverity != 'ERROR') Change to: $response = $this->_client->getRates($request); findReasons($this->_client); if ($response->HighestSeverity != 'FAILURE' && $response->HighestSeverity != 'ERROR')
  15. In the debug section shown at the bottom of the page, among the PHP Notices is this one: [Warning] /classes/cubecart.class.php:1700 - Shipping not setup or allow no shipping not enabled Line 1700 is executed if Cart->loadShippingModules() returns false. loadShippingModules will return false for a variety of reasons, but probably because no shipping products could be matched to what you have selected in the settings screen. In the FedEx settings screen, General tab, Carrier/Service Matrix table, as an experiment, select all available services. Save.
  16. If the Allowed and Disabled Zones tabs are empty, then we need to do some deep investigation. I see that the FedEx module's settings are getting called, but nothing is being done with them. So: Earlier, you added: findReasons($this->_client); just above one of the trigger_error statements. Please add: findReasons($this->_client); just above the other two instances of trigger_error.
  17. If there is, I am not aware of a tutorial. The first step is to create a collection of options. This collection will eventually be assigned to products. In admin, Product Options, Option Groups, add a new group. For example, Power Plug. Then click Save. On the Option Attributes tab, select Power Plug from the drop-down selector. Enter a new attribute. For example, US 110V. Click the little green circle with white plus. Enter a second attribute. For example, EU 220V. Click the little green circle with white plus. Save. The second step is to assign options to products. In admin, Products, click the Edit icon for a product you want to add options to. On the Options tab, select the option you want to assign to this product. From the Add New Option drop-down selector, choose Power Plug: US 110V. If this product has a different price for this style, you can enter a price differential or an absolute price. For now, leave blank. Click the little green circle with white plus. Keep doing this for a few more options. Save. You should now see these options listed on the product's details page on the storefront. The next step is to pass these Product Options over to the Options Matrix table. The Options Matrix table allows for distinct stock levels, product codes, and UPC codes. Edit the product and on the Options tab, check the checkboxes for each option you want to appear in the Options Matrix table. Save & Reload. Fill in the Options Matrix table. Save. There will be an additional step of adding the UPC Code to the information displayed to the admin, warehouse crew, and accountant. We can do that shortly. Add-ons as "related items" can be solved with a plug-in module. Look through the Plugins on the Marketplace.
  18. A couple of questions: In the directory map provided, there is a /modules/ folder inside the /modules/ folder. What is in here? In the FedEx settings screen, are there any entries on the Allowed Zones or Disabled Zones? If so, delete them. Using a programmer's text editor, open the file /modules/shipping/FedEx/shipping.class.php: Near line 216, find: } else { trigger_error('FedEx Error: No shipping quotes could be obtained for '.$this->_basket['delivery_address']['postcode'].', '.$this->_basket['delivery_address']['country_iso'], E_USER_WARNING); } Change to: } else { findReasons($this->_client); trigger_error('FedEx Error: No shipping quotes could be obtained for '.$this->_basket['delivery_address']['postcode'].', '.$this->_basket['delivery_address']['country_iso'], E_USER_WARNING); } Near line 123, find: public function calculate() { After that, ADD: function findReasons($soapClient) { if(!is_object($soapClient)) return false; $GLOBALS['debug']->debugMessage("Request :<br>", htmlentities($soapClient->__getLastRequest()), "<br>"); $GLOBALS['debug']->debugMessage("Response :<br>", htmlentities($soapClient->__getLastResponse()), "<br>"); }
  19. "There was no FedEx folder." Inconceivable. If not, there wouldn't have been an admin control panel to have entered your account settings. Unless the folder was not in the /modules/shipping/ folder, but in a different folder under /modules/. We can look into the edits to the module's code I mentioned earlier, but please, for now, make the changes in the FedEx control panel as mentioned and see what happens. Although debug is enabled, by having only your IP address in the adjacent field, only you get to see it. See the Personal Message for my IP.
  20. In the Kurouto template content.product.php: Find the OPTIONS array block: {if is_array($OPTIONS)} <div class="options"> {foreach from=$OPTIONS item=option} {if $option.type == '0'} <div> <label for="option_{$option.option_id}" class="return">{$option.option_name}{if $option.price} ({$option.symbol}{$option.price}){/if}{if $option.required} *{/if}</label> <span><select name="productOptions[{$option.option_id}]" id="option_{$option.option_id}" class="textbox {if $option.required}required{/if}"> <option value="">{$LANG.form.please_select}</option> {foreach from=$option.values item=value} <option value="{$value.assign_id}">{$value.value_name}{if $value.price} ({$value.symbol}{$value.price}){/if}</option> {/foreach} </select> </span> </div> {else} <div> <label for="option_{$option.option_id}" class="return">{$option.option_name}{if $option.price} ({$option.symbol}{$option.price}){/if}{if $option.required} *{/if}</label> <span> {if $option.type == '1'} <input type="text" name="productOptions[{$option.option_id}][{$OPT.assign_id}]" id="option_{$option.option_id}" class="textbox {if $option.required}required{/if}" /> {elseif $option.type == '2'} <textarea name="productOptions[{$option.option_id}][{$OPT.assign_id}]" id="option_{$option.option_id}" class="textbox {if $option.required}required{/if}"></textarea> {/if} </span> </div> {/if} {/foreach} </div> {/if} Change to: {if is_array($OPTIONS)} <div class="options"> {foreach from=$OPTIONS item=option} {* This section for one to many values per group. *} {if $option.type == Catalogue::OPTION_SELECT}{* '0' *} <div> <label for="option_{$option.option_id}" class="return">{$option.option_name}{if $option.price} ({$option.symbol}{$option.price}){/if}{if $option.required} *{/if}</label> <span class="right"> <select name="productOptions[{$option.option_id}]" id="option_{$option.option_id}" class="textbox {if $option.required}required{/if}"> <option value="">{$LANG.form.please_select}</option> {foreach from=$option.values item=value} <option value="{$value.assign_id}">{$value.value_name}{if $value.price} ({$value.symbol}{$value.price}){/if}</option> {/foreach} </select> </span> </div> {elseif $option.type == Catalogue::OPTION_RADIO}{* '4' *} <div> <label for="option_{$option.option_id}" class="return">{$option.option_name}{if $option.price} ({$option.symbol}{$option.price}){/if}{if $option.required} *{/if}</label> {foreach from=$option.values item=value} <span class="left"><input type="radio" name="productOptions[{$option.option_id}]" value="{$value.assign_id}" id="option_{$option.option_id}" /><span style="vertical-align: 15%;">&nbsp;&nbsp;{$value.value_name}{if $value.price} ({$value.symbol}{$value.price}){/if}</span></span> {/foreach} </div> {elseif $option.type == Catalogue::OPTION_CHECKBOX}{* '5' *} <div> <label for="option_{$option.option_id}" class="return">{$option.option_name}{if $option.price} ({$option.symbol}{$option.price}){/if}{if $option.required} *{/if}</label> {foreach from=$option.values item=value} <span class="left"><input type="checkbox" name="productOptions[{$option.option_id}]" value="{$value.assign_id}" id="option_{$option.option_id}" />&nbsp;&nbsp;{$value.value_name}{if $value.price} ({$value.symbol}{$value.price}){/if}</span> {/foreach} </div> {* This section for entry boxes. *} {else} <div> <label for="option_{$option.option_id}" class="return">{$option.option_name}{if $option.price} ({$option.symbol}{$option.price}){/if}{if $option.required} *{/if}</label> <span class="right"> {if $option.type == Catalogue::OPTION_TEXTBOX}{* '1' *} <input type="text" name="productOptions[{$option.option_id}][{$OPT.assign_id}]" id="option_{$option.option_id}" class="textbox {if $option.required}required{/if}" /> {elseif $option.type == Catalogue::OPTION_TEXTAREA}{* '2' *} <textarea name="productOptions[{$option.option_id}][{$OPT.assign_id}]" id="option_{$option.option_id}" class="textbox {if $option.required}required{/if}"></textarea> {/if} </span> </div> {/if} {/foreach} </div> {/if} Then, in the Kurouto CSS file common.css: Find near line 521: #product_detail > .options div label.return+span { display: block; margin-top: 3px; text-align: right; } Change to: #product_detail > .options div span.right { /* label.return+ */ display: block; margin-top: 3px; text-align: right; } #product_detail > .options div span.left { /* label.return */ display: block; margin-top: 3px; margin-left: 40px; text-align: left; }
  21. From your picture of the View Product store page, I will conclude you are running Kurouto. Kurouto does not understand radio button option choosers. Let me work with the Kurouto skin to add radio buttons.
  22. I do not know what the "optional color of green" is that you are referring to. The PDF you provided at the start seems to show a skin other than Foundation or e-Scalar.
  23. However, looking at the module settings screen, I see a couple of (probably) bad entries. The Origin Info is asking for the State two-letter code, not the complete spelled out name, and is asking for the two-letter Country code, not the complete spelled out name. Try SC and US.
  24. In the FedEx shipping module folder, there is a file named shipping.class.php. Open this file for editing. (Use the File Editor available as a tool in your hosting account control panel, or some other programmer's text editor.) Near the bottom of the file, you will find some statements that begin with: trigger_error('FedEx Error: At the end of these statements you have either: E_USER_ERROR); or E_USER_WARNING); Make sure these statements (three of them) have the E_USER_WARNING); ending. I would like for you to implement the code changes as described here: https://github.com/cubecart/v6/issues/1430 In admin, Store Settings, Advanced tab, enable Debugging and enter your IP address in the adjacent field (www.whatismyip.com). Finally, in /classes/debug.class.php, near line 425, find: Find: case E_USER_WARNING: $type = 'Warning'; $log = false; break; Change to: case E_USER_WARNING: $type = 'Warning'; $log = true; break; Then, when checking out and you do not get a rate from FedEx, look at the bottom of the page for any mention of a reason. There may also be any reason why logged in admin, Error Log, System Error Log tab.
  25. No and Yes. No, in that there is no functionality built into CubeCart that will allow for the editing of skin template files. Yes, in that there is an editor to compose Documents, Product Descriptions, Category Descriptions, Email Contents, the Copyright in the footer, and a "Store is Offline" message. Please us a programmer's text editor if you are comfortable coding HTML, or you may use a program such as Dreamweaver (but only the latest couple of versions as anything prior attempts to build a complete web page) that allows for developing incomplete pages as CubeCart's template files are only sections of a page.
×
×
  • Create New...