VM Products CSV !ULTIMATE!

Email
Joomla Component VM Products CSV !ULTIMATE! v3 by ekerner.com
Rating: 5/5
Price:
Base price with tax: $40.00
Sales price: $36.00
In Stock
Description

Joomla Component VM Products CSV !ULTIMATE! v3 by ekerner.com

Joomla! 2.5 Series Joomla! 3.0 Ready Popular

Supported Fields ...

  • virtuemart_vendor_id : The vendor id, A positive integer. Defaults to 1. If you have a single user multi vendor VM configuration then you can edit all vendor products, manufacturers, and categories. If you have a multi user multi vendor VM configuration then an admin can still edit all products however I dont recommend sharing the VM Products CSV components with your users or they will be able to edit each others products. For a multi user multi vendor VM configuration you would need to make a screen to enable you users to submit their csv changes to the admin or to an app the extends/employs VM Products CSV.
  • product_sku : If you want to update an existing record then you need to reference it by SKU in your CSV, and also assure that mode 'Update' or mode 'Syncronize' is selected. Otherwise SKU is optional and one will be generated if not provided. If you provide a duplicate SKU and mode 'Add' is selected then the record will be skipped.
  • product_parent_sku : To declare a record as a child product then add its parent SKU here. Parents and children may appear in any order.
  • product_name : The title of your product. Is also used for page titles and meta data where not provided.
  • product_alias : Also known as 'slug' and used for SEO friendly URLs. No spaces or non URL characters. Example: 'my-product-name'. If not provided then a product alias (slug) will be made from the product name.
  • product_short_desc : Short description of product as per VM field settings.
  • product_desc : Description of product as per VM field settings.
  • meta_description : If not provided then meta description is made from sitename and product name.
  • meta_keywords : If not provided then meta keywords are made from product name.
  • product_price : The 'product base price ' as you would enter it into VM. So if you normally convert for tax inclusion, like price_less_10_percent_tax = (price / 11) * 10, then that is the price to enter, plus in this example you would also need to set product_tax_id_or_name.
  • product_currency_code : Eg: 'AUD'. Currencies entered must be installed and enabledi in your Joomla/VM.
  • manufacturer_name : The name of the manufacturer. If named manufacturer doesnt exist, and 'Allow manufacturer creation' is checked, then the manufacturer will be created with manufacturer_desc and manufacturer_image.
  • manufacturer_desc : The description for the manufacturer. If manufacturer_name exists and manufacturer_desc is both provided and different to the current manufacturer_desc then it will be updated.
  • manufacturer_image : The image media file url for the manufacturer. If manufacturer_name exists and manufacturer_image is both provided and different to the current manufacturer_image then it will be updated.
  • category_id : Positive integer Category ID. If you are updating and existing category then it is required. You may assign a category to a product via category_id or category_name.
  • category_name : The name of the category. If named category doesnt exist, and 'Allow category creation' is checked, then the category will be created with category_desc and category_image. If category_id is provided and category_name is differnt to the current category_name then it will be updated.
  • category_desc : Category description. If the category exists and the category_desc is provided and the category_desc differs from the current category_desc then it will be updated.
  • category_image : Category image media file url. If the category exists and the category_image is provided and the category_image differs from the current category_image then it will be updated.
  • category_parent_id_or_name : The Category ID or Category Name of the parent category. If provided then it will be used. A value of '0' means 'Top level category'. If you are searching for a category by name and you do not know the parent id, or if the named category parent was created by a previous record in the same CSV file (and so you cannot yet know the id), then leave this blank/empty.
  • product_tax_id_or_name : If you wish to apply a tax to this product then pass its ID or Name here. Eg: '1' or 'Australian GST'. You need to first login to your Virtuemart administrator, create the tax, and record/note its ID or Name.
  • product_discount_id_or_name : If you wish to apply a discount/offer to this product then pass its ID or Name here. Eg: '2' or '10 Percent Discount'. You need to first login to you Virtuemart administrator, create the discount/offer, and record/note its ID or Name.
  • product_weight : Product weight as floating point number, and as per product_weight_unit.
  • product_weight_unit : Product weight unit of measurement. Eg: 'kg', 'g'.
  • product_length : Product length as floating point number, and as per product_lwh_unit.
  • product_width : Product width as floating point number, and as per product_lwh_unit.
  • product_height : Product height as floating point number, and as per product_lwh_unit.
  • product_lwh_unit : Product length/width/height unit of measurement. Eg: 'mm', 'cm'.
  • product_stock_quantity : The number of items in stock. Defaults to '0'.
  • product_availability : As per VM Product Availability. Defaults to 'In Stock'.
  • featured_product : Set to '1', 'y', or 'yes' for featured product.
  • published : Set to '1', 'y', or 'yes' for pulished/enabled product. Defaults to '1' if not set.
  • downloadable_media_id : Only applies if you have plg_vmcustom_downloadable installed (See Virtuemart Downloadable Products). The Media ID of a 'For Sale' Virtuemart Media File. Refer your Joomla Admin -> Virtuemart -> Shop -> Media Files. Defaults to '0'.
  • downloadable_order_states : Only applies if you have plg_vmcustom_downloadable installed (See Virtuemart Downloadable Products). A comma separated list of valid Virtuemart order status names. Example: 'Confirmed, Shipped'. You can find your order status names in your Joomla Admin -> Virtuemart -> Configration -> Order Statuses (I do not recommend editing them as it can mess up some plugins). Defaults to '' which translates to 'Confirmed, Shipped' if downloadable_media_id is set.
  • downloadable_expiry : Only applies if you have plg_vmcustom_downloadable installed (See Virtuemart Downloadable Products). The period after which your download link expires. Format: 'quantity period ', where quantity is an iteger from 0 to 11, and period is 'days', 'weeks', 'months', or 'years'. Examples: '2 days', '6 weeks', '1 years', or '1 year'. Defaults to '' which translates to 'never expires' if downloadable_media_id is set.
  • [ product_image_1 . . . : Product image media file url. Add as many as you like. Best to upload images first.
  •   [ product_thumbnail_1 . . . ] ] : Product image media thumb url. Best to leave this blank and let VM generate the thumbnail images. Best to upload images first if you are going to use it.
... implying unlimited images, just increment the number, ie: product_image_

 

Features ...

  • Supports 3 import modes: 'Add' (Only add products if they dont exist by SKU), 'Update' ('Add' plus update existing products by SKU), and 'Syncronize' ('Update' plus delete products not found in the CSV).
  • Accepts unlimited product images with optional thumbnails. Also handles category and manufacturer images, see below.
  • Validates each row before performing database operations.
  • Generates Product and Category page title, meta description, and meta keywords where not supplied using names and descriptions.
  • Supports multi-lingual Joomla/Virtuemart configurations. Uses VM languages settings. NOTE: In mode 'Syncronize' the deletion of products is NOT biased by language.
  • Validates passed ids (eg: virtuemart_vendor_id, manufacturer_id, product_currency_code, product_tax_id_or_name, product_discount_id_or_name, etc) and takes all precautions to prevent inserting invalid data into the database.
  • Supports creation of Category if not exists. Accepts name, description, image location, and parent id or name. Also allows for update of category name, description, image location, and parent category via CSV.
  • Creates Manufacturer if not exists. Accepts name, description, and image location. Also allows for update of manufacturer description and image location via CSV.
  • 'Featured Product' switch.
  • 'Published' switch.
  • Allows Parent Child Product association.
  • Supports Product Tax assignment by ID or name
  • Supports Product Discount assignment by ID or name
  • Records product weight, dimensions, stock quantity, and availability.
  • Checks for existing rows and performs update or insert operations.
  • Warns if you add an image that hasnt yet been added to the media gallery.
  • Supports Virtuemart custom plugin plg_vmcustom_downloadable (See Virtuemart Downloadable Products).

 

Notes ...

 

  • When adding images: Its best if the images are uploaded first. You can add as many images as you like to the end of the CSV rows and the thumbnails are optional. Example: product_image_1,product_thumbnail_1,product_image_2,product_image_3,product_thumbnail_3. Its best to leave the image_thumbnail_N fields blank and set VM to generate thumbnails automatically.
  • CSV format is standard: record delimiter = newline, field delimiter = comma, field escape character = double quote.
  • Currently (June 2013) only supprts English. If you make other language files (legitimate translations by a human proficient in the language, not an app) please pass them to me. If I use your lang file(s) I will refund your app purchase price.
  • Some fields are named like *_id_or_name. For such fields, you cannot pass a numeric name or it will be treated as an id. So for example: if you had a category named '1' (not very useful in document retrieval like search engines but you can do it), with the id of '27', and you want to reference that category as a parent category, then in the category_parent_id_or_name field you need to enter '27' not '1'.
  • Record conflict may occur if: You are adding products, youve supplied SKUs for said products in the CSV, you already have products in your shop, and the import mode is 'Update' or 'Syncronize'. To avoid record/product conflicts select import mode 'Add' when first adding products under these conditions.
  • You can delete all products by selecting mode 'Syncronize' and importing a blank/template CSV (containing just the header row).
  • Products/records without SKUs will be assigned a unique one made from a combination of the product name abbreviation and unused numbers.
  • Works in multi-vendor store but if you want to allow your vendors to use this then you need to have me add some stuff. Like for one it doesnt check that the current user has a vendor id and it matches the supplied vendor id. So what Im saying is that your vendors - if allowed to use this as an admin - could edit each others products, which Im guessing you dont want. So to re-iterate: If you for some reason have the need to let your vendors use this app then we need to make some tweaks first.
  • I made this into a nice plugin that embeds into the admin vm products manager view. It seemed ideal at first however contained overrides with many hacks to various admin vm products MVCs, and since so many (Id say most) vm shop templates and plugins have vm class and tmpl overrides, it was causing conflicts - like many vm plugins already do. Its not the fault of vm though, the problem is in the design of the Joomla framework and its overriding techniques. Anyways as a component it is standalone and uneffecting on other extensions (although obviously it expects Virtuemart).
  • Fields starting with 'downloadable_' are only used if plg_vmcustom_downloadable is installed (See Virtuemart Downloadable Products).
 
Have fun,
Eugene Kerner.

Copyright © 2014 eKerner.com

Downloadable Product
If you have purchased this product then you will need to login to reveal your download link.

Reviews

Thursday, 09 January 2014
Thank you so much for your perseverance and support to fix the problems on my end; I have not come across someone in IT who is so dedicated to ensure that everything will work for the client. I cannot recommend Eugene enough and this fantastic product.

Again thanks for your dedication and help, you are brilliant.
Michelle Christensen
Monday, 14 October 2013
We purchased VM Products CSV !ULTIMATE! to import and manage a product database in our Virtuemart shop. The product is straight forwards and easy to use, and very easy to get value from. We had one small technical issue, but received excellent support directly from the developer, who helped resolve our issue quickly and effectively. Very happy!
Ralph

Receive Product Updates

Logged in members may subscribe to receive product updates. LOGIN

Select Currency

Display Products on Your Website !..

VM API !MULTI! v1.0 by ekerner.com

Displays Virtuemart Products, Categories, and Manufacturers via remote requests like cURL, AJAX, etc.
Using this component and the methods documented below anyone can easily display and promote the products listed in this online store on any website that they have administrative access to.
Simply copy and paste the below code samples into your websites HTML pages, its that easy!.

Features ...

  • Support Virtuemart Products, Categories, and Manufacturers.
  • Works for any GET request like cURL, AJAX, file_get_contents(), etc.
  • Responses in HTML or JSON.
  • Products by category, popularity, featured, latest, random, recent.
  • Product limits configurable.
  • HTML layouts adjustable by products per row.
  • JSON returns links to details pages and related media.
  • Includes a Joomla module enabling site administrators to publish this information to any position.

Products API ...

Products Request Fields ...

  • option: com_vm_api (required).
  • view: products (required).
  • group: featured|latest|popular|random|recent (default: random).
  • cat: [int] - a category id (default: 0 meaning all).
  • type: html|json (default: html).
  • cols: [int] - only applies if 'type' is 'html' (default: 2).
  • max: [int] (default: 0 meaning all).
  • lang: [string] - a language code like 'en-GB' (default: [site language]).
  • price: [bool] - display prices (default: 1).

The below are live examples using the Products API installed on this site.

Both examples get 4 random products ...

HTML Products API

Get 4 random products in HTML format, 2 per row ...

URL: http://shop.ekerner.com/index.php?option=com_vm_api&view=products&group=random&type=html&cols=2&max=4

CODE: (Copy and paste this into any webpage): -

						
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<div id="vm_random_products">Loading ...</div>
<script type="text/javascript">
//<![CDATA[
jQuery.ajax({
	url: 'http://shop.ekerner.com/index.php',
	data: {
		option: 'com_vm_api',
		view: 'products',
		group: 'random',
		type: 'html',
		cols: 2,
		max: 4
	},
	dataType: 'html',
	success: function(data){
		jQuery('#vm_random_products').html(data);
	}
});
//]]>
</script>
					

OUTPUT: -

Loading ...

JSON Products API

Get 4 random products in JSON format ...

URL: http://shop.ekerner.com/index.php?option=com_vm_api&view=products&group=random&type=json&max=4

FIELDS RETURNED: virtuemart_vendor_id, virtuemart_product_id, slug, product_sku, product_name, product_s_desc, product_desc, product_url, product_in_stock, product_availability, product_special, customtitle, metadesc, metakey, metarobot, metaauthor, product_box, product_price, product_override_price, virtuemart_category_id, category_name, virtuemart_manufacturer_id, mf_name, mf_url, mf_email, mf_desc, canonical, link, file_url_thumb, file_url, product_tax, product_discount, product_currency

CODE: (Copy and paste this into any webpage): -

						
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<div id="vm_random_products_json">Loading ...</div>
<script type="text/javascript">
//<![CDATA[
jQuery.ajax({
	url: 'http://shop.ekerner.com/index.php',
	data: {
		option: 'com_vm_api',
		view: 'products',
		group: 'random',
		type: 'json',
		max: 4
	},
	dataType: 'json',
	success: function(data){
		var products = 'JSON contains details for: -<ul>';
		for (var i in data) 
			if (data[i].product_name)
				products += '<li><b>'+data[i].product_name+': </b>'+
						data[i].product_s_desc+'</li>';
		products += '</ul>';
		jQuery('#vm_random_products_json').html(products);
	}
});
//]]>
</script>
					

OUTPUT: -

Loading ...

Categories API ...

Categories Request Fields ...

  • option: com_vm_api (required).
  • view: categories (required).
  • cat: [int] - parent category id (default: 0 meaning all).
  • type: html|json (default: html).
  • lang: [string] - a language code like 'en-GB' (default: [site language]).
  • vendor: [int] - the vendor id (default: 1).

The below are live examples using the Categories API installed on this site.

Both examples get all categories ...

HTML Categories API

Get all categories in HTML format ...

URL: http://shop.ekerner.com/index.php?option=com_vm_api&view=categories&type=html

CODE: (Copy and paste this into any webpage): -

						
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<div id="vm_categories">Loading ...</div>
<script type="text/javascript">
//<![CDATA[
jQuery.ajax({
	url: 'http://shop.ekerner.com/index.php',
	data: {
		option: 'com_vm_api',
		view: 'categories',
		type: 'html'
	},
	dataType: 'html',
	success: function(data){
		jQuery('#vm_categories').html(data);
	}
});
//]]>
</script>
					

OUTPUT: -

Loading ...

JSON Categories API

Get all categories in JSON format ...

URL: http://shop.ekerner.com/index.php?option=com_vm_api&view=categories&type=json

FIELDS RETURNED: virtuemart_category_id, slug, category_name, category_description, category_url, customtitle, metadesc, metakey, media_url, media_url_thumb, children

CODE: (Copy and paste this into any webpage): -

						
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<div id="vm_categories_json">Loading ...</div>
<script type="text/javascript">
//<![CDATA[
jQuery.ajax({
	url: 'http://shop.ekerner.com/index.php',
	data: {
		option: 'com_vm_api',
		view: 'categories',
		type: 'json'
	},
	dataType: 'json',
	success: function(data){
		var categories = 'JSON contains details for: -<ul>';
		for (var i in data) 
			if (data[i].category_name)
				categories += '<li><b>'+data[i].category_name+': </b>'+
						data[i].category_description+'</li>';
		categories += '</ul>';
		jQuery('#vm_categories_json').html(categories);
	}
});
//]]>
</script>
					

OUTPUT: -

Loading ...

Manufacturers API ...

Manufacturers Request Fields ...

  • option: com_vm_api (required).
  • view: manufacturers (required).
  • max: [int] - (default: 0 meaning all).
  • cols: [int] - only applies if type is html (default: 2).
  • show: image|text|all - only applies if type is html (default: all).
  • type: html|json (default: html).
  • lang: [string] - a language code like 'en-GB' (default: [site language]).

The below are live examples using the Manufacturers API installed on this site.

Both examples get maximum 4 manufacturers ...

HTML Manufacturers API

Get max 4 manufacturers in HTML format, 2 per row ...

URL: http://shop.ekerner.com/index.php?option=com_vm_api&view=manufacturers&type=html&cols=2&max=4

CODE: (Copy and paste this into any webpage): -

						
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<div id="vm_manufacturers">Loading ...</div>
<script type="text/javascript">
//<![CDATA[
jQuery.ajax({
	url: 'http://shop.ekerner.com/index.php',
	data: {
		option: 'com_vm_api',
		view: 'manufacturers',
		type: 'html',
		cols: 2,
		max: 4
	},
	dataType: 'html',
	success: function(data){
		jQuery('#vm_manufacturers').html(data);
	}
});
//]]>
</script>
					

OUTPUT: -

Loading ...

JSON Manufacturers API

Get max 4 manufacturers in JSON format ...

URL: http://shop.ekerner.com/index.php?option=com_vm_api&view=manufacturers&type=json&max=4

FIELDS RETURNED: virtuemart_manufacturer_id, slug, mf_name, mf_desc, mf_email, mf_url, mf_website, media_url, media_url_thumb, mf_category_name

CODE: (Copy and paste this into any webpage): -

						
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<div id="vm_manufacturers_json">Loading ...</div>
<script type="text/javascript">
//<![CDATA[
jQuery.ajax({
	url: 'http://shop.ekerner.com/index.php',
	data: {
		option: 'com_vm_api',
		view: 'manufacturers',
		type: 'json'
	},
	dataType: 'json',
	success: function(data){
		var manufacturers = 'JSON contains details for: -<ul>';
		for (var i in data) 
			if (data[i].mf_name)
				manufacturers += '<li><b>'+data[i].mf_name+': </b>'+
						data[i].mf_desc+'</li>';
		manufacturers += '</ul>';
		jQuery('#vm_manufacturers_json').html(manufacturers);
	}
});
//]]>
</script>
					

OUTPUT: -

Loading ...

Notes ...

  • Your web pages may already have the jQuery lib included in which case you may be able to omit the following line from the code sniplets ...
    						
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
    					
  • The HTML code examples may be used as they are however the JSON code examples should be edited first to better express the HTML including the links etc.
    The JSON APIs are designed to give developers greater control over how the elements are rendered and therefore much more related information is returned than by the HTML API calls (See the "FIELDS RETURNED" headings).
    You are welcome to hire my dev team to help you with your custom designs if so desired.
Have fun,
Eugene Kerner.

Copyright © 2014 eKerner.com

eKerner Logo

Contact Us

Call us at:
+61 415 607 770

Email us at:
shop@ekerner.com

Leave us feedback:
Feedback Form

Message Us:
Enquiry Form

facebook

twitter

rss