VM Products CSV Ultimate
Joomla Component for Virtuemart. CSV Bulk Product import/export/update/sync for VirtueMart. Accepts unlimited product images with optional thumbnails. Also handles category and manufacturer images. Supports Product Tax assignment by ID or name. Supports Product Discount assignment by ID or name. Featured Product switch. Published switch. Parent/Child Product Association. Records product weight, dimensions, stock quantity, and availability. Creates Manufacturer if not exists. Creates Category if not exists. Supports Virtuemart custom plugin plg_vmcustom_downloadable. Pro version improved. By eKerner.com - technical developer
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_gtin : Barcode.
- product_mpn : Manufacturer Product Number.
- 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_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_price_override : Override price. Optional. Usually used for temporary price or discount price not matching a discount rule. Effected by price_override_mode. See also product_discount_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.
- related_category_names : A pipe (|) delimited list of category names to be assigned as related categories.
- related_product_skus : A pipe (|) delimited list of product SKUs to be assigned as related products.
- 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.
- custom_variants : Sets Cart Variant Custom Fields for pre VM version 3, or multivariants in VM version 3+. For example if the associated product comes in colors red and blue, as well as sizes small and large, and there is an extra 1 dollar charge for large size, then set this field to 'Color:Red:0|Color:Blue:0|Size:Small:0|Size:Large:1'. NOTES: For each declared type (eg: Color, Size) if a Cart Variant custom field does not exists with the same name then it will be created. The characters pipe (|) and colen (:) cannot appear in the title, value, or price of the custom field. Any existing variant values will be deleted and the product will be left with the variants defined in the CSV.
- custom_strings : Sets string attributes, eg: 'Requires assembly:Yes|Carbon neutral:50%'. NOTES: For each declared title (eg: Requires assembly, Carbon neutral) if a Cart Variant custom field does not exists with the same name then it will be created. The characters pipe (|) and colen (:) cannot appear in the title or value of the custom field. Any existing cart variant values will be deleted and the product will be left with the custom strings defined in the CSV.
- [ 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).
- Improved management of multi variants in VM3.
- Support for custom field 'Strings'.
- Improved support for price management incuding override price.
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.
- The interface currently supprts English, Italian, Spanish, and French (The manual is only in 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 offer you a free extension plus credit you and links to you from the admin screens.
- 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).
- VM Products CSV !ULTIMATE! is the Pro version formerly known as VirtueMart CSV Pro.
Get 50 Cents for every review you add.