It is a two step process as I outlined in my previous email. From your
source XML/CSV, you create (via an external utility) the
catalog/categories/sub-categories into an ofbiz-compatible "catalog" XML
file.
You then test import the "catalog" XML file, OVER and OVER again until it
looks proper. Why do you do this? Because it will require tweaking.
Doing
this in the ofbiz GUI would be tedious and error prone.
You have to create "seed" compatible data. After the catalog looks good,
you repeat the same process (create an ofbiz-compatible "product" XML
file)
with the products.
You really don't need the OfbizDataModelBook at this point, my previous
email showed you the tables and the order.
Good luck.
On Mon, Nov 20, 2017 at 10:54 PM, Javier <droin...@gmail.com> wrote:
Thanks Mike,
One of the biggest problems in my current program is that it does not
support SubCategories.
So I have to reorganize all the Categories.
So at the moment it would be enough for me to load all the products in a
category (for example, the Uncategorised family) and then I would be
organizing it from Ofbiz.
I have to familiarize myself with the schema of the database. I have
been
studying a bit the OfbizDataModelBook.
Best regards.
2017-11-17 18:31 GMT+00:00 Mike <mz4whee...@gmail.com>:
Nothing is simple in ofbiz. There are a butt load of tables that
have to
be imported in ofbiz... for ONE category, and for ONE product, IN THE
CORRECT ORDER!!!
First, you have to pre-populate your categories. (example below)
Then you can add the products. (one product example below)
All this takes a lot of time organizing and analyzing in order to
understand the ofbiz schema.
For the XML you posted, you have to create a custom script (i.e.
perl/python/java) that reads each XML "row", and creates ofbiz XML
compatible "seed" file(s).
If you write your own script, vice relying on ofbiz tools, you have
absolute control over what exactly is imported, and no data limits.
Want
alternate URLs? What multi language support? Change your script.
In addition, when you are setting up a new ofbiz instance, you WILL be
importing the same seed (store) data (example below), over and over
again... This is why you must create ofbiz compatible "seed" data for
your
store. All the experts here know that.
"one category" example... "10000" is top level, "10001" is first
category.
<?xml version="1.0" encoding="UTF-8"?>
<entity-engine-xml>
<ProdCatalog prodCatalogId="10000" catalogName="Gallery"
useQuickAdd="N"
viewAllowPermReqd="N" purchaseAllowPermReqd="N"
createdStamp="2017-11-05
10:59:43"/>
<ProductCategory productCategoryId="10000"
productCategoryTypeId="CATALOG_CATEGORY" categoryName="Gallery"
description="Gallery" createdStamp="2017-11-05 10:59:43"/>
<ProdCatalogCategory prodCatalogId="10000" productCategoryId="10000"
prodCatalogCategoryTypeId="PCCT_BROWSE_ROOT" fromDate="2017-11-05
10:59:43"
createdStamp="2017-11-05 10:59:43"/>
<ProductCategory productCategoryId="Gallery_SEARCH"
productCategoryTypeId="SEARCH_CATEGORY" categoryName="Gallery Search"
description="Gallery Search" createdStamp="2017-11-05 10:59:43"/>
<ProdCatalogCategory prodCatalogId="10000"
productCategoryId="Gallery_SEARCH" prodCatalogCategoryTypeId="
PCCT_SEARCH"
fromDate="2017-11-05 10:59:43" createdStamp="2017-11-05 10:59:43"/>
<ProductStoreCatalog productStoreId="Gallery" prodCatalogId="10000"
fromDate="2017-11-05 10:59:43" createdStamp="2017-11-05 10:59:43"/>
<Content contentId="PROD_DESCRIPTION" contentTypeId="DOCUMENT"
contentName="Product Description" createdDate="2017-11-05 10:59:43"
createdStamp="2017-11-05 10:59:43"/>
<ProductCategory productCategoryId="10001"
productCategoryTypeId="CATALOG_CATEGORY"
primaryParentCategoryId="10000"
description="Games & Entertainment" createdStamp="2017-11-05
10:59:43"/>
<ProductCategoryRollup productCategoryId="10001"
parentProductCategoryId="10000" sequenceNum="1" fromDate="2017-11-05
10:59:43" createdStamp="2017-11-05 10:59:43"/>
<DataResource dataResourceId="10001Den"
dataResourceTypeId="ELECTRONIC_TEXT" localeString="en"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ElectronicText dataResourceId="10001Den" textData="Games &
Entertainment" createdStamp="2017-11-05 10:59:43"
createdTxStamp="2017-11-05 10:59:43"/>
<Content contentId="10001Den" contentTypeId="DOCUMENT"
dataResourceId="10001Den" description="DESCRIPTION en 10001"
localeString="en" createdDate="2017-11-05 10:59:43"
createdByUserLogin="admin" createdStamp="2017-11-05 10:59:43"
createdTxStamp="2017-11-05 10:59:43"/>
<ProductCategoryContent productCategoryId="10001" contentId="10001Den"
prodCatContentTypeId="CATEGORY_NAME" fromDate="2017-11-05 10:59:43"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ContentAssoc contentId="10001Den" contentIdTo="10001Den"
contentAssocTypeId="ALTERNATE_LOCALE" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<DataResource dataResourceId="10001Aen"
dataResourceTypeId="ELECTRONIC_TEXT" localeString="en"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ElectronicText dataResourceId="10001Aen"
textData="games-entertainment"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<Content contentId="10001Aen" contentTypeId="DOCUMENT"
dataResourceId="10001Aen" description="ALT_URL en 10001"
localeString="en"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ProductCategoryContent productCategoryId="10001" contentId="10001Aen"
prodCatContentTypeId="ALTERNATIVE_URL" fromDate="2017-11-05 10:59:43"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ContentAssoc contentId="10001Aen" contentIdTo="10001Aen"
contentAssocTypeId="ALTERNATIVE_URL" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
</entity-engine-xml>
"one product" example:
<?xml version="1.0" encoding="UTF-8"?>
<entity-engine-xml>
<Product productId="798936836182" productTypeId="FINISHED_GOOD"
primaryProductCategoryId="10002" internalName="798936836182"
brandName="SELECTSOFT GAMES" comments="JEWEL CASE EVERYONE"
smallImageUrl="/images/products/10000/1001MINIGOLF/small.jpg"
mediumImageUrl="/images/products/10000/1001MINIGOLF/medium.jpg"
largeImageUrl="/images/products/10000/1001MINIGOLF/large.jpg"
originalImageUrl="/images/products/10000/1001MINIGOLF/original.jpg"
detailImageUrl="/images/products/10000/1001MINIGOLF/detail.jpg"
inventoryMessage="Ships from NashVille" requireInventory="N"
weightUomId="WT_lb" weight=".350000" productWeight=".350000"
returnable="Y"
taxable="Y" chargeShipping="Y" isVirtual="N" isVariant="N"
requirementMethodEnumId="PRODRQM_DS" billOfMaterialLevel="0"
introductionDate="2007-06-14 00:00:00" salesDiscontinuationDate="
2038-01-01
00:00:00" createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
autoCreateKeywords="Y"/>
<ProductCategoryMember productCategoryId="10002"
productId="798936836182"
fromDate="2007-06-14 00:00:00" thruDate="2038-01-01 00:00:00"
sequenceNum="0" quantity="0" createdStamp="2017-11-05 10:59:43"/>
<ProductCategoryMember productCategoryId="Gallery_SEARCH"
productId="798936836182" fromDate="2007-06-14 00:00:00"
thruDate="2038-01-01 00:00:00" sequenceNum="0" quantity="0"
createdStamp="2017-11-05 10:59:43"/>
<ProductPrice productId="798936836182" productPriceTypeId="DEFAULT_
PRICE"
productPricePurposeId="PURCHASE" currencyUomId="USD"
termUomId="OTH_ea"
productStoreGroupId="_NA_" price="3.85" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"/>
<ProductPrice productId="798936836182" productPriceTypeId="LIST_PRICE
"
productPricePurposeId="PURCHASE" currencyUomId="USD"
termUomId="OTH_ea"
productStoreGroupId="_NA_" price="9.95" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"/>
<ProductPrice productId="798936836182" productPriceTypeId="WHOLESALE_
PRICE"
productPricePurposeId="PURCHASE" currencyUomId="USD"
termUomId="OTH_ea"
productStoreGroupId="_NA_" price="2.75" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"/>
<SupplierProduct productId="798936836182" partyId="Gallery"
availableFromDate="2017-11-05 10:59:43" supplierPrefOrderId="10_MAIN_
SUPPL"
standardLeadTimeDays="1" minimumOrderQuantity="1"
orderQtyIncrements="1"
unitsIncluded="1" quantityUomId="OTH_ea" currencyUomId="USD"
supplierProductName="1001 MINIGOLF CHALLENGE"
supplierProductId="1001MINIGOLF" canDropShip="Y" comments="Supplier
Comment" createdStamp="2017-11-05 10:59:43" lastPrice="3.85"/>
<GoodIdentification productId="798936836182"
goodIdentificationTypeId="UPCA" idValue="798936836182"
createdStamp="2017-11-05 10:59:43"/>
<ProductFacility productId="798936836182" facilityId="Gallery"
lastInventoryCount="9.000000" createdStamp="2017-11-05 10:59:43"/>
<DataResource dataResourceId="798936836182Den"
dataResourceTypeId="ELECTRONIC_TEXT" localeString="en"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ElectronicText dataResourceId="798936836182Den" textData="1001
MINIGOLF
CHALLENGE" createdStamp="2017-11-05 10:59:43"
createdTxStamp="2017-11-05
10:59:43"/>
<Content contentId="798936836182Den" contentTypeId="DOCUMENT"
dataResourceId="798936836182Den" description="DESCRIPTION en
798936836182"
localeString="en" createdDate="2017-11-05 10:59:43"
createdByUserLogin="admin" createdStamp="2017-11-05 10:59:43"
createdTxStamp="2017-11-05 10:59:43"/>
<ProductContent productId="798936836182" contentId="798936836182Den"
productContentTypeId="DESCRIPTION" fromDate="2017-11-05 10:59:43"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ContentAssoc contentId="798936836182Den"
contentIdTo="798936836182Den"
contentAssocTypeId="ALTERNATE_LOCALE" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ContentAssoc contentId="PROD_DESCRIPTION"
contentIdTo="798936836182Den"
contentAssocTypeId="SUB_CONTENT" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<DataResource dataResourceId="798936836182Aen"
dataResourceTypeId="ELECTRONIC_TEXT" localeString="en"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ElectronicText dataResourceId="798936836182Aen"
textData="1001-minigolf-challenge" createdStamp="2017-11-05 10:59:43"
createdTxStamp="2017-11-05 10:59:43"/>
<Content contentId="798936836182Aen" contentTypeId="DOCUMENT"
dataResourceId="798936836182Aen" description="ALT_URL en
798936836182"
localeString="en" createdDate="2017-11-05 10:59:43"
createdByUserLogin="admin" createdStamp="2017-11-05 10:59:43"
createdTxStamp="2017-11-05 10:59:43"/>
<ProductContent productId="798936836182" contentId="798936836182Aen"
productContentTypeId="ALTERNATIVE_URL" fromDate="2017-11-05 10:59:43"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ContentAssoc contentId="798936836182Aen"
contentIdTo="798936836182Aen"
contentAssocTypeId="ALTERNATIVE_URL" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<DataResource dataResourceId="798936836182Len"
dataResourceTypeId="ELECTRONIC_TEXT" localeString="en"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ElectronicText dataResourceId="798936836182Len" textData="Welcome to
the
largest mini-golf course ever" createdStamp="2017-11-05 10:59:43"
createdTxStamp="2017-11-05 10:59:43"/>
<Content contentId="798936836182Len" contentTypeId="DOCUMENT"
dataResourceId="798936836182Len" description="DESCRIPTION en
798936836182"
localeString="en" createdDate="2017-11-05 10:59:43"
createdByUserLogin="admin" createdStamp="2017-11-05 10:59:43"
createdTxStamp="2017-11-05 10:59:43"/>
<ProductContent productId="798936836182" contentId="798936836182Len"
productContentTypeId="LONG_DESCRIPTION" fromDate="2017-11-05
10:59:43"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ContentAssoc contentId="798936836182Len"
contentIdTo="798936836182Len"
contentAssocTypeId="ALTERNATE_LOCALE" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ContentAssoc contentId="PROD_DESCRIPTION"
contentIdTo="798936836182Len"
contentAssocTypeId="SUB_CONTENT" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<DataResource dataResourceId="798936836182Nen"
dataResourceTypeId="ELECTRONIC_TEXT" localeString="en"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ElectronicText dataResourceId="798936836182Nen" textData="1001
MINIGOLF
CHALLENGE" createdStamp="2017-11-05 10:59:43"
createdTxStamp="2017-11-05
10:59:43"/>
<Content contentId="798936836182Nen" contentTypeId="DOCUMENT"
dataResourceId="798936836182Nen" description="DESCRIPTION en
798936836182"
localeString="en" createdDate="2017-11-05 10:59:43"
createdByUserLogin="admin" createdStamp="2017-11-05 10:59:43"
createdTxStamp="2017-11-05 10:59:43"/>
<ProductContent productId="798936836182" contentId="798936836182Nen"
productContentTypeId="PRODUCT_NAME" fromDate="2017-11-05 10:59:43"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ContentAssoc contentId="798936836182Nen"
contentIdTo="798936836182Nen"
contentAssocTypeId="ALTERNATE_LOCALE" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
<ContentAssoc contentId="PROD_DESCRIPTION"
contentIdTo="798936836182Nen"
contentAssocTypeId="SUB_CONTENT" fromDate="2017-11-05 10:59:43"
createdDate="2017-11-05 10:59:43" createdByUserLogin="admin"
createdStamp="2017-11-05 10:59:43" createdTxStamp="2017-11-05
10:59:43"/>
</entity-engine-xml>
On Fri, Nov 17, 2017 at 1:43 AM, Javier <droin...@gmail.com> wrote:
Hi Jacques,
Yes, both, but I have problems in step 4:
1. connect to the Webtools application
2. go to the "Work With Data Files" screen
3. enter the path to the your definition file in the "Definition
Filename or URL" input field
4. click on the submit button
I have used this file
/opt/apache-ofbiz-16.11.03/framework/datafile/dtd/datafiles.xsd and
this
<data-file name="Product" separator-style="delimited"
type-code="UTF-8"
delimiter="	" text-delimiter=""
description="this takes the product data from doba file"
has-header="true">
<record name="Product">
<field name="productId" ignored="false" type="String"/>
<field name="primaryProductCategoryId" expression="true"
default-value="dropShip" type="String"/>
<field name="productTypeId" expression="true"
default-value="FINISHED_GOOD" type="String"/>
<field name="sku" ignored="true" type="String"/>
<field name="description" ignored="false" type="String"/>
<field name="categories" ignored="true" type="String"/>
<field name="image_url" ignored="true" type="String"/>
<field name="brandName" ignored="false" type="String"/>
<field name="longDescription" ignored="false"
type="String"/>
<field name="details" ignored="true" type="String"/>
<field name="weight" ignored="false" type="String"/>
<field name="weightUomId" expression="true"
default-value="WT_lb"
type="String"/>
<field name="dimensions" ignored="true" type="String"/>
<field name="going" ignored="true" type="String"/>
<field name="refurb" ignored="true" type="String"/>
<field name="freight" ignored="true" type="String"/>
<field name="productName" ignored="false" type="String"/>
<field name="map" ignored="true" type="String"/>
<field name="price" ignored="true" type="String"/>
<field name="msrp" ignored="true" type="String"/>
<field name="quantityIncluded" expression="true"
default-value="1"
type="String"/>
<field name="quantity" ignored="true" type="String"/>
<field name="est_avail" ignored="true" type="String"/>
<field name="expected_shipping_cost" ignored="true"
type="String"/>
<field name="expected_drop_ship_fee" ignored="true"
type="String"/>
<field name="upc" ignored="true" type="String"/>
<field name="item_id" ignored="true" type="String"/>
<field name="isVirtual" expression="true" default-value="N"
type="String"/>
<field name="isVariant" expression="true" default-value="N"
type="String"/>
</record>
</data-file>
but always I get this error "No <data-file> elements found in
file:/home/user/data-file.xml"
Best regards
2017-11-17 9:30 GMT+00:00 Jacques Le Roux <
jacques.le.r...@les7arts.com>
:
Le 17/11/2017 à 09:43, Javier H. a écrit :
On 2017-11-17 08:05, Michael Brohl <michael.br...@ecomify.de>
wrote:
Hi Javier,
why not directly export to the OFBiz datafile format?
Regards,
Michael
Am 17.11.17 um 09:03 schrieb Javier H.:
On 2017-11-14 08:21, "Javier H."<droin...@gmail.com> wrote:
On 2017-11-14 08:02, "pierre.gaudin" <
pierre.gau...@nereide.fr>
wrote:
On 14/11/2017 08:55, Javier H. wrote:
Hello,
I have to import about 95.000 products into Ofbiz (mysql
database).
I can import it to TXT or SQL formats, also to XLS but I
get a
error
because max is 65.000 rows.
What format do you recommend for import, TXT or SQL?
Best regards
Hi Javier
We used to import about 700 000 article for a customer.
We used XML import via XSLT transformation to do so. I don't
think
there
is a limit with xml import.
Pierre
Thank you Pierre,
I think that I can to export to XML, I have to check it.
Best regards
Hello,
I have exported the data to an XML file.
Something similar to this:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RECORDS>
<RECORD>
<ROW
CODE="1308051"
DESCR="DEMO PRODUCT"
PRICE="5,50"
TAX="21"
QUANTITY="40"
LASTPRICE="4,9"
TAXCODE="3"
PROVIDER="87"
CATEGORY="00099"
DATE="01012015"
/>
</RECORD>
.....
</RECORDS>
How can I make the definition file for this?
And how can I ignore the fields that I do not want to import?
(For
example DATE).
Best regards
Hi Michael,
Because I have no idea.
https://cwiki.apache.org/confluence/display/OFBIZ/OFBiz%27s+
Data+File+Tools
I'm testing Data File Tools, I added this
"/opt/apache-ofbiz-16.11.03/fr
amework/datafile/dtd/datafiles.xsd" to Definition Filename or
URL"
but
I
get this error:
No <data-file> elements found in file:/opt/apache-ofbiz-16.11.0
3/framework/datafile/dtd/datafiles.xsd
Best regards
Hi Javier,
Did you follow https://cwiki.apache.org/confluence/display/OFBIZ/
OFBiz's+
Data+File+Tools ?
Did you have a look at https://cwiki.apache.org/confl
uence/display/OFBIZ/Handling+of+External+data ?
HTH
Jacques
--
Saludos