Table of contents
Introduction
BobShop is a customized shopping cart system for Tiki.On Github you can find some more information.
https://github.com/romoxi/bobshop
Features
- no need to login to use the shopping-cart- bobshop own user management available (no need to set any permission for tiki users)
- individual product fields
- products can be enabled/disabled
- multiple payment methods (PayPal integrated)
- 3 different tax rates
- 3 different shipping costs
- "addToCart"-button can placed on any wikipage
- built-in registration and login system (or bobshop own user management)
- works without the Tiki Functions/Plugins Payment, shopper_info, Shopping Cart etc.
- templates can be modified
- bootstrap is used for the templates
- different operation modes (default, sandbox, offer, presentation, info)
- saving and reloading carts
- default sorting
- sorting in product list template (price up/down, name, product tracker field for default sorting)
- inventory management (stock control) with low in stock warning per product or global
- individual pages/messages after submitting the order/cart
- product variations (eg. small, medium, large or red, blue, green)
- custom language file for easy translating in your language
- admin panel for orders and carts (be sure to set the permissions of this page)
- order number can be formated to suggest your customers a very big shop ;)
How to install?
You need the Plugin BobShop.Feel free to download it from Github.
https://github.com/romoxi/bobshop
You have to download an copy the files in:
/lib/wiki-plugins
/templates/wiki-plugins
/lang/de (if you need german language - read the manual for more information)
bobshop_register.php (not used if bobshop own user system is active)
Apply this profile
Modify Item Link for default payment:
- Trackers > List Trackers
- click on "bobshop_config"
- click on "Fields"
- click on "paymentDefault"
- go to "Options for Item Link"
- set "Tracker ID" to "bobshop_payment" and "Field ID" to "name" and Multiple Fields mark "name"
- Save the changes
If you want to use PayPal, you have to set up a REST API app in your PayPal-Account. Edit the file /lib/wiki-plugins/bobshop_paypal.inc.php.
How to update?
Just run the profile and upload the newest files, again.Check your wikipages for any changes and rollback if needed.
User
(This is not necessary if bobshop own user system is active)If you want the registered users to see there own tracker infos (Name, Address ...) you have to change the following:
Tracker > User > Properties > Permissions
> User can see his own items
> Item creator can modify his items
Dependencies
(to make after applying this profile)(This is not necessary if bobshop own user system is active)
Settings > Control Panels > User Settings > Groups > Registered
> User Registration Tracker > User
Save now!
Settings > Control Panels > User Settings > Groups > Registered
> Select user field > (User)
> Group or User Tracker Registration Fields > (the field ID numbers for the User tracker fields)
(typical by a fresh installation is something like that: 81:82:83:84:85:86:87:88)
> Log In
> User tracker IDs to sync prefs from > User
> Tracker ID of tracker required to be filled in > (the User Tracker ID)
(the following should be made by the this profile)
Settings > Control Panels
> General > Navigation > Alternate registration page > bobshop_register.php
> Editing and Plugins
> Plugins > BobShop
> Plugins > Dialog
> Trackers > Auto-Increment
> Log In (This is not necessary if bobshop own user system is active)
> Authentication method > Tiki
> User can register
> Validate new user registrations by email > DISABLED
> Validate user's email server > Yes
> Use a tracker to collect more user information
> Require users to fill in tracker information
> Use email as username
> User emails must be unique
Version
This profile is for the plugin version v1_92_1.Manual
For configuration and administration use the trackers.Tracker "bobshop_config":
Create a new item > this will setup the shop. At the moment you can only have one (1) item in this tracker. Do NOT create a second item.
Be sure to call the plugin bobshop only once per page!
Permissions
The permissions in this profile are for the shopping system only.Permissions Object bobshop_admin
Make sure you change the permissions to the wikipage "bobshop_admin":Edit the page > Permissions > wiki > tiki_p_view
Disable all user-groups except the admin.
If your site does need something different feel free to change it.
DEMO
A simple DEMO-Site is available under:https://bobshopdemo.bob360.de/
YAML for Permissions
permissions: Anonymous: allow: - view - create_tracker_items Registered: allow: - view - download_files - search - create_tracker_items - modify_tracker_items
YAML for Settings
preferences: allowRegister: 'y' feature_alternate_registration_page: 'bobshop_register.php' feature_trackers: 'y' feature_userPreferences: 'y' fgal_elfinder_feature: 'y' login_is_email: 'y' pass_chr_num: 'y' tracker_force_fill: 'y' trackerfield_autoincrement: 'y' trackerfield_currency: 'y' userTracker: 'y' user_unique_email: 'y' validateEmail: 'y' validateUsers: 'n' wikiplugin_bobshop: 'y' wikiplugin_button: 'y' wikiplugininline_remarksbox: 'y' wikiplugin_dialog: 'y'
YAML for trackers
config
permissions: { } preferences: { } objects: - type: tracker ref: bobshop_config data: name: bobshop_config description: 'Basic configuration stuff for the shop features' form_classes: '' - type: tracker_field ref: bobshop_config_bobshopConfigShopName data: name: shopName permname: bobshopConfigShopName tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '0' description: 'Name of the shop; used in eMail "From: "' visby: { } editby: { } flags: - link - list - public - mandatory - type: tracker_field ref: bobshop_config_bobshopConfigOpMode data: name: opMode permname: bobshopConfigOpMode tracker: '$profileobject:bobshop_config$' options: samerow: 1 type: text_field order: '10' description: 'Operation Mode: default, sandbox, offer, presentation, info' visby: { } editby: { } flags: - link - list - public - type: tracker_field ref: bobshop_config_bobshopConfigActive data: name: aktiv permname: bobshopConfigActive tracker: '$profileobject:bobshop_config$' options: samerow: 1 type: text_field order: '20' description: "y = shop is open\r\nn = shop is closed" visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_config_bobshopConfigAddToCartButtonText data: name: addToCartButtonText permname: bobshopConfigAddToCartButtonText tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '30' description: 'text to display on the add to cart button' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigAddToWatchlistButtonText data: name: addToWatchlistButtonText permname: bobshopConfigAddToWatchlistButtonText tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '40' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigCashierButtonText data: name: cashierButtonText permname: bobshopConfigCashierButtonText tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '50' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigCheckoutButtonText data: name: checkoutButtonText permname: bobshopConfigCheckoutButtonText tracker: '$profileobject:bobshop_config$' options: samerow: 1 type: text_field order: '60' description: 'Text for the Checkout Button' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigBuyNowButtonText data: name: buyNowButtonText permname: bobshopConfigBuyNowButtonText tracker: '$profileobject:bobshop_config$' options: samerow: 1 type: text_field order: '70' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigShippingCostCat1 data: name: shippingCostCat1 permname: bobshopConfigShippingCostCat1 tracker: '$profileobject:bobshop_config$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '80' description: 'Shipping costs for category 1' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigShippingCostCat2 data: name: shippingCostCat2 permname: bobshopConfigShippingCostCat2 tracker: '$profileobject:bobshop_config$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '90' description: 'Shipping costs for category 2' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigShippingCostCat3 data: name: shippingCostCat3 permname: bobshopConfigShippingCostCat3 tracker: '$profileobject:bobshop_config$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '100' description: 'Shipping costs for category 3' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigTaxrate1 data: name: taxrate1 permname: bobshopConfigTaxrate1 tracker: '$profileobject:bobshop_config$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '110' description: 'Tax rate for product taxrateCat = 1; usually 0 no tax' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigTaxrate2 data: name: taxrate2 permname: bobshopConfigTaxrate2 tracker: '$profileobject:bobshop_config$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '120' description: 'Tax for product taxrate2; reduced tax' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigTaxrate3 data: name: taxrate3 permname: bobshopConfigTaxrate3 tracker: '$profileobject:bobshop_config$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '130' description: 'Tax rate for product taxrateCat = 3; Normal tax' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigShippingCostTaxrateCat data: name: shippingCostTaxrateCat permname: bobshopConfigShippingCostTaxrateCat tracker: '$profileobject:bobshop_config$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '140' description: 'TaxratCat for shipping Costs' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigPaymentDefault data: name: paymentDefault permname: bobshopConfigPaymentDefault tracker: '$profileobject:bobshop_config$' options: trackerId: '$profileobject:bobshop_payment$' fieldId: '$profileobject:bobshop_payment_bobshopPaymentName$' displayFieldsList: - '$profileobject:bobshop_payment_bobshopPaymentName$' displayFieldsListType: dropdown status: opc preSelectFieldMethod: exact displayOneItem: multi indexRemote: - 0 type: item_link order: '150' description: 'this payment method is selected by default in the cashierpage' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigCurrency data: name: currency permname: bobshopConfigCurrency tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '160' description: 'Currency for this shop; Euro, Dollar, Schilling, Taler' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigCurrencySymbol data: name: currencySymbol permname: bobshopConfigCurrencySymbol tracker: '$profileobject:bobshop_config$' options: samerow: 1 type: text_field order: '190' description: '€, $' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigCurrencyShortcut data: name: currencyShortcut permname: bobshopConfigCurrencyShortcut tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '200' description: 'EUR (is used for the payment systems)' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigEmailSender data: name: emailSender permname: bobshopConfigEmailSender tracker: '$profileobject:bobshop_config$' options: { } type: email order: '210' description: 'this is the sender mail in the "order-received" mail to the buyer' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigCompanySignature data: name: companySignature permname: bobshopConfigCompanySignature tracker: '$profileobject:bobshop_config$' options: distinct: 'n' wysiwyg: 'n' samerow: 1 type: text_area order: '220' description: 'Full name an Address of your company. Is used for mail etc.' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigEmailNotifications data: name: emailNotifications permname: bobshopConfigEmailNotifications tracker: '$profileobject:bobshop_config$' options: { } type: email order: '230' description: 'mail for notifications about orders, errors etc.; some admins email is a good choice' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigTermsOfServicePage data: name: TermsOfServicePage permname: bobshopConfigTermsOfServicePage tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '240' description: 'Wikipage name; shoppers will be forced to agree to this before purchasing' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigRevocationNotice data: name: RevocationNotice permname: bobshopConfigRevocationNotice tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '250' description: 'Wikipage for RevocationNotice; shoppers will be forced to agree to this before purchasing' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigProductPicMissingPic data: name: productPicMissingPic permname: bobshopConfigProductPicMissingPic tracker: '$profileobject:bobshop_config$' options: replace: 'n' uploadInModal: 'y' addDecriptionOnUpload: 'n' requireTitle: 'n' type: files order: '260' description: 'picture to display, if there is no product picture available' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigMemoryOrders data: name: memoryOrders permname: bobshopConfigMemoryOrders tracker: '$profileobject:bobshop_config$' options: samerow: 1 type: text_field order: '270' description: 'y = orders/carts can be saved and reloaded by the shopper using a memoryCode' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigSortingLabelText data: name: sortingLabelText permname: bobshopConfigSortingLabelText tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '280' description: 'Text to print at the product sorting box' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigSortingDefaultText data: name: sortingDefaultText permname: bobshopConfigSortingDefaultText tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '290' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigSortingPriceUpText data: name: sortingPriceUpText permname: bobshopConfigSortingPriceUpText tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '300' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigSortingPriceDownText data: name: sortingPriceDownText permname: bobshopConfigSortingPriceDownText tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '310' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigSortingNameText data: name: sortingNameText permname: bobshopConfigSortingNameText tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '320' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigTikiUserRegistration data: name: tikiUserRegistration permname: bobshopConfigTikiUserRegistration tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '330' description: 'y = use the tikiwiki user system to login and order; n = use the BobShop own user contact form (user data will be stored in seperate files)' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigUserFields data: name: userFields permname: bobshopConfigUserFields tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '340' description: 'if tikiUserRegistration=n this field is used for contact information: firstname*|lastname|street|zip|city|Email@; * = requiered; @ = email; the field ''Email'' is used to send email at the end of buying' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigStockControl data: name: stockControl permname: bobshopConfigStockControl tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '350' description: 'y = turns the stock control (inventory) system on;' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigStockWarning data: name: stockWarning permname: bobshopConfigStockWarning tracker: '$profileobject:bobshop_config$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '360' description: 'if stockQuantity lower stockWarning there is a hint in the products page' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_config_bobshopConfigOrderNumberFormat data: name: orderNumberFormat permname: bobshopConfigOrderNumberFormat tracker: '$profileobject:bobshop_config$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '370' description: 'format the orderNumber to show your customer some impressive number; example: 2021%id%00|76|%''.05d; the %id% will be replaced by the real orderNumber and then 76 is added and finally some ''0'' are filled up' visby: { } editby: { } flags: - public - type: tracker_option ref: bobshop_config_sort_default_field data: tracker: '$profileobject:bobshop_config$' name: sort_default_field value: modification
products
permissions: { } preferences: { } objects: - type: tracker ref: bobshop_products data: name: bobshop_products description: 'products to be sold' form_classes: '' - type: tracker_field ref: bobshop_products_bobshopProductProductId data: name: productId permname: bobshopProductProductId tracker: '$profileobject:bobshop_products$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '0' description: 'Unique Id; make sure there are no duplicate IDs.' visby: { } editby: { } flags: - link - list - public - mandatory - type: tracker_field ref: bobshop_products_bobshopProductName data: name: Name permname: bobshopProductName tracker: '$profileobject:bobshop_products$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '10' description: 'The basic name of the product' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_products_bobshopProductDescription data: name: Beschreibung permname: bobshopProductDescription tracker: '$profileobject:bobshop_products$' options: distinct: 'n' wysiwyg: 'n' samerow: 1 type: text_area order: '20' description: 'Description of the product. See also "wikipageName" and "wikipage" - there can be a whole wikipage linked to the product.' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductPrice data: name: price permname: bobshopProductPrice tracker: '$profileobject:bobshop_products$' options: samerow: 1 decimals: 2 dec_point: . thousands: ',' type: numeric order: '30' description: 'the price without VAT' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_products_bobshopProductTaxrateCat data: name: taxrateCat permname: bobshopProductTaxrateCat tracker: '$profileobject:bobshop_products$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '40' description: 'tax rate from the config tracker; 1 = 0; 2 = reduced; 3 = default' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductShippingCat data: name: shippingCat permname: bobshopProductShippingCat tracker: '$profileobject:bobshop_products$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '50' description: 'category from the config tracker for calculate the shipping costs' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductCategory data: name: category permname: bobshopProductCategory tracker: '$profileobject:bobshop_products$' options: distinct: 'n' wysiwyg: 'n' samerow: 1 type: text_area order: '60' description: 'Product category; actually not used by bobshop' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductPic1 data: name: pic1 permname: bobshopProductPic1 tracker: '$profileobject:bobshop_products$' options: replace: 'n' uploadInModal: 'y' addDecriptionOnUpload: 'n' requireTitle: 'n' type: files order: '70' description: 'picture of the product' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductWikipageName data: name: wikipageName permname: bobshopProductWikipageName tracker: '$profileobject:bobshop_products$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '80' description: 'The name of the wikipage that is displayed under the product details page; A wikipage will be created by the tracker; No page is created if nothing is entered.' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductWikipage data: name: wikipage permname: bobshopProductWikipage tracker: '$profileobject:bobshop_products$' options: fieldIdForPagename: '$profileobject:bobshop_products_bobshopProductWikipageName$' namespace: none syncwikipagename: 'n' syncwikipagedelete: 'n' toolbars: 1 wysiwyg: 'n' actions: 'n' samerow: 1 removeBadChars: 'n' type: wiki order: '90' description: 'Wikipage of the product; Field wikipageName have to be set in order to save the inputs in this field. The wikipage "wikipageName" will be created.' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductDeliveryTime data: name: deliveryTime permname: bobshopProductDeliveryTime tracker: '$profileobject:bobshop_products$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '100' description: 'How much time does it need to deliver the product' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductEan data: name: ean permname: bobshopProductEan tracker: '$profileobject:bobshop_products$' options: samerow: 1 type: text_field order: '110' description: EAN visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductMaker data: name: maker permname: bobshopProductMaker tracker: '$profileobject:bobshop_products$' options: samerow: 1 type: text_field order: '120' description: 'maker of the product' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductActive data: name: aktiv permname: bobshopProductActive tracker: '$profileobject:bobshop_products$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '130' description: '1 = enabled to be displayed in the product list; 0 = no display but still available in the cart; 2 = product is a subset (variant)' visby: { } editby: { } flags: - link - list - public - type: tracker_field ref: bobshop_products_bobshopProductSortOrder data: name: sortOrder permname: bobshopProductSortOrder tracker: '$profileobject:bobshop_products$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '140' description: 'to use as a manual order' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductDetailPage data: name: productDetailPage permname: bobshopProductDetailPage tracker: '$profileobject:bobshop_products$' options: options: - 1=Detailpage_and_Wikipage - 2=Detailpage - 3=Wikipage type: dropdown order: '150' description: 'content of the detailpage' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductStockQuantity data: name: stockQuantity permname: bobshopProductStockQuantity tracker: '$profileobject:bobshop_products$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '160' description: 'holds the current quantity that are available for selling' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_products_bobshopProductStockWarning data: name: stockWarning permname: bobshopProductStockWarning tracker: '$profileobject:bobshop_products$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '170' description: 'if stockQuantity is lower than stockWarning there is a hint in the product page; if "0" the value from bobshop_Config. stockWarning is used' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductVariantName data: name: variantName permname: bobshopProductVariantName tracker: '$profileobject:bobshop_products$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '190' description: 'Name for different variants of the product (e.g. small, medium, large); see also variantProductsIds and variantSuperset' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_products_bobshopProductCategories data: name: categories permname: bobshopProductCategories tracker: '$profileobject:bobshop_products$' options: trackerId: '$profileobject:bobshop_categories$' fieldId: '$profileobject:bobshop_categories_bobshopCategoryName$' displayFieldsList: - '$profileobject:bobshop_categories_bobshopCategoryName$' displayFieldsListType: table status: opc preSelectFieldMethod: exact displayOneItem: multi indexRemote: - 0 type: item_link order: '220' description: 'categories for this product' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_products_bobshopProductVariantProductIds data: name: variantProductIds permname: bobshopProductVariantProductIds tracker: '$profileobject:bobshop_products$' options: trackerId: '$profileobject:bobshop_products$' fieldId: '$profileobject:bobshop_products_bobshopProductProductId$' displayFieldsList: - '$profileobject:bobshop_products_bobshopProductProductId$' - '$profileobject:bobshop_products_bobshopProductName$' - '$profileobject:bobshop_products_bobshopProductVariantName$' displayFieldsListType: table status: opc preSelectFieldMethod: exact displayOneItem: multi selectMultipleValues: 1 indexRemote: - 0 type: item_link order: '230' description: 'product with different variations; itemLink field with the itemId of the products; comma separates values' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_products_bobshopProductVariantSuperset data: name: variantSuperset permname: bobshopProductVariantSuperset tracker: '$profileobject:bobshop_products$' options: trackerId: '$profileobject:bobshop_products$' fieldId: '$profileobject:bobshop_products_bobshopProductProductId$' displayFieldsList: - '$profileobject:bobshop_products_bobshopProductVariantName$' - '$profileobject:bobshop_products_bobshopProductName$' - '$profileobject:bobshop_products_bobshopProductProductId$' displayFieldsListType: table status: opc preSelectFieldMethod: exact displayOneItem: multi indexRemote: - 0 type: item_link order: '240' description: 'Base productId for the different variants of a product' visby: { } editby: { } flags: - list - public - type: tracker_option ref: bobshop_products_sort_default_field data: tracker: '$profileobject:bobshop_products$' name: sort_default_field value: modification
payment
permissions: { } preferences: { } objects: - type: tracker ref: bobshop_payment data: name: bobshop_payment description: 'Payment methodes' admin_only_view: 'y' restrict_end: '0' form_classes: '' restrict_start: '0' - type: tracker_field ref: bobshop_payment_bobshopPaymentName data: name: Name permname: bobshopPaymentName tracker: '$profileobject:bobshop_payment$' options: samerow: 1 type: text_field order: '0' description: 'Name for the payment methode (Paypal ...)' visby: { } editby: { } flags: - link - list - public - mandatory - type: tracker_field ref: bobshop_payment_bobshopPaymentPrice data: name: price permname: bobshopPaymentPrice tracker: '$profileobject:bobshop_payment$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '10' description: 'Pirce for the Payment' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_payment_bobshopPaymentIcon data: name: icon permname: bobshopPaymentIcon tracker: '$profileobject:bobshop_payment$' options: replace: 'n' uploadInModal: 'y' addDecriptionOnUpload: 'n' requireTitle: 'n' type: files order: '20' description: 'the icon for the payment methode' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_payment_bobshopPaymentMerchantId data: name: merchantId permname: bobshopPaymentMerchantId tracker: '$profileobject:bobshop_payment$' options: samerow: 1 type: text_field order: '30' description: 'Id from the payment system (PayPal); is used to compare with the response within the payment prozess' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_payment_bobshopPaymentMerchantName data: name: merchantName permname: bobshopPaymentMerchantName tracker: '$profileobject:bobshop_payment$' options: samerow: 1 type: text_field order: '40' description: "will be submitted to the payment service ;\r\nPayPal = Headline in the payment approval site (brand_name)" visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_payment_bobshopPaymentBuyNowButtonTextExtraText data: name: buyNowButtonTextExtraText permname: bobshopPaymentBuyNowButtonTextExtraText tracker: '$profileobject:bobshop_payment$' options: samerow: 1 type: text_field order: '50' description: 'some Text to add to the byNowButtonText, when this payment is selected' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_payment_bobshopPaymentFollowUpScript data: name: followUpScript permname: bobshopPaymentFollowUpScript tracker: '$profileobject:bobshop_payment$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '60' description: "what to do after the order is submitted\r\n\"PAYPAL\" runs the paypal payment prozess" visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_payment_bobshopPaymentActive data: name: aktiv permname: bobshopPaymentActive tracker: '$profileobject:bobshop_payment$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '70' description: '1 = buyer can choose is; 0 = disabled' visby: { } editby: { } flags: - link - list - public - type: tracker_option ref: bobshop_payment_sort_default_field data: tracker: '$profileobject:bobshop_payment$' name: sort_default_field value: modification
orders
permissions: { } preferences: { } objects: - type: tracker ref: bobshop_orders data: name: bobshop_orders description: 'Orders per session' form_classes: '' - type: tracker_field ref: bobshop_orders_bobshopOrderOrderNumber data: name: orderNumber permname: bobshopOrderOrderNumber tracker: '$profileobject:bobshop_orders$' options: start: 1 type: auto_increment order: '10' visby: { } editby: { } flags: - link - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderSessionId data: name: sessionId permname: bobshopOrderSessionId tracker: '$profileobject:bobshop_orders$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '20' visby: { } editby: { } flags: - link - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderUser data: name: Benutzer permname: bobshopOrderUser tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '30' visby: { } editby: { } flags: - link - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderPayment data: name: payment permname: bobshopOrderPayment tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '40' description: 'payment methode' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderSumProducts data: name: sumProducts permname: bobshopOrderSumProducts tracker: '$profileobject:bobshop_orders$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '50' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderSumTaxrate1 data: name: sumTaxrate1 permname: bobshopOrderSumTaxrate1 tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '60' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderSumTaxrate2 data: name: sumTaxrate2 permname: bobshopOrderSumTaxrate2 tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '70' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderSumTaxrate3 data: name: sumTaxrate3 permname: bobshopOrderSumTaxrate3 tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '80' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderSumTaxrates data: name: sumTaxrates permname: bobshopOrderSumTaxrates tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '90' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderSumShipping data: name: sumShipping permname: bobshopOrderSumShipping tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '100' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderSumPayment data: name: sumPayment permname: bobshopOrderSumPayment tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '110' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderSumEnd data: name: sumEnd permname: bobshopOrderSumEnd tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '120' visby: { } editby: { } flags: - link - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderStatus data: name: status permname: bobshopOrderStatus tracker: '$profileobject:bobshop_orders$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '130' description: '0 = not set; 1 = cart in use; 2 = order submitted; 3 = order confirmed; 4 = order payed; 5 = payed and shipped; 6 = not payed and shipped; 7 = deleted; 10 = invited offer submitted; 11 = offer under progress; 12 = offer sent; 13 - order joined to another; 14 - a saved order' visby: { } editby: { } flags: - link - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderAgreedTosDate data: name: agreedTosDate permname: bobshopOrderAgreedTosDate tracker: '$profileobject:bobshop_orders$' options: datetime: dt blankdate: blank type: datetime order: '140' description: 'has aggreed Terms of Service at this date' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderAgreedRevocationDate data: name: agreedRevocationDate permname: bobshopOrderAgreedRevocationDate tracker: '$profileobject:bobshop_orders$' options: datetime: dt blankdate: blank type: datetime order: '150' description: 'agreed to Revocation Notice at this Date' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderSumPaymentName data: name: sumPaymentName permname: bobshopOrderSumPaymentName tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '160' description: 'The name of the payment service' visby: { } editby: { } flags: - link - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderPaymentOrderId data: name: paymentOrderId permname: bobshopOrderPaymentOrderId tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '170' description: 'the ID from the payment system (PayPal) when creating an order' visby: { } editby: { } flags: - link - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderPaymentStatus data: name: paymentStatus permname: bobshopOrderPaymentStatus tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '180' description: "Status from the payment system (PayPal)\r\nCREATED, APPROVED, ELIGIBLE, COMPLETED" visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderPaymentApproveLink data: name: paymentApproveLink permname: bobshopOrderPaymentApproveLink tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '190' description: "approve link for the payer to approve the order (Paypal)\r\nthe link will goto the paypal login" visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderPaymentPayeeMerchantId data: name: paymentPayeeMerchantId permname: bobshopOrderPaymentPayeeMerchantId tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '200' description: 'received merchant_id from the payment system (PayPal)' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderPaymentPayerId data: name: paymentPayerId permname: bobshopOrderPaymentPayerId tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '210' description: 'the payer from the payment system (the payer can differ to our user)' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderIp data: name: ip permname: bobshopOrderIp tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '220' description: 'ip adress for the shopper' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderCreated data: name: erstellt permname: bobshopOrderCreated tracker: '$profileobject:bobshop_orders$' options: datetime: dt blankdate: blank type: datetime order: '230' description: 'date and time, the order was created' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderModified data: name: modified permname: bobshopOrderModified tracker: '$profileobject:bobshop_orders$' options: datetime: dt type: datetime order: '240' description: 'date and time the order was last modified' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderBrowser data: name: browser permname: bobshopOrderBrowser tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '250' description: 'browser info from the shopper' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderNoteUser data: name: noteUser permname: bobshopOrderNoteUser tracker: '$profileobject:bobshop_orders$' options: distinct: 'n' wysiwyg: 'n' samerow: 1 type: text_area order: '260' description: 'The user can submit some notes' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderNoteInternal data: name: noteInternal permname: bobshopOrderNoteInternal tracker: '$profileobject:bobshop_orders$' options: distinct: 'n' wysiwyg: 'n' samerow: 1 type: text_area order: '270' description: 'Note for internal usage' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderMemoryCode data: name: memoryCode permname: bobshopOrderMemoryCode tracker: '$profileobject:bobshop_orders$' options: samerow: 1 type: text_field order: '280' description: 'The user can save the order. BobShop creates this memoryCode to have access' visby: { } editby: { } flags: - link - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderBobshopUser data: name: bobshopUser permname: bobshopOrderBobshopUser tracker: '$profileobject:bobshop_orders$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '290' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_orders_bobshopOrderPaymentResponse data: name: paymentResponse permname: bobshopOrderPaymentResponse tracker: '$profileobject:bobshop_orders$' options: distinct: 'n' wysiwyg: 'n' samerow: 1 type: text_area order: '300' description: 'response notice by payment service' visby: { } editby: { } flags: - public - type: tracker_field ref: bobshop_orders_bobshopOrderOrderNumberFormated data: name: orderNumberFormated permname: bobshopOrderOrderNumberFormated tracker: '$profileobject:bobshop_orders$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '310' description: 'the orderNumber in a bobshop_config.orderNumberFormat formated form' visby: { } editby: { } flags: - public - type: tracker_option ref: bobshop_orders_sort_default_field data: tracker: '$profileobject:bobshop_orders$' name: sort_default_field value: '$profileobject:bobshop_orders_bobshopOrderOrderNumber$'
order_items
permissions: { } preferences: { } objects: - type: tracker ref: bobshop_order_items data: name: bobshop_order_items description: 'ordered items per order' admin_only_view: 'y' restrict_end: '0' form_classes: '' restrict_start: '0' - type: tracker_field ref: bobshop_order_items_bobshopOrderItemProductId data: name: productId permname: bobshopOrderItemProductId tracker: '$profileobject:bobshop_order_items$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '10' visby: { } editby: { } flags: - link - list - public - mandatory - type: tracker_field ref: bobshop_order_items_bobshopOrderItemOrderNumber data: name: orderNumber permname: bobshopOrderItemOrderNumber tracker: '$profileobject:bobshop_order_items$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '20' visby: { } editby: { } flags: - list - public - type: tracker_field ref: bobshop_order_items_bobshopOrderItemQuantity data: name: quantity permname: bobshopOrderItemQuantity tracker: '$profileobject:bobshop_order_items$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: '30' visby: { } editby: { } flags: - list - public - type: tracker_option ref: bobshop_order_items_sort_default_field data: tracker: '$profileobject:bobshop_order_items$' name: sort_default_field value: modification
user
permissions: { } preferences: { } objects: - type: tracker ref: user data: name: User description: '' restrict_end: '0' form_classes: '' restrict_start: '0' allow: - user_see_own - creator_modification - type: tracker_field ref: user_userUser data: name: Benutzer permname: userUser tracker: '$profileobject:user$' options: autoassign: 1 owner: 1 notify_template_format: text groupIds: - 0 canChangeGroupIds: - 0 type: user order: '0' visby: { } editby: - admin flags: - link - list - public - type: tracker_field ref: user_userTitle data: name: Anrede permname: userTitle tracker: '$profileobject:user$' options: options: - Frau - Herr - Firma type: radio order: '10' visby: { } editby: { } flags: - public - mandatory - type: tracker_field ref: user_userFirstName data: name: Vorname permname: userFirstName tracker: '$profileobject:user$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '20' visby: { } editby: { } flags: - link - list - public - mandatory - type: tracker_field ref: user_userName data: name: Nachname permname: userName tracker: '$profileobject:user$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '30' visby: { } editby: { } flags: - link - list - public - mandatory - type: tracker_field ref: user_userStreet data: name: Straße permname: userStreet tracker: '$profileobject:user$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '40' visby: { } editby: { } flags: - public - mandatory - type: tracker_field ref: user_userZip data: name: PLZ permname: userZip tracker: '$profileobject:user$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '50' visby: { } editby: { } flags: - link - list - public - mandatory - type: tracker_field ref: user_userCity data: name: Ort permname: userCity tracker: '$profileobject:user$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '60' visby: { } editby: { } flags: - link - list - public - mandatory - type: tracker_field ref: user_userCountry data: name: Land permname: userCountry tracker: '$profileobject:user$' options: options: - Deutschland - Österreich type: dropdown order: '70' visby: { } editby: { } flags: - public - mandatory - type: tracker_field ref: user_userPhone data: name: Telefon permname: userPhone tracker: '$profileobject:user$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '80' visby: { } editby: { } flags: - public - type: tracker_option ref: user_sort_default_field data: tracker: '$profileobject:user$' name: sort_default_field value: modification
categories
permissions: { } preferences: { } objects: - type: tracker ref: bobshop_categories data: name: bobshop_categories description: '' restrict_end: '0' form_classes: '' restrict_start: '0' - type: tracker_field ref: bobshop_categories_bobshopCategoryName data: name: name permname: bobshopCategoryName tracker: '$profileobject:bobshop_categories$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: '10' description: 'the name of the category' visby: { } editby: { } flags: - link - list - public - mandatory - type: tracker_field ref: bobshop_categories_bobshopCategoryIsSuperset data: name: isSuperset permname: bobshopCategoryIsSuperset tracker: '$profileobject:bobshop_categories$' options: trackerId: '$profileobject:bobshop_categories$' fieldId: '$profileobject:bobshop_categories_bobshopCategoryName$' displayFieldsList: - '$profileobject:bobshop_categories_bobshopCategoryName$' displayFieldsListType: table status: opc preSelectFieldMethod: exact displayOneItem: multi selectMultipleValues: 1 indexRemote: - 0 type: item_link order: '20' description: 'this category have these subcategories' visby: { } editby: { } flags: - list - public - type: tracker_option ref: bobshop_categories_sort_default_field data: tracker: '$profileobject:bobshop_categories$' name: sort_default_field value: modification
YAML for Wiki pages
objects: - type: wiki_page data: name: bobshop_cart mode: create_or_update content: Inhalt Warenkorb {bobshop type="show_cart"} - type: wiki_page data: name: bobshop_cashierpage mode: create_or_update content: Kasse {bobshop type="show_cashier"} - type: wiki_page data: name: bobshop_checkout mode: create_or_update content: Checkout/Summary{bobshop type="checkout"} - type: wiki_page data: name: bobshop_order_submitted mode: create_or_update content: Merci! {bobshop type="order_submitted"} - type: wiki_page data: name: bobshop_paypalAfterTransaction mode: create_or_update content: payed {bobshop type="paypal_after_transaction"} - type: wiki_page data: name: Shop mode: create_or_update content: Products {bobshop type="show_shop"} - type: wiki_page data: name: bobshop_shipping mode: create_or_update content: Shipping Costs - type: wiki_page data: name: bobshop_admin mode: create_or_update content: BobShop Admin {bobshop type="show_admin"}