begin migrating Product data into variants

This commit is contained in:
Colin Kuskie 2008-04-30 23:28:57 +00:00
parent fe20db884a
commit 1b6d7a9e7e
2 changed files with 30 additions and 8 deletions

View file

@ -622,11 +622,40 @@ EOSQL
$toSku->finish;
$rmWobject->finish;
$session->db->write(q!update asset set className='WebGUI::Asset::Sku::Product' where className='WebGUI::Asset::Wobject::Product'!);
##Build a variant for each Product.
my $productQuery = $session->db->read(<<EOSQL1);
SELECT p.assetId, p.price, p.productNumber, p.revisionDate, a.title, s.sku
FROM Product AS p
JOIN assetData AS a
on p.assetId=a.assetId and p.revisionDate=a.revisionDate
JOIN sku AS s
on p.assetId=s.assetId and p.revisionDate=s.revisionDate
WHERE p.revisionDate=(SELECT MAX(revisionDate) FROM Product)
EOSQL1
while (my $productData = $productQuery->hashRef()) {
##Truncate title to 30 chars for short desc
my $product = WebGUI::Asset::Wobject::Product->new($session, $productData->{assetId}, 'WebGUI::Asset::Sku::Product', $productData->{revisionDate});
$product->setCollateral('Product_variants', 'varSku', {
varSku => $productData->{productNumber},
mastersku => $product->get('sku'),
shortdesc => substr($productData->{title}, 0, 30),
price => $productData->{price},
weight => 0,
quantity => 0,
});
}
$productQuery->finish;
## Remove productNumber from Product;
$session->db->write("alter table Product drop column productNumber");
$session->db->write('alter table Product drop column productNumber');
## Remove price from Product since prices are now stored in variants
$session->db->write('alter table Product drop column price');
## Update config file, deleting Wobject::Product and adding Sku::Product
$session->config->deleteFromArray('assets', 'WebGUI::Asset::Wobject::Product');
$session->config->addToArray('assets', 'WebGUI::Asset::Sku::Product');
unlink '../../lib/WebGUI/Asset/Wobject/Product.pm';
return;
}

View file

@ -81,13 +81,6 @@ sub definition {
hoverHelp=>$i18n->get('62 description'),
defaultValue=>'PBtmpl0000000000000056'
},
price=>{
label=>$i18n->get(10),
hoverHelp=>$i18n->get('10 description'),
tab => "shop",
fieldType=>"text",
defaultValue=>undef
},
image1=>{
tab => "properties",
fieldType=>"image",