{{ :logo-apl.png?nolink |}} ===== Moodle Shop structure documentation ===== {{ :local:shop:shop.png?nolink&200 |}} ==== Automating enrolments incourses as effect of the purchase, introduction ===== the Moodle Shop engine is a complex and complete component used to sell online teaching-related "objects". Once loaded with a lot of content and teaching scenarios, Moodle can offer a lot of saleable items. Moodle is a flexible and highly configurable application, which makes it an excellent candidate for a wide of business scenarios. Enrolling in a training course and obtaining a learner’s account for a given period is a classic monetisable component of activities specific to virtual training centres. There are several distinct derivative situations that depend on the purchasing process for the training course, its social or funding context. ===Buying their own seat=== An online learner wants to personally participate in a course they purchased. In principle, this buyer will have access to: * The purchased training course, as a learner * The "support" course, which serves as the management interface for their training course, as a customer ===Buying a training session for a group of participants=== A person in charge of training or a business manager would like training for one or more employees. If the number is known, that person can "set up a training course" on behalf of the company and purchase the amount of seats required to establish the session. The company pays for the seats but the bill can be supplemented with a standard training agreement to allow funding agency reimbursement of the training. Enrolments purchased in this manner can be unlimited or, on the contrary, renewable after a certain period of time (duration). === Retrieving a purchased certificate === In MOOCs (Massive Open Online Courses), access to training courses is free of charge but the retrieval of formal proof of participation and attainment of objectives can be subject to payment. The shop makes it possible to develop this type of product === Extending an existing enrolment period === Training company X offers a preparatory course for a difficult finance examination, with study support programmes and coaching. Enrolment is initially sold for a 3-month period and can be freely extended by one-month periods. === Buying assigned role in a specific context === Training company Y builds a two-tiered course programme that uses two roles, Student and Student+, to access more or less developed parts of the course. It is possible to acquire a “higher” status for an already active enrolment or access a higher status for all platform courses. === Buying learning credits to use later to make their own course program === A company offers a wide variety of training modules and would like customers to be able to freely build their content portfolio. The shop is used to recharge a virtual account with training credits that will be used to choose course modules from the internal catalogue. This method is easier to use for learners who only have one financial transaction to carry out at the beginning. ---- ==== Major Shop elements ==== Moodle Integrated Shop has two main parts: * A front office accessed by customers to purchase items * A Back office to : * help sales managers define the product offer * allow sales operators to monitor and manage transactions Optionally, building a customer support workplace using a Moodle course is a good idea and shop implementation provides accessory blocks to help build a customer environment with all the necessary features. ==== Shop back-office ==== === Implementation classes and functional primitives === * [[:local:shop:structure:classes:shopobject|The ShopObject class]] * [[:local:shop:structure:classes:shop|The Shop class]] * [[:local:shop:structure:classes:catalog|The Catalogue class (Concept of catalogue)]] * [[:local:shop:structure:classes:catalogcategory|The CatalogCategory class (Concept of category)]] * [[:local:shop:structure:classes:catalogitem|The CatalogItem class (Concept of catalogue item)]] * [[:local:shop:structure:classes:bill|The Bill class (Concept of order and bill statuses)]] * [[:local:shop:structure:classes:billitem|the BillItem class]] !TODO! TRADUCTION ? * [[:local:shop:structure:classes:customer|the Customer class (Concept of customer account)]] * [[:local:shop:structure:classes:product|The Product class (Concept of product instance)]] * [[:local:shop:structure:classes:productevent|the ProductEvent class (Concept of product events)]] * [[:local:shop:structure:classes:shippingzone|the ShippingZone class (Concept of shipping zone)]] * [[:local:shop:structure:classes:catalogshpping|the CatalogShiping class (Concept of shipping formulas)]] === Technical utilities === * [[:local:shop:structure:processes:tracing|Tracing transactions]] * [[:local:shop:structure:processes:notifications|Notifications]] ==== Shop front-office ==== * [[:local:shop:structure:front:salesconditions|Sales conditions]] * [[:local:shop:structure:front:navsequence|Purchase sequence]] === Purchase steps === * [[:local:shop:structure:front:shoppingcart|Fill shopping cart]] :TODO: translation to do * [[:local:shop:structure:front:frontparams|Input product tuning parameters]] * [[:local:shop:structure:front:users|Input participant (in seats mode)]] * [[:local:shop:structure:front:customer|Input customer data]] * [[:local:shop:structure:front:order|Confirm purchase order]] * [[:local:shop:structure:front:payment|Payment]] * [[:local:shop:structure:front:produce|Produce product (synchronous or delayed)]] * [[:local:shop:structure:front:invoice|Produce bill]] ==== Shop Sub-Plugins ==== === Products action scripts === * [[:local:shop:structure:handlers|General structure of handlers]] * **Standard handlers (community version) :** * [[:local:shop:structure:handlers:enrolonecourse|Course Enrolment]] * [[:local:shop:structure:handlers:assignroleoncontext|Assign role to context]] * [[:local:shop:structure:handlers:extendenrolperiod|Enrolment extension]] * **Additional handlers (PRO version)** * [[:local:shop:structure:handlers:setupcoursesession|Setup a course session (with participants)]] (PRO) * [[:local:shop:structure:handlers:generateseats|Generate unassigned seats]] (PRO) * [[:local:shop:structure:handlers:openltiaccess|Open LTI Access]] (PRO) * [[:local:shop:structure:handlers:unlockpdcertificate|Unlock certificate (PD Certificate)]] (PRO) * [[:local:shop:structure:handlers:addquizattempts|Load user account with quiz attempts]] (PRO) * [[:local:shop:structure:handlers:addtrainingcredits|Load user account with educational credits]] --> Using [[:enrol:trainingcredits|Educational Credits Enrol plugin]] (PRO) * **Special handlers** * [[:local:shop:structure:handlers:buycourse|Course Creation]] (PRO) * [[:local:shop:structure:handlers:buycategory|Course Category (for customer to manage)]] (PRO) * [[:local:shop:structure:handlers:buyinstance|Create a VMoodle instance]] (PRO) === Payment methods === * [[:local:shop:structure:paymodes|Pay modes]] * Standard interfaces (community version) * [[:local:shop:structure:paymodes:test|Local test interface]] * [[:local:shop:structure:paymodes:zero|Free order pseudo-payment method]] * [[:local:shop:structure:paymodes:check|Cheque]] * [[:local:shop:structure:paymodes:transfer|Bank Transfer]] * [[:local:shop:structure:paymodes:paypal|Paypal]] * Additional interfaces (PRO) * [[:local:shop:structure:paymodes:mercanet|Mercanet (BNP/SOGE)]] * [[:local:shop:structure:paymodes:systempay|Systempay (CE/BP)]] * [[:local:shop:structure:paymodes:ogone|Ogone/Ingénico (broker)]] ----- [[:local:shop|Back to Local Shop componant ]] - [[:local:shop:structure|Local shop structure summary]] - [[local:shop:userguide:salesadmin|Configuration and implementation of a commercial offer]] - [[:start|back to catalogue]]