NAME
XML::BMEcat - Perl extension for generating BMEcat-XML
SYNOPSIS
use XML::BMEcat;
my $BMEcat = XML::BMEcat->new();
$BMEcat->setOutfile("catalog.xml");
DESCRIPTION
XML::BMEcat is a simple module to help in the generation of BMEcat-XML.
Basically, you create an XML::BMEcat object and then call the related
methods with the necessary parameters.
METHODS
The following methods are provided:
HEADER
Writes the BMEcat-Header:
createHeader
my $Header = $BMEcat->creatHeader();
setTransaction
$Header->setTransaction($TRANSACTION, [ 'PREV_VERSION' => $prev_version ]);
setGeneralInfo
$Header->setGeneralInfo( 'GENERATOR_INFO' => $GENERATOR_INFO, 'LANGUAGE' => $LANGUAGE, 'CATALOG_ID' => $CATALOG_ID, 'CATALOG_VERSION' => $CATALOG_VERSION, 'CATALOG_NAME' => $CATALOG_NAME, 'DATE' => $DATE, 'TIME' => $TIME, 'CURRENCY' => $CURRENCY, 'MIME_ROOT' => $MIME_ROOT );
setBuyerInfo
$Header->setBuyerInfo( 'BUYER_ID' => $BUYER_ID, 'BUYER_NAME' => $BUYER_NAME, 'NAME' => $NAME, 'STREET' => $STREET, 'ZIP' => $ZIP, 'CITY' => $CITY, 'COUNTRY' => $COUNTRY, 'EMAIL' => $EMAIL, 'URL' => $URL );
setAgreementInfo
$Header->setAgreementInfo( 'AGREEMENT_ID' => $AGREEMENT_ID, 'AGREEMENT_start_date' => $AGREEMENT_start_date, 'AGREEMENT_end_date' => $AGREEMENT_end_date );
setSupplierInfo
$Header->setSupplierInfo( 'SUPPLIER_ID' => $SUPPLIER_ID, 'SUPPLIER_NAME' => $SUPPLIER_NAME, 'NAME' => $NAME, 'NAME2' => $NAME2, 'CONTACT' => $CONTACT, 'STREET' => $STREET, 'ZIP' => $ZIP, 'CITY' => $CITY, 'COUNTRY' => $COUNTRY, 'PHONE' => $PHONE, 'FAX' => $FAX, 'EMAIL' => $EMAIL, 'URL' => $URL );
setConfigInfo
$Header->setConfigInfo( 'CHAR_SET' => $CHAR_SET, 'DTD' => $DTD, 'VERBOSE' => 1 );
writeHeader
$BMEcat->writeHeader();
FEATURE_SYSTEM
Writes the BMEcat - Feature-System:
setConfigInfo
$Header->setConfigInfo('FEATURE_SYSTEM_NAME' => $FEATURE_SYSTEM_NAME);
creatFeatureSystem
my $FeatureSystem = $BMEcat->creatFeatureSystem();
addFeatureGroup
$FeatureSystem->addFeatureGroup( 'ftg1', 'ft1' => $unit_a, 'ft2' => $unit_b, 'ft3' => $unit_c, ); $FeatureSystem->addFeatureGroup( 'ftg2', 'ft4' => $unit_d, 'ft5' => $unit_e, 'ft6' => $unit_f, );
writeFeatureSystem
$BMEcat->writeFeatureSystem();
GROUP_SYSTEM
Writes the BMEcat - Catalog-Structure:
setConfigInfo
$Header->setConfigInfo('GROUP_SYSTEM_ID' => $GROUP_SYSTEM_ID);
creatGroupSystem
my $GroupSystem = $BMEcat->creatGroupSystem();
creatCatalogGroup
my $CatalogGroup = $GroupSystem->creatCatalogGroup($group_id);
getCatalogGroup
my $CatalogGroup = $GroupSystem->getCatalogGroup($group_id);
setData
$CatalogGroup->setData( 'PARENT' => 0, 'NAME' => $name02, 'SORT' => 5 ); $CatalogGroup = $GroupSystem->creatCatalogGroup('04'); $CatalogGroup->setData( 'PARENT' => 2, 'NAME' => $name04, 'SORT' => 5 ); $CatalogGroup = $GroupSystem->creatCatalogGroup('06'); $CatalogGroup->setData( 'PARENT' => 2, 'NAME' => $name06, 'SORT' => 10 ); $CatalogGroup = $GroupSystem->creatCatalogGroup('08'); $CatalogGroup->setData( 'PARENT' => 4, 'NAME' => $name08, 'SORT' => 5, 'LEAF' => 1 );
addDescription
$CatalogGroup->addDescription($Description08);
addMime
$CatalogGroup->addMime($type, $source, $purpose); $CatalogGroup = $GroupSystem->creatCatalogGroup('10'); $CatalogGroup->setData( 'PARENT' => 4, 'NAME' => $name10, 'SORT' => 10, 'LEAF' => 1 );
writeGroupSystem
$BMEcat->writeGroupSystem() and print "not ";
ARTICLES
Writes the BMEcat - Article-Entrys:
General
creatArticleSystem
my $ArticleSystem = $BMEcat->creatArticleSystem();
writeArticleSystem
$BMEcat->writeArticleSystem();
creatArticle
my $Article = $ArticleSystem->creatArticle($index);
getArticel
my $Article = $ArticleSystem->getArticle($index);
setMainInfo
$Article->setMainInfo('mode' => $mode, 'SUPPLIER_AID' => $SUPPLIER_AID );
Features
setFeatureGroup
$Article->setFeatureGroup($group_id);
setFeatureValues
$Article->setFeatureValues( $ft_val1, $ft_val2, $ft_val3, $ft_val4 );
Details
addMime
Several mimes are possible. See the BMEcat-spezification for more details. $Article->addMime( $mime_type, $mime_source, $mime_purpose );
setDetails
All in the BMEcat-spezification described elements are allowed to set in free order and at several times. $Article->setDetails( 'DESCRIPTION_SHORT' => $DESCRIPTION_SHORT, 'DESCRIPTION_LONG' => $DESCRIPTION_LONG, 'EAN' => $EAN, . . . , 'SPECIAL_TREATMENT_CLASS' => [ $type => $val ], . . . );
Orderdetails
All in the BMEcat-spezification described elements are allowed to set in free order
and at several times.
$Article->setOrderDetails(
'ORDER_UNIT' => $ORDER_UNIT,
'CONTENT_UNIT' => $CONTENT_UNIT,
'NO_CU_PER_OU' => $NO_CU_PER_OU
. . .
);
Pricedetails
Several prices and types are possible. See the BMEcat-Spezification for more details.
* setPriceDetails
$Article->setPriceDetails(
'valid_start_date' => $start_date,
'valid_end_date' => $end_date
);
* addPrice
$Article->addPrice(
'price_type' => $price_type,
'PRICE_AMOUNT' => $price_amount,
'PRICE_CURRENCY' => $currency,
'TAX' => $tax
);
ART_GROUP_MAP
Maps Articles to the BMEcat - Catalog-Structure:
* map2Group
$Article->map2Group($group_id);
* writeArticleGroupMap
$BMEcat->writeArticleGroupMap();
TAIL
writeTail
Writes the Tail and closes the BMEcat - Document $BMEcat->writeTail();
BUGS
At this time not usable:
- FEATURE_GROUP_NAME
- DAILY_PRICE
LIMITATIONS
Not all BMEcat-features have been implemented yet.
See method-descriptions for detailed informations.
SEE ALSO
ACKNOWLEDGMENTS
I'd like to thank Larry Wall, Randolph Schwarz, Tom Christiansen,
Gurusamy Sarathy and many others for making Perl what it is today.
I had the privilege of working with a really excellent teacher,
Robert Krüger. He have guided me through the entire process and his
criticisms where always right on.
COPYRIGHT
Copyright 2000 by Frank-Peter Reich (fp$), fpreich@cpan.org
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
3 POD Errors
The following errors were encountered while parsing the POD:
- Around line 1149:
You can't have =items (as at line 1153) unless the first thing after the =over is an =item
- Around line 1173:
You can't have =items (as at line 1177) unless the first thing after the =over is an =item
- Around line 1234:
Non-ASCII character seen before =encoding in 'Krüger.'. Assuming CP1252