Forums / Developer / Acces option fields

Acces option fields

Author Message

Albert Hornos

Tuesday 10 May 2005 3:30:53 am

Hi, another time!
I've another problem (what new!!) I extend datatype ezoption and I include a field quantity to manage the stock for each option. Now I want decrease this stock when the costumer confirm the order.
Ok, I can do it if I put an integer like attribute of product, but I can't do it if the quantity is a field of an option because I don't know how could I access to change this field in the option.
This is my code now and I put ????????????? at the space that I don't know how to do.

Thanks!!!

function eZSimpleShippingType()
{
$this->eZWorkflowEventType( EZ_WORKFLOW_TYPE_SIMPLESHIPPING_ID, ezi18n( 'kernel/workflow/event', "Simple shipping" ) );
$this->setTriggerTypes( array( 'shop' => array( 'confirmorder' => array ( 'before' ) ) ) );
}

function execute( &$process, &$event )
{
$ini =& eZINI::instance( 'workflow.ini' );

$cost = $ini->variable( "SimpleShippingWorkflow", "ShippingCost" );
$description = $ini->variable( "SimpleShippingWorkflow", "ShippingDescription" );

$parameters = $process->attribute( 'parameter_list' );
$orderID = $parameters['order_id'];

$order =& eZOrder::fetch( $orderID );

// Here start de stock's decrease
$productCollection = $order->productCollection();
$ordereditems = $productCollection->itemList();
foreach ($ordereditems as $item){
$contentObject = $item->contentObject();
$contentObjectVersion =& $contentObject->version( $contentObject->attribute( 'current_version' ) );
$contentObjectAttributes =& $contentObjectVersion->contentObjectAttributes();
foreach (array_keys($contentObjectAttributes) as $key){
$contentObjectAttribute =& $contentObjectAttributes[$key];
$contentClassAttribute =& $contentObjectAttribute->contentClassAttribute();
$contentClassAttributeID = $contentClassAttribute->attribute('id' );
$contentClassAttributeVersion = $contentClassAttribute->attribute('version' );
// Each attribute has an attribute called 'name' that identifies it.
echo ($contentClassAttribute->attribute("name"));
if ($contentClassAttribute->attribute("name") == "cantidad"){
$contentObjectAttribute->setAttribute("data_int", (($contentObjectAttribute->attribute("value"))-1));
$contentObjectAttribute->store();
}
if ($contentClassAttribute->attribute("name") == "opcion"){????????????????????????????????????????}
}
}
//Here finish the decrease

$orderItems = $order->attribute( 'order_items' );
$addShipping = true;

foreach ( array_keys( $orderItems ) as $key )
{
$orderItem =& $orderItems[$key];
if ( $orderItem->attribute( 'description' ) == $description )
{
$addShipping = false;
break;
}
}
if ( $addShipping )
{
$orderItem = new eZOrderItem( array( 'order_id' => $orderID,
'description' => $description,
'price' => $cost,
'vat_is_included' => true,
'vat_type_id' => 1 )
);
$orderItem->store();
}
return EZ_WORKFLOW_TYPE_STATUS_ACCEPTED;
}
}

eZWorkflowEventType::registerType( EZ_WORKFLOW_TYPE_SIMPLESHIPPING_ID, "ezsimpleshippingtype" );

?>

Joe Lancros

Thursday 08 April 2010 7:02:11 am

Hey Albert,

I have a similar problem to yours. Did you ever find a way of decreasing the stock for a specific product option?

Joe

eZ debug

Timing: Jan 30 2025 21:24:42
Script start
Timing: Jan 30 2025 21:24:42
Module start 'content'
Timing: Jan 30 2025 21:24:42
Module end 'content'
Timing: Jan 30 2025 21:24:42
Script end

Main resources:

Total runtime0.2098 sec
Peak memory usage8,192.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0084 587.8281370.3047
Module start 'content' 0.00840.0178 958.13281,001.3750
Module end 'content' 0.02620.1835 1,959.50783,900.8984
Script end 0.2097  5,860.4063 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00452.1534200.0002
Check MTime0.00130.6187200.0001
Mysql Total
Database connection0.00080.377010.0008
Mysqli_queries0.108551.73801410.0008
Looping result0.00100.49531390.0000
Template Total0.183187.310.1831
Template load0.00070.351310.0007
Template processing0.182486.929810.1824
Override
Cache load0.00050.229210.0005
Sytem overhead
Fetch class attribute can translate value0.00160.763110.0016
XML
Image XML parsing0.00020.114310.0002
General
dbfile0.01436.8176200.0007
String conversion0.00000.003430.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs