Make pagination theme overridable on a per theme basis, instead of hardcoding the layout in system/library/pagination.php
Also, make (# Pages) text "plural sensitive" (if there is just 1 page of results it should say (1 page), and only when there are more pages it should say (# pages)
Also, make (# Pages) text "plural sensitive" (if there is just 1 page of results it should say (1 page), and only when there are more pages it should say (# pages)
Feature Request.
Catalogue Mode
Blog Page
Improved Affiliate System
Catalogue Mode
Blog Page
Improved Affiliate System
Yes, each state has the ability to create their own tax laws in an attempt to be more confusing and harder to manage than their neighbors.Johnathan wrote:Zipcode-based tax systems aren't accurate for the entire U.S. tax system, which is why I think Xsecrets mentioned it would take so long to set up.
In Sunny California, we have a state tax of 7.25%. If the ship to address is in the same district as your business, and if the district has an additional tax, we are required to collect it. For Los Angeles County (where I am located), I need to collect an additional 1.50%
Store owners are not obligated to collect taxes for other districts that they ship to. If they do collect the tax though, they must pay it. The consumer is expected to pay a use tax on their own.
So, with that all said, I managed to hack together a solution by adding a postcode table that joins the zone table:
Code: Select all
mysql> select * from zone_postcode limit 5;
+------------------+---------+----------+
| zone_postcode_id | zone_id | postcode |
+------------------+---------+----------+
| 1 | 3624 | 90001 |
| 2 | 3624 | 90002 |
| 3 | 3624 | 90003 |
| 4 | 3624 | 90004 |
| 5 | 3624 | 90005 |
+------------------+---------+----------+
I also extended the geo_zone table by adding a postcode_flag.
Code: Select all
mysql> select * from geo_zone;
+-------------+------------------------------+------------------------------+---------------------+---------------------+---------------+
| geo_zone_id | name | description | date_modified | date_added | postcode_flag |
+-------------+------------------------------+------------------------------+---------------------+---------------------+---------------+
| 3 | UK VAT Zone | UK VAT | 2010-02-26 22:33:24 | 2009-01-06 23:26:25 | 0 |
| 4 | UK Shipping | UK Shipping Zones | 2010-12-15 15:18:13 | 2009-06-23 01:14:53 | 0 |
| 5 | US Shipping | US Shipping | 0000-00-00 00:00:00 | 2011-12-10 14:20:37 | 0 |
| 6 | CA Sales Tax | California Sales Tax | 0000-00-00 00:00:00 | 2011-12-10 14:21:38 | 0 |
| 7 | Los Angeles County Sales Tax | Los Angeles County Sales Tax | 2011-12-12 13:14:13 | 2011-12-10 14:25:55 | 1 |
+-------------+------------------------------+------------------------------+---------------------+---------------------+---------------+
5 rows in set (0.00 sec)
I didn't bother building in the forms to manage the data in the admin (just went into SQL).
I then altered tax.php to use the new fields. Actually I rewrote the getRates function call as some of the code appeared to be duplicated.
Code: Select all
public function getRates($value, $tax_class_id) {
$tax_rates = array();
$country_id = 0;
$zone_id = 0;
$postcode = '';
if ($this->customer->isLogged()) {
$customer_group_id = $this->customer->getCustomerGroupId();
} else {
$customer_group_id = $this->config->get('config_customer_group_id');
}
if ($this->shipping_address) {
$country_id = $this->shipping_address['country_id'];
$zone_id = $this->shipping_address['zone_id'];
$postcode = $this->shipping_address['postcode'];
}elsif ($this->payment_address){
$country_id = $this->payment_address['country_id'];
$zone_id = $this->payment_address['zone_id'];
$postcode = $this->payment_address['postcode'];
}elsif ($this->store_address){
$country_id = $this->store_address['country_id'];
$zone_id = $this->store_address['zone_id'];
$postcode = $this->store_address['postcode'];
}
$q = "SELECT tr2.tax_rate_id, tr2.name, tr2.rate, tr2.type, tr1.priority ";
$q = $q . "FROM " . DB_PREFIX . "tax_rule tr1 ";
$q = $q . "LEFT JOIN " . DB_PREFIX . "tax_rate tr2 ON (tr1.tax_rate_id = tr2.tax_rate_id) ";
$q = $q . "INNER JOIN " . DB_PREFIX . "tax_rate_to_customer_group tr2cg ON (tr2.tax_rate_id = tr2cg.tax_rate_id) ";
$q = $q . "LEFT JOIN " . DB_PREFIX . "zone_to_geo_zone z2gz ON (tr2.geo_zone_id = z2gz.geo_zone_id) ";
$q = $q . "LEFT JOIN " . DB_PREFIX . "geo_zone gz ON (tr2.geo_zone_id = gz.geo_zone_id) ";
$q = $q . "LEFT JOIN " . DB_PREFIX . "zone_postcode zpc ON (z2gz.zone_id = zpc.zone_id and gz.postcode_flag = '1') ";
$q = $q . "WHERE tr1.tax_class_id = '" . (int)$tax_class_id . "' ";
$q = $q . "AND tr1.based = 'shipping' ";
$q = $q . "AND tr2cg.customer_group_id = '" . (int)$customer_group_id . "' ";
$q = $q . "AND z2gz.country_id = '" . (int)$country_id . "' ";
$q = $q . "AND (z2gz.zone_id = '0' OR z2gz.zone_id = '" . (int)$zone_id . "' ";
$q = $q . "AND (z2gz.zone_id = '0' OR gz.postcode_flag='0' OR (gz.postcode_flag= '1' ";
$q = $q . "AND zpc.postcode='" . (char)$postcode . "'))) ";
$q = $q . "ORDER BY tr1.priority ASC";
$tax_query = $this->db->query($q);
foreach ($tax_query->rows as $result) {
$tax_rates[$result['tax_rate_id']] = array(
'tax_rate_id' => $result['tax_rate_id'],
'name' => $result['name'],
'rate' => $result['rate'],
'type' => $result['type'],
'priority' => $result['priority']
);
}
$tax_rate_data = array();
foreach ($tax_rates as $tax_rate) {
if (isset($tax_rate_data[$tax_rate['tax_rate_id']])) {
$amount = $tax_rate_data[$tax_rate['tax_rate_id']]['amount'];
} else {
$amount = 0;
}
if ($tax_rate['type'] == 'F') {
$amount += $tax_rate['rate'];
} elseif ($tax_rate['type'] == 'P') {
$amount += ($value / 100 * $tax_rate['rate']);
}
$tax_rate_data[$tax_rate['tax_rate_id']] = array(
'tax_rate_id' => $tax_rate['tax_rate_id'],
'name' => $tax_rate['name'],
'type' => $tax_rate['type'],
'amount' => $amount
);
}
return $tax_rate_data;
}
e.g.
Code: Select all
public function setShippingAddress($country_id, $zone_id, $postcode) {
$this->shipping_address = array(
'country_id' => $country_id,
'zone_id' => $zone_id,
'postcode' => $postcode
);
I would love to see something like this get picked up for v1.6 as it allows for taxes to be managed as they are today or extended down to the postcode level if desired. And if it makes into the core, I don't have to worry about future compatibilitySub-Total: $365.00
First-Class Mail Package: $1.71
CA Sales Tax: $26.46
LA County District Tax: $5.48
Total: $398.65
It seems this is the proper thread to post suggestions for R.next.
1. One Big thing were things could be much easier for developers would be better support for plugins. Instead of having to use VQmod or code hacks, all plugins should reside in a separate folder (like vqmod does it, but shouldn't be on-the-fly code hacks, because these are dependent on core version and how code changes from version to version, and then they could break). One really smart approach (very MVC, as well) is used by the YII framework, should you guys have a chance to give it a look. All plugins/modules are droped in their folders and hooked/included in the bootstrap config file.
2. wishlist: customer should be able to make wishlists public (and share them), and admins should be able to see wishlists from customers in a more simple manner (like orders are displayed) and eventually with some statistics on what's on the wishlists.
1. One Big thing were things could be much easier for developers would be better support for plugins. Instead of having to use VQmod or code hacks, all plugins should reside in a separate folder (like vqmod does it, but shouldn't be on-the-fly code hacks, because these are dependent on core version and how code changes from version to version, and then they could break). One really smart approach (very MVC, as well) is used by the YII framework, should you guys have a chance to give it a look. All plugins/modules are droped in their folders and hooked/included in the bootstrap config file.
2. wishlist: customer should be able to make wishlists public (and share them), and admins should be able to see wishlists from customers in a more simple manner (like orders are displayed) and eventually with some statistics on what's on the wishlists.
Id love to see the ability to set a URL to an external image rather than have to upload the image for product.
We have suppliers that keep all the product images fresh and current - by being able to say product1 image is http://www.supplier.com/images/product1.jpg we would always have the newest image
it would also save on space since we have over 25000 products. Not having to host them would be great!!!!
It would also make adding new items a very simply CSV flat file import where we can specify the Image URL.
It could be a flag on the product - Image: URL or Local. Set that and then set the image location in the cvs... just an idea..
but please... a number of us really need to be able to do this. 3dcart allows this, and presta shop does to some extent.
We have suppliers that keep all the product images fresh and current - by being able to say product1 image is http://www.supplier.com/images/product1.jpg we would always have the newest image
it would also save on space since we have over 25000 products. Not having to host them would be great!!!!
It would also make adding new items a very simply CSV flat file import where we can specify the Image URL.
It could be a flag on the product - Image: URL or Local. Set that and then set the image location in the cvs... just an idea..
but please... a number of us really need to be able to do this. 3dcart allows this, and presta shop does to some extent.
just out of curiosity how would you propose handling the image sizes if you don't host the images? do you just set the image size and let the browser butcher it?mmreed wrote:Id love to see the ability to set a URL to an external image rather than have to upload the image for product.
We have suppliers that keep all the product images fresh and current - by being able to say product1 image is http://www.supplier.com/images/product1.jpg we would always have the newest image
it would also save on space since we have over 25000 products. Not having to host them would be great!!!!
It would also make adding new items a very simply CSV flat file import where we can specify the Image URL.
It could be a flag on the product - Image: URL or Local. Set that and then set the image location in the cvs... just an idea..
but please... a number of us really need to be able to do this. 3dcart allows this, and presta shop does to some extent.
OpenCart commercial mods and development http://spotonsolutions.net
Layered Navigation
Shipment Tracking
Vehicle Year/Make/Model Filter
Xsecrets wrote:just out of curiosity how would you propose handling the image sizes if you don't host the images? do you just set the image size and let the browser butcher it?mmreed wrote:Id love to see the ability to set a URL to an external image rather than have to upload the image for product.
We have suppliers that keep all the product images fresh and current - by being able to say product1 image is http://www.supplier.com/images/product1.jpg we would always have the newest image
it would also save on space since we have over 25000 products. Not having to host them would be great!!!!
It would also make adding new items a very simply CSV flat file import where we can specify the Image URL.
It could be a flag on the product - Image: URL or Local. Set that and then set the image location in the cvs... just an idea..
but please... a number of us really need to be able to do this. 3dcart allows this, and presta shop does to some extent.
No clue. I'm not a programmer. But prestashop and 3dcart have this so maybe the devs can get ideas there. There surely has to be a way open cart can accomplish this.
If the image is remote, you could also set the width and height when displaying it, based on opencart's settings.
however, it's always better practice to host your own images. What is the supplier updates their site, and changes their url structure? You're going to go through and update all your image references? not scalable....
however, it's always better practice to host your own images. What is the supplier updates their site, and changes their url structure? You're going to go through and update all your image references? not scalable....
In this case the supplier puts those images out for this purpose and states the structure will not change. They encourage using URL to keep images fresh.alex1 wrote:If the image is remote, you could also set the width and height when displaying it, based on opencart's settings.
however, it's always better practice to host your own images. What is the supplier updates their site, and changes their url structure? You're going to go through and update all your image references? not scalable....
Feature requests
1. A option to make groups have a discount thats sitewide. Ive made a mod of it today its in general, but i would like to see it builtin as default
2. Commenting the code so its easier to build modules and edit the core
3. Options to add extra tabs to product page.
4. Oh yeah, to save the seo urls somehwere so its easy to extract. (need this for a site that list products)
Ill update this if i get anymore ideas
1. A option to make groups have a discount thats sitewide. Ive made a mod of it today its in general, but i would like to see it builtin as default
2. Commenting the code so its easier to build modules and edit the core
3. Options to add extra tabs to product page.
4. Oh yeah, to save the seo urls somehwere so its easy to extract. (need this for a site that list products)
Ill update this if i get anymore ideas
http://www.gbtrading.se - villalarm, hemlarm och gsmlarm.
This is quite possible with the small change in the image.php. All it has to do is, it has to look for the image url pattern and decide if this is a local image or the remote image.mmreed wrote:Id love to see the ability to set a URL to an external image rather than have to upload the image for product.
We have suppliers that keep all the product images fresh and current - by being able to say product1 image is http://www.supplier.com/images/product1.jpg we would always have the newest image
it would also save on space since we have over 25000 products. Not having to host them would be great!!!!
It would also make adding new items a very simply CSV flat file import where we can specify the Image URL.
It could be a flag on the product - Image: URL or Local. Set that and then set the image location in the cvs... just an idea..
but please... a number of us really need to be able to do this. 3dcart allows this, and presta shop does to some extent.
Regarding re-sizing, I use phpThumb to resize the images from the external url and works great.
Ofcourse, the one I implemented is much more complex than simple url. My client wanted to use the CDNs for image and it could be any number of CDNs.
Extensions: Multi-vendor extension
Shipping Modules: SuperShip Pro
Multi-Vendor Marketplace:Opencartmarketplace.com
IceCat to Opencart: Import millions of IceCat products to Opencart
Problem with this is that everyone could figure out who your supplier is by looking at your image URL. I've found more than one new supplier this way so you are just adding to your competition.mmreed wrote:In this case the supplier puts those images out for this purpose and states the structure will not change. They encourage using URL to keep images fresh.alex1 wrote:If the image is remote, you could also set the width and height when displaying it, based on opencart's settings.
however, it's always better practice to host your own images. What is the supplier updates their site, and changes their url structure? You're going to go through and update all your image references? not scalable....
Running Opencart v3.0.3.2 with multi-stores and the default template from https://www.labeshops.com which has links to all my stores.
In my case its not an issue - there are only 3 or 4 suppliers. (Magic and Illusion items)labeshops wrote:Problem with this is that everyone could figure out who your supplier is by looking at your image URL. I've found more than one new supplier this way so you are just adding to your competition.mmreed wrote:In this case the supplier puts those images out for this purpose and states the structure will not change. They encourage using URL to keep images fresh.alex1 wrote:If the image is remote, you could also set the width and height when displaying it, based on opencart's settings.
however, it's always better practice to host your own images. What is the supplier updates their site, and changes their url structure? You're going to go through and update all your image references? not scalable....
All customers even know who they are and often look over the supplier sites to request things to be special ordered.
Hi! :-)
I'm really looking for a feature that conects and filters payment and shipping.
I mean when the customer selects for example shipping by DHL let him pay only with credit card (and the other methods make unclickable), or when the customer selects Royal Post let him pay by bank transfer or by Pay Pall (and also the other methods make unclickable).
I'm sure that there are some solutions but i don't really know any. Thanks for all tips.
Tomáš
I'm really looking for a feature that conects and filters payment and shipping.
I mean when the customer selects for example shipping by DHL let him pay only with credit card (and the other methods make unclickable), or when the customer selects Royal Post let him pay by bank transfer or by Pay Pall (and also the other methods make unclickable).
I'm sure that there are some solutions but i don't really know any. Thanks for all tips.
Tomáš
TomasZet: I've now released a Restrict Payment Methods extension that allows you to limit the availability of payment methods based on the shipping method selected.
It also can restrict based on customer group, currency, cart quantity/sub-total/volume/weight/date, category, manufacturer, or product.
It also can restrict based on customer group, currency, cart quantity/sub-total/volume/weight/date, category, manufacturer, or product.
multi languages for manufacture!
May i do a suggestion?
What i am missing is i think very important when you advertise in Adwords or other platforms and that is the option to create custom landing pages. Not with menus on top or on the left but pure blank landing pages that we can customize through the WYSIWYG editors. It would be really great to integrate a buy now button directly into these landing pages.
That way we can test and have the best optimized pages for selling products through different channels.
This is what i am missing.
Thanks
What i am missing is i think very important when you advertise in Adwords or other platforms and that is the option to create custom landing pages. Not with menus on top or on the left but pure blank landing pages that we can customize through the WYSIWYG editors. It would be really great to integrate a buy now button directly into these landing pages.
That way we can test and have the best optimized pages for selling products through different channels.
This is what i am missing.
Thanks
Please, please, please...
The ability to have Product 'weight' and especially individual Product Option 'weight' trigger the Shipping (and Handling) options/requirements during checkout, while having the 'Requires Shipping' option set to "No".
I sell music and would like to offer physical options (like CD and Vinyl, with weights > 0) alongside digital options (like FLAC and MP3, with weights = 0), but I would only like the shipping/handling components of the cart & checkout to be present when a weight > 0 is detected in the cart.
To present it another way, the result I'm after could be achieved if you could control the 'Requires Shipping' feature at the product option level.
The ability to have Product 'weight' and especially individual Product Option 'weight' trigger the Shipping (and Handling) options/requirements during checkout, while having the 'Requires Shipping' option set to "No".
I sell music and would like to offer physical options (like CD and Vinyl, with weights > 0) alongside digital options (like FLAC and MP3, with weights = 0), but I would only like the shipping/handling components of the cart & checkout to be present when a weight > 0 is detected in the cart.
To present it another way, the result I'm after could be achieved if you could control the 'Requires Shipping' feature at the product option level.
Who is online
Users browsing this forum: No registered users and 18 guests