Default Product Values
How do you change the default product values? I would like the default product quantity to be 1.
|
Re: Default Product Values
Quote:
Please specify your X-Cart version. It would be useful to add it into your signature. Thanks. |
Re: Default Product Values
5126 I think
|
Re: Default Product Values
Dave,
Are you talking about the default quantity on the product page when a customer adds the item to the cart? If so, I believe the default is 1. To change this number go to the Admin area of your X-Cart and navigate to the details page for an individual product. On this page select the "Inventory tracking" tab. Here you can change the Minimum purchase quantity. |
Re: Default Product Values
When you are adding a new product to the product catalog. The product has default values like quantity 1000
|
Re: Default Product Values
Quote:
To change the default would require a custom module in XC5. When creating the new product you have a lot of the standard options on the "Add product" page in admin, including the "Quantity in stock" field. I guess you want to streamline the adding products and deal with as few of these fields as possible. Another option after adding all of the products for a category is to look at the products as a list by clicking into the category. There you can change the "In stock" value for multiple products with one Save action. Additionally, if importing products you can set this value to whatever you want in your import file. Even if adding the products by hand and wanting a quick way to bulk edit, you could export, edit the .csv, and re-import with the new values. Hope some of this helps. |
Re: Default Product Values
Ok Thank you Brian. Maybe having a button on the bottom of the product page "Set as product defaults" might be a nice feature to add to x-cart.
|
Re: Default Product Values
Quote:
To change the default quantity you should change the value of the AMOUNT_DEFAULT_INV_TRACK constant in the /classes/XLite/Model/Inventory.php file (line 49) By default it is Code:
const AMOUNT_DEFAULT_INV_TRACK = 1000; Code:
const AMOUNT_DEFAULT_INV_TRACK = 1; |
Re: Default Product Values
Quote:
Igor, If he upgrades XC5 will these changes remain? |
Re: Default Product Values
Yes! Thank you! I'll try tonight and get back to you.
|
Re: Default Product Values
Quote:
As you said earlier, any change to X-Cart logic must be implemented as a module in order to avoid it getting rolled back after upgrade. |
Re: Default Product Values
That worked! Thank you!
|
Re: Default Product Values
Quote:
|
Re: Default Product Values
This fix doesn't seem to be working anymore. Is there a new place to put this value?
|
Re: Default Product Values
As far as I see the constant is still there (in the most recent 5.3.2.x version).
However, I think a better way of changing the default stock level is decorating the \XLite\Model\Product::getDefaultAmount() method, not AMOUNT_DEFAULT_INV_TRACK constant itself. Something like this: PHP Code:
|
Re: Default Product Values
Ok which file do I need to append this to? Am I adding code to a file or modifying existing code?
|
Re: Default Product Values
You should never edit existing files. Custom modification must be done as isolated modules with new files - this will help you to adapt the changes for future X-Cart versions.
The above is for a new PHP script - classes/XLite/Module/DEV_ID/MODULE_ID/Model/Product.php (you should replace DEV_ID and MODULE_ID with your ones). Of course, you should also add Main.php script as per the documentation. |
Re: Default Product Values
I'm sorry I've never done this before. Can you please provide a procedure?
|
Re: Default Product Values
Please follow this tutorial:
http://devs.x-cart.com/en/getting_started/step_1_-_creating_simplest_module.html You are to create a new module and add the file that I posted the source code for above. |
Re: Default Product Values
Ok I added the new module and enabled it. The Main.php is configured in /classes/XLite/Module/JRG/Quantity directory. I created the new product.php file in the /classes/XLite/Module/JRG/Quantity/Model/ directory. I redeployed the store after the module was created as well. The default quantity is still showing 1000. Do I need a reference from the Main.php to the product.php file?
|
Re: Default Product Values
Quote:
You don't need a reference. But did you enable your custom module on the Modules page in the back end? Also, did you replace "DEV_ID" with "JRG", and "MODULE_ID" with "Quantity" in the module's source code? You may also check if there is product.php file in the var/run/classes/XLite/Module/JRG/Quantity/Model/ directory and whether it is not empty. |
Re: Default Product Values
Here is the product.php file located in /opt/bitnami/apps/xcart/htdocs/classes/XLite/Module/JRG/Quantity/Model
// File: classes/XLite/Module/JRG/Quantity/Model/Product.php namespace XLite\Module\JRG\Quantity\Model; class Product extends \XLite\Model\Product implements \XLite\Base\IDecorator { /** * Default qty value to show to customers * * @return integer */ public function getDefaultAmount() { return 1; } } Here is the main.php file located in /opt/bitnami/apps/xcart/htdocs/classes/XLite/Module/JRG/Quantity <?php namespace XLite\Module\JRG\Quantity; abstract class Main extends \XLite\Module\AModule { /** * Just Retro Games * * @return string */ public static function getAuthorName() { return 'Just Retro Games'; } /** * Module name * * @return string */ public static function getModuleName() { return 'Default Item Quantity'; } /** * Get module major version * * @return string */ public static function getMajorVersion() { return '5.3'; } /** * Module version * * @return string */ public static function getMinorVersion() { return 0; } /** * Module description * * @return string */ public static function getDescription() { return 'Sets the default item quantity to 1 instead of 1000'; } There is no model subfolder in this directory. /opt/bitnami/apps/xcart/htdocs/var/run/classes/XLite/Module/JRG/Quantity |
Re: Default Product Values
1 Attachment(s)
Quote:
It sounds as you missed the "<?php" in the first line in that file, so XC5 doesn't consider this as a PHP script and ignores it. Anyway, I've tried the code on my local installation and I see that overriding the method is not enough. You should also change \XLite\Model\Product::__constructor($data) as the $amount property is initialised with the constant, not with the value returned by the method. So, you should override it in the constructor as well. Please check the attached custom module - it should work for you. |
Re: Default Product Values
That worked! Thank you very much Alex!
|
All times are GMT -8. The time now is 01:39 PM. |
Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.