Forums / Developer / Shop - custom options

Shop - custom options

Author Message

Norman Leutner

Tuesday 29 July 2008 9:12:04 am

We're currently working an a module which allows to add products to the basket with custom options. In this case the option is a relation of the product itself to make products more maintainable.

We're trying to work without any kernel hacks. To prevent issues when updating the system.
Everything works fine, the data is stored correctly into the database within our module.

Now the problem:

The standard basket.php and confirmorder.php call a function to update the prices.

$basket->updatePrices();

The function itself fetches the object once again, calculates the prices and stores! them
once again instead of fetching the prices from the ezproductcollection_item and ezproductcollection_item_opt tables directly.

I don't really get the point why this is done by fetching the object.
Is there a special reason for this? This currently prevents us to add new functionality to the shop without hacking the kernel.

Thanks in advance

Mit freundlichen Grüßen
Best regards

Norman Leutner

____________________________________________________________
eZ Publish Platinum Partner - http://www.all2e.com
http://ez.no/partners/worldwide_partners/all2e_gmbh

Pascal Specht

Wednesday 30 July 2008 12:13:21 am

Hi Norman,

well, I understand your frustration about having to touch the kernel, I was confronted to the same dilemma:

my experience is that whenever it comes to seriously modifying the pricing model, (i.e. I added price ramps (Staffelpreise in german), different prices per siteaccess, usergroup and currency, missing prices, coupons and product bundles), the work overhead to circumvent hacking is greater that the maintenance issue. At the end of the day it was way more work to prevent hacking the kernel than maintaining 9 modified kernel files. So I wouldn't bother too much about having to modify these, as long as they are correctly handled in SVN, documented etc.

kernel/shop/ezshopoperationcollection.php
kernel/shop/add.php
kernel/classes/ezbasket.php
kernel/shop/basket.php
kernel/shop/operation_definition.php
kernel/shop/classes/ezsimpleprice.php
kernel/shop/confirmorder.php
kernel/classes/ezorder.php
kernel/classes/ezproductcollectionitem.php

Best regards,
</Pascal>

eZ debug

Timing: Jan 20 2025 12:56:37
Script start
Timing: Jan 20 2025 12:56:37
Module start 'content'
Timing: Jan 20 2025 12:56:37
Module end 'content'
Timing: Jan 20 2025 12:56:38
Script end

Main resources:

Total runtime0.1185 sec
Peak memory usage2,048.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0052 589.9844180.8438
Module start 'content' 0.00520.0056 770.828193.9609
Module end 'content' 0.01080.1076 864.7891523.2344
Script end 0.1184  1,388.0234 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00342.8362200.0002
Check MTime0.00131.0848200.0001
Mysql Total
Database connection0.00080.647510.0008
Mysqli_queries0.077064.95811410.0005
Looping result0.00090.75191390.0000
Template Total0.107390.510.1073
Template load0.00080.638010.0008
Template processing0.106589.895210.1065
Override
Cache load0.00050.447410.0005
Sytem overhead
Fetch class attribute can translate value0.00080.669410.0008
XML
Image XML parsing0.00020.206710.0002
General
dbfile0.00625.1948200.0003
String conversion0.00000.003230.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