' https://acme.coopcycle.org/api/deliveries
73 | ```
74 |
--------------------------------------------------------------------------------
/docs/_developer/plugins.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Plugins
4 | has_children: true
5 | nav_order: 5
6 | ---
7 |
8 | # Plugin
9 | ---
10 |
11 | CoopCycle plugins that can be used to integrate with third-party websites.
12 |
13 | - [WordPress plugin for WooCommerce](https://wordpress.org/plugins/coopcycle/)
14 | - PrestaShop plugin (coming soon)
15 |
--------------------------------------------------------------------------------
/docs/_developer/prestashop.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: PrestaShop
4 | parent: Plugins
5 | ---
6 |
7 | # Set up the CoopCycle plugin
8 |
9 | This requires that you've previously [set up a Store account](/en/web/admin/deliveries/stores/) on your instance.
10 |
11 | 1. Unfortunately, our PrestaShop plugin is not available on PrestaShop Addons. You will need to download [the latest version of the PrestaShop module from GitHub, as a .zip file](https://github.com/coopcycle/coopcycle-plugins/releases).
12 |
13 | 2. In the PrestaShop back-office, go to **`Modules`** → **`Module Manager`**, click on **`Upload a module`**, and select the .zip file that you downloaded on your computer.
14 |
15 | 3. Once installed, you will need to configure the plugin. In the **Base URL** enter the URL of the target instance (for example, [https://demo.coopcycle.org/](https://york.coopcycle.org/)). If you are the developer of the Business's website, request the API keys from the Coop administrator. (Without API Keys you won't be able continue setup of the plugin).
16 |
17 | 4. The module will create a **carrier** named CoopCycle. You will need to configure this carrier according to your requirements & agreements.
18 |
19 | 
20 |
21 | 5. Done! Add an item to your shop's cart, open your cart, and the CoopCycle carrier should be selectable. Once selected, a dropdown with time slot choices should be presented to the customer.
22 |
23 | 
24 |
25 |
--------------------------------------------------------------------------------
/docs/_developer/retail-prices.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Obtaining retail prices
4 | slug: retail-prices
5 | nav_order: 3
6 | ---
7 |
8 | You can use our API to obtain retail prices for deliveries.
9 |
10 | To obtain a retail price, send your payload to the `/retail_prices/calculate` endpoint. The payload is the same as when [creating deliveries](deliveries.md).
11 |
12 | ```
13 | POST /api/retail_prices/calculate
14 | {
15 | "dropoff": {
16 | "address": "48, Rue de Rivoli, Paris, France",
17 | "before": "+2 hours"
18 | }
19 | }
20 | ```
21 |
22 | You will obtain a response like this:
23 |
24 | ```
25 | {
26 | "@context":"/api/contexts/RetailPrice",
27 | "@id":@string@,
28 | "@type":"RetailPrice",
29 | "amount":900,
30 | "currency":"EUR",
31 | "tax":{
32 | "amount":150,
33 | "included":true
34 | }
35 | }
36 | ```
37 |
38 | By default, the retail price returned is **tax included**.
39 | To obtain the tax excluded price, you will need to make `amount - tax.amount`.
40 |
41 | You can also obtain the tax excluded price directly by passing `tax=excluded` when calculating the retail price.
42 |
43 | ```
44 | POST /api/retail_prices/calculate?tax=excluded
45 | ```
46 |
--------------------------------------------------------------------------------
/docs/_developer/time-slots.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Obtaining time slots
4 | slug: time-slots
5 | nav_order: 3
6 | ---
7 |
8 | You can use the API to obtain time slots for delivery. For example, you may want to do this to build a dropdown in a user interface.
9 |
10 | To obtain time slots, use the `/time_slots/choices` endpoint. It will return both a [ISO 8601 time interval](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals) and a human readable version.
11 |
12 | ```
13 | GET /api/time_slots/choices
14 | {
15 | "choices":[
16 | {
17 | "value":"2020-04-02T10:00:00Z/2020-04-02T12:00:00Z",
18 | "label":"Aujourd\u0027hui entre 12:00 et 14:00"
19 | },
20 | {
21 | "value":"2020-04-02T12:00:00Z/2020-04-02T15:00:00Z",
22 | "label":"Aujourd\u0027hui entre 14:00 et 17:00"
23 | },
24 | {
25 | "value":"2020-04-03T10:00:00Z/2020-04-03T12:00:00Z",
26 | "label":"Demain entre 12:00 et 14:00"
27 | },
28 | {
29 | "value":"2020-04-03T12:00:00Z/2020-04-03T15:00:00Z",
30 | "label":"Demain entre 14:00 et 17:00"
31 | }
32 | ]
33 | }
34 | ```
35 |
36 | You can then use the `value` to create a delivery.
37 |
38 |
39 | ```
40 | POST /api/deliveries
41 | {
42 | "dropoff": {
43 | // ... other properties
44 | "timeSlot": "2020-04-02T12:00:00Z/2020-04-02T15:00:00Z"
45 | }
46 | }
47 | ```
48 |
--------------------------------------------------------------------------------
/docs/_developer/webhooks.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Webhooks
4 | nav_order: 4
5 | ---
6 |
7 | ### Creating webhooks
8 |
9 | If you want to receive notifications about events happening on CoopCycle, you can register [webhooks](https://resthooks.org/).
10 |
11 | ```
12 | POST /api/webhooks
13 | {
14 | "event": "delivery.completed",
15 | "url": "https://example.com/webhook"
16 | }
17 | ```
18 |
19 | The response will contain a `secret` property. Save it on your system, you will need it later.
20 |
21 | ```
22 | {
23 | "@context": "/api/contexts/Webhook",
24 | "@id": "/api/webhooks/1",
25 | "@type": "Webhook",
26 | "url": "https://example.com/webhook",
27 | "event": "delivery.completed",
28 | "secret": "4mCOyJ7UAa371oUjYcC2R9BZRx5eQT08qTzLAnh4e8M="
29 | }
30 | ```
31 |
32 | ### Receiving webhooks
33 |
34 | Now, whenever an event you are subscribed to is triggered in our system, your endpoint will receive a POST request.
35 |
36 | ```
37 | POST https://example.com/webhook
38 | {
39 | "data": {
40 | "object": "/api/deliveries/1",
41 | "event": "delivery.completed"
42 | }
43 | }
44 | ```
45 |
46 | ### Verifying webhooks signature
47 |
48 | When receiving webhooks, it is important to make sure they are originating from our system.
49 |
50 | To achieve this, each webhook HTTP request contains a `X-CoopCycle-Signature`, which is a SHA256 HMAC of the request body, signed with the `secret`.
51 |
52 | Here is an example PHP function to verify the signature.
53 |
54 | ```
55 | function verify_signature($payload, $signature, $secret)
56 | {
57 | $hex_hash = hash_hmac('sha256', $payload, $secret);
58 |
59 | return $signature === base64_encode(hex2bin($hex_hash));
60 | }
61 | ```
62 |
--------------------------------------------------------------------------------
/docs/_essentials/glossary.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Glossary
4 | ---
5 |
6 | # Glossary
7 |
8 | ## Key concepts
9 |
--------------------------------------------------------------------------------
/docs/_essentials/glossary/delivery.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Delivery
4 | parent: Glossary
5 | ---
6 |
7 | # Delivery
8 |
9 | Deliveries / entregas / livraison :
10 | - several tasks that follow each other
11 | * Ex1: pick at restaurant+drop at customer
12 | * Ex2: pick many packages and drop at 3 locations.
13 | - a delivery is linked to a shop/restaurant or a store
14 |
--------------------------------------------------------------------------------
/docs/_essentials/glossary/order.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Order
4 | parent: Glossary
5 | ---
6 |
7 | # Order
8 |
9 | There are two types of orders :
10 |
11 | - [Foodtech (restaurant's) orders](/en/food-tech/orders): created by end customers on the platform.
12 | - [Package delivery ('last mile') orders](/en/package-delivery/orders): created by store owners via their account on the website or the mobile app, by admins, by end customers via the integrated form, imported via CSV/Excel files, added via APIs.
13 |
14 | ---
15 |
16 | Each **order** is linked to **delivery**.
17 |
18 | ---
19 |
20 | [List of all orders](/en/web/admin/orders)
21 |
--------------------------------------------------------------------------------
/docs/_essentials/glossary/package.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Package
4 | parent: Glossary
5 | ---
6 |
7 | # Package (set)
8 |
9 | A package (set) is a list of standard units of delivery (package) i.e. a combination of the volume, weight and other properties. (Introduced in [#235](https://github.com/coopcycle/coopcycle-web/issues/235))
10 |
11 | [Setup packages](/en/web/admin/deliveries/packages)
12 |
--------------------------------------------------------------------------------
/docs/_essentials/glossary/routes.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Routes
4 | parent: Glossary
5 | ---
6 |
7 | # Routes
8 |
9 | Sub-group of tasks that have a given order and can be assigned in the dispatch panel.
10 |
--------------------------------------------------------------------------------
/docs/_essentials/glossary/shops.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Shops
4 | parent: Glossary
5 | ---
6 |
7 | # Shops / tiendas / boutiques
8 |
9 | Represents an “online store” in CoopCycle from which customers can order from and be delivered by the coop. Creates “foodtech orders”.
10 |
--------------------------------------------------------------------------------
/docs/_essentials/glossary/store.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Store
4 | parent: Glossary
5 | ---
6 |
7 | # Stores / tiendas / magasins
8 |
9 | Represents a B2B customer in CoopCycle. Creates “delivery orders” (see below)
10 |
--------------------------------------------------------------------------------
/docs/_essentials/glossary/task.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Task
4 | parent: Glossary
5 | ---
6 |
7 | # Task
8 |
9 | A **task** is the smallest unit of work. Pick or drop something (packages) at some place in a given time window.
10 |
11 | There are **two** types of tasks:
12 | - **Pickup**
13 | - **Dropoff**
14 |
15 | Tasks statuses are:
16 | - To-do
17 | - Cancelled / cancellado / annulée
18 | - Finished / terminado / completado
19 |
20 | On the CoopCycle platform, tasks exists within a delivery (list of tasks to execute in order). Creating tasks as standalone units is deprecated.
21 |
--------------------------------------------------------------------------------
/docs/_essentials/glossary/time-slot.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Time Slot
4 | parent: Glossary
5 | ---
6 |
7 | # Time Slot
8 |
9 | A time slot is a template used to generate the list of time window choices for a delivery. (Introduced in [#594](https://github.com/coopcycle/coopcycle-web/issues/594))
10 |
11 | [Setup time slots](/en/web/admin/deliveries/timeslots)
12 |
--------------------------------------------------------------------------------
/docs/_food_tech/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Introduction
4 | nav_order: 1
5 | ---
6 |
7 | # Introduction
8 |
9 | ---
10 |
11 | Learn more at [ACTIVITY: FOOD TECH](https://github.com/coopcycle/coopcycle/issues/77)
12 |
--------------------------------------------------------------------------------
/docs/_food_tech/orders.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Orders
4 | ---
5 |
6 | # Food Tech Order
7 |
8 | An order can have these following status :
9 |
10 | - New, the order was not accepted by the restaurant yet
11 | - Accepted, the order is in preparation
12 | - Refused, the order has been refused
13 | - Ready, the order is waiting a bike messenger or its delivery is underway
14 | - Done, the order was delivered
15 | - Cancelled, the order was cancelled by the client or the restaurant
16 |
17 | # Orders live management dashboard
18 |
19 | From the admin, go to the "Orders" page, then click on "Dashboard" icon. This will lead you to the Live order management page where foodtech dispatch can manage incoming orders.
20 |
--------------------------------------------------------------------------------
/docs/_food_tech/restaurants.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Restaurants
4 | nav_order: 2
5 | has_children: true
6 | ---
7 |
8 | # Restaurants (admin access)
9 |
10 |
11 | This section describes the process of setting up a restaurant on the CoopCycle platform. Don't hesitate to ask for help [contact@coopcycle.org](mailto:contact@coopcycle.org) to configure the first restaurants.
12 |
13 |
14 | ---
15 |
16 | The set up takes place as follows:
17 |
18 | ### Setting up a restaurant
19 | - [Creating a restaurant](restaurants/creating-a-restaurant.md) on the CoopCycle platform
20 | - [Creating a Stripe](restaurants/creating-a-Stripe-account.md) account and linking it to the restaurant
21 |
22 | Once the restaurant is created on the platform you can access the following sections and set them up.
23 |
24 | ### [Product Settings](restaurants/product-settings.md)
25 |
26 | These settings are found in the top navigation bar under main settings.
27 |
28 | 
29 |
30 | ### [General Settings](restaurants/general-settings.md)
31 |
32 | These settings are found under the restaraunt image holder under main settings.
33 |
34 | 
35 |
36 | To access these settings refer to the [Creating a restaurant](restaurants/creating-a-restaurant.md) guide.
37 |
38 |
--------------------------------------------------------------------------------
/docs/_food_tech/restaurants/_includes/general.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Here you can set the account details for the restaurant.
5 |
6 |
7 | ### **Name** `public`
8 | This is how the name of the restaurant will be displayed to customers.
9 |
10 | ### **Type of business** `not-public`
11 |
12 | You will see two top-level categories, **Store** and **Food establishment**.
13 |
14 | Any type of business selected under either category is not shown on the homepage of the Restaurant/Shop.
15 |
16 | What **Type of buiness** does, is place the Business under the **Store** or **Restaurant** section on the home page of the CoopCycle platform.
17 |
18 | ### **Address field** `public`
19 | Write here the physical address of the business.
20 |
21 | If the legal address under which the business is registered is not the same as the physical address you need to check ☑️ **Use a different business address** checkbox and in the **Address field** below write the legal address under which the business is registered.
22 |
23 | TIP: The legal address is not shown to the customer
24 |
25 | ### **Description** `public`
26 | Write a description about the restaurant which is shown to the customer.
27 |
28 | TIP: You can format the text with Markdown
29 |
30 | ### **Legal name** `not-public`
31 | Write here the legal name under which the business is registered. This will not be shown to the customer.
32 |
33 | ### **Website** `public`
34 | Write here the website of the business. This will be shown to the customer.
35 |
36 | ### **Telephone** `public`
37 | Write here the phone number of the business. Customers may contact the business using this number.
38 |
--------------------------------------------------------------------------------
/docs/_food_tech/restaurants/_includes/options.md:
--------------------------------------------------------------------------------
1 |
2 | The following settings are optional.
3 |
4 |
5 | ---
6 |
7 | ### **This restaurant is exclusive** {#exclusive}
8 | If checked ☑️ it places an Exclusive badge on the restaurant and brings it forwards on the homepage.
9 |
10 | ### **This restaurant is featured on homepage** {#featured}
11 | If checked ☑️ it brings the restaurant forwards on the homepage.
12 |
13 |
14 | If neither of the first two options are checked restaurants will get arranged by default on the homepage.
15 |
16 |
17 | ### **This restaurant also accepts quotes** {#quotes-allowed}
18 | If checked ☑️ it allows customers to place orders without paying.
19 |
20 |
21 | Only customers accounts who are enabled to request quotes can place a quote. See here for how to enable quoting customers.
22 |
23 |
24 | ### **Enable desposit-refund system.** {#deposit-refund}
25 | When this option is checked ☑️ you will find a new setting under More options ▼ on the restaurant Product Navigation Menu.
26 |
27 | 
28 |
29 |
30 |
31 | ### **Automatically accept orders** (Coming soon) {#auto-accept-orders}
32 | When this option is checked ☑️ the restaurant does not need to accept orders manually.
33 |
--------------------------------------------------------------------------------
/docs/_food_tech/restaurants/_includes/payment.md:
--------------------------------------------------------------------------------
1 |
2 | ## Connect with Stripe
3 |
4 | In the **Payment** section you will find two **Connect with Stripe** buttons. One for **Test** and another for **Live** mode. You should connect **Test** mode first and make Test payments to make sure the Restaurant and Stripe account of the restaurant are configured correctly.
5 |
6 | Go to [Creating a Stripe account](/en/food-tech/restaurants/creating-a-restaurant/#creating-a-stripe-account) to begin setting up the account.
7 |
8 | To know more about **Test** (how to make Test payments) and **Live** mode go [here](/en/payment_processors/stripe/#what-is-the-live-mode-and-test-mode-of-stripe)
9 |
10 | ### Allow the restaurant to manage Stripe account on its own
11 |
12 | This option should be enabled only if the restaurant owner already has a Stripe account and if they know how to set up Test and Live mode. However, it is preferrable if the coop sets up the restaurant Stripe's account.
13 |
14 |
15 | When enabled this option makes the **Payment** section visible on the restaurant's owner account. Meaning they will be able to connect Stripe themselves. The option is disabled by default.
16 |
17 |
--------------------------------------------------------------------------------
/docs/_food_tech/restaurants/_includes/planning.md:
--------------------------------------------------------------------------------
1 |
2 | Here you can set a time-off period for a Restaurant. This will show a message on the homepage of the Restaurant to customers, stating the Restaurant is closed during a certain period.
This setting is found under More options → Planning
3 |
4 |
5 | #### **Closing from/to**
6 |
7 | 1. Click on the empty field on the left `Start date`
8 | 2. Choose the Start of the time-off period by selecting **date** and the **time**.
9 | 3. Click Ok
10 | 4. Choose the End of the time-off period by selecting **date** and the **time**.
11 | 5. Cick Ok
12 |
13 | TIP: If you want to write a Reason/Description of the time-off period do so before clicking Save.
14 |
15 | #### **Reason**
16 |
17 | Here you can type a reason/description of the time-off period, e.g.: `Holidays`.
18 | This is not visible to customers.
19 |
20 | Once you've selected the time-off period and written a Reason (or not) click Save.
21 |
22 | In order to navigate on the calendar, use the buttons on the right-hand side on top of the calendar.
23 |
24 | Check the homepage of the Restaurant to see the message displayed to customers.
25 | `This restaurant is closed until May 29, 2021. You can still order for later on though!`
26 |
27 | WARNING: Despite the message stating that customers can order for later, this is only possible when the restaurant selected holidays for 6 days or less. The reason is because Stripe refunds non-captured payments automatically after 7 days of an order being placed.
28 |
29 | #### Remove a time-off period
30 |
31 | By clicking on the `x` on any day of the calendar where the time-off period is set the whole period will be removed.
32 |
33 |
--------------------------------------------------------------------------------
/docs/_food_tech/restaurants/_includes/statistics.md:
--------------------------------------------------------------------------------
1 |
2 | Here you can view the statistics, orders and refunds by month or by date.
3 | This setting is found under More options → Statistics
4 |
5 |
6 | On the right-hand side you can select the view by month or date.
7 |
8 | You can also export in a `.csv` file the selected view.
9 |
10 | Below the statistics graph you can view the orders and refunds of the selected month or date.
11 |
12 | ## Orders
13 |
14 | Here you will see a list of the orders from the selected month or date.
15 | Orders in **red** are orders that have been refunded.
16 |
17 | You can change between **Simple view** and **Detailed view**.
18 | The first is the default view and the latter displays additional details for orders.
19 |
20 | ## Refunds
21 |
22 | Here you can see specific information on refunded orders.
23 | Here is where you can see the party liable for the refund.
24 |
25 | For an in-depth understanding on Refunds, go [here](../../orders/refunds/).
--------------------------------------------------------------------------------
/docs/_food_tech/restaurants/general-settings.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: 'General settings'
4 | parent: Restaurants
5 | nav_order: 2
6 | ---
7 |
8 | # General Settings
9 |
10 | ALERT: Make sure to save your settings after each change you make.
11 | TIP: After having clicked **Create a new restaurant** write the name of the restaurant, input the business address and save settings. This will enable all the General settings and also allow you to upload a restaurant logo.
12 |
13 | - [General](#general)
14 | - [Options](#options)
15 | - [Fulfillment](#fulfillment)
16 | - [Payment](#payment)
17 |
18 | ## General
19 |
20 | {% include_relative _includes/general.md %}
21 |
22 | ## Options
23 |
24 | {% include_relative _includes/options.md %}
25 |
26 | ## Fulfillment
27 |
28 | {% include_relative _includes/fulfillment.md %}
29 |
30 | ## Payment
31 |
32 | {% include_relative _includes/payment.md %}
33 |
34 | ## Settlement
35 |
36 | {% include_relative _includes/settlement.md %}
37 |
38 | ---
--------------------------------------------------------------------------------
/docs/_food_tech/restaurants/hubs.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: "Hubs"
4 | parent: Restaurants
5 | nav_order: 4
6 | nav_exclude: false
7 | ---
8 |
9 | # Hubs
10 |
11 |
12 | A hub allows grouping together Restaurants sharing one pickup address under one (1) delivery fee.
13 |
14 |
15 | ## Creating a Hub
16 | 1. On the top menu click on `Restaurants`
17 |
18 | 2. Click on `Hubs`
19 |
20 | [](/assets/images/hubSelectRestos.png){:target="\_blank"}
21 |
22 | 3. Click on + Create a new hub
23 |
24 | [](/assets/images/hubCreateHubs.png){:target="\_blank"}
25 |
26 | 4. Under `Name` write the name of the Hub. This will be displayed to customers on the homepage of the hub.
27 |
28 | [](/assets/images/hubNameHub.png){:target="\_blank"}
29 |
30 | 5. Write the `Postcode` and `Address` of the Hub, which is the same as the collection point.
31 |
32 | 6. Under **List of merchants** use the *Search* field to search and select the restaurants that will be part of the Hub.
33 |
34 | 7. In the `Fulfillment` tab follow the same set up steps as for individual restaurants, see the guide [here](/en/food-tech/restaurants/general-settings/#fulfillment-methods).
35 |
36 | 8. In the `Settlement` tab follow the same set up steps as for individual restaurants, see the guide [here](/en/food-tech/restaurants/general-settings/#settlement).
37 |
38 | IMPORTANT: The Stripe fees are always paid by the Coop in Hubs.
39 |
--------------------------------------------------------------------------------
/docs/_food_tech/restaurants/product-settings.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: 'Product settings'
4 | parent: Restaurants
5 | nav_order: 3
6 | ---
7 | # Product settings
8 |
9 |
10 | Here is where you can set up the online listing of products and its additional settings for a Business accoount.
11 |
12 | These are all the settings that can be configured:
13 |
14 | [ Products](#-products)
15 | [ Options](#-options)
16 | [ Orders]() **COMING SOON**
17 | [ Menus](#-menus)
18 | [ Active menu](#-active-menu)
19 | [ Planning](#-planning)
20 | [ Statistics]() **COMING SOON**
21 | [ Promotions]() **COMING SOON**
22 | [ Preparation]() **COMING SOON**
23 |
24 | Go to the main settings of a Restaurant. At the right-hand side of its name you will see the settings from above laid out vertically.
25 |
26 | ## Products
27 |
28 | {% include_relative _includes/products.md %}
29 |
30 | ## Options
31 |
32 | {% include_relative _includes/extras.md %}
33 |
34 | ## Menus
35 |
36 | {% include_relative _includes/menus.md %}
37 |
38 | ## Planning
39 |
40 | {% include_relative _includes/planning.md %}
41 |
42 | ## Statistics
43 |
44 | {% include_relative _includes/statistics.md %}
--------------------------------------------------------------------------------
/docs/_food_tech/restaurants/product-settings/preparation.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Preparation
4 | parent: 'Product settings'
5 | nav_exclude: true
6 | ---
7 |
8 |
--------------------------------------------------------------------------------
/docs/_package_delivery/coopcycle-deliveries-simple-example.csv:
--------------------------------------------------------------------------------
1 | pickup.address,pickup.timeslot,dropoff.address,dropoff.timeslot
2 | 24 rue de rivoli paris,2019-12-12 10:00 - 2019-12-12 11:00,58 av parmentier paris,2019-12-12 12:00 - 2019-12-12 13:00
3 | 24 rue de rivoli paris,2019-12-12 10:00 - 2019-12-12 11:00,34 bd de magenta paris,2019-12-12 12:00 - 2019-12-12 13:00
4 |
--------------------------------------------------------------------------------
/docs/_package_delivery/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Introduction
4 | nav_order: 1
5 | ---
6 |
7 | # Introduction
8 |
9 | ---
10 |
11 | Learn more at [ACTIVITY: PACKAGE DELIVERY](https://github.com/coopcycle/coopcycle/issues/170)
12 |
--------------------------------------------------------------------------------
/docs/_package_delivery/last_mile.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Last Mile
4 | has_children: true
5 | nav_order: 3
6 | ---
7 |
8 | # Activity: Last Mile
9 |
--------------------------------------------------------------------------------
/docs/_package_delivery/last_mile/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Introduction
4 | nav_order: 1
5 | parent: Last Mile
6 | ---
7 |
8 | # Introduction
9 |
10 | ---
11 |
12 | Learn more at [ACTIVITY: LAST MILE](https://github.com/coopcycle/coopcycle/issues/78)
13 |
--------------------------------------------------------------------------------
/docs/_package_delivery/local_commerce.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Local Commerce
4 | has_children: true
5 | nav_order: 2
6 | ---
7 |
8 | # Activity: Local Commerce
9 |
--------------------------------------------------------------------------------
/docs/_package_delivery/local_commerce/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Introduction
4 | nav_order: 1
5 | parent: Local Commerce
6 | ---
7 |
8 | # Introduction
9 |
10 | ---
11 |
12 | Learn more at [ACTIVITY: LOCAL COMMERCE](https://github.com/coopcycle/coopcycle/issues/79)
13 |
--------------------------------------------------------------------------------
/docs/_package_delivery/local_commerce/recurrence-rules.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Recurrence rules
4 | parent: Recurring orders
5 | ---
6 |
7 | # Recurrence rules
8 |
9 | Recurrence rules enable the automation of creating recurring orders. Currently, the platform supports the following recurrence rules:
10 |
11 | - **Daily**: the order is created every day
12 | - **Weekly**: the order is created on specific days of the week
13 |
14 | 
15 |
16 | TIP: The list also includes the recurrence rules created from the Dispatch dashboard. However, orders (and tasks) will NOT be created automatically for them.
17 |
18 | ## How to create a recurrence rule
19 |
20 | The recurrence rule can be configured while creating a new Delivery order:
21 |
22 | 
23 |
24 | NEW in 3.37 Advanced mode
25 |
26 | ## Using recurrence rules
27 |
28 | Orders (and tasks) will be automatically created based on the Recurrence rules
29 |
30 | 
31 |
--------------------------------------------------------------------------------
/docs/_package_delivery/local_commerce/recurring-orders.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Recurring orders
4 | parent: Local Commerce
5 | ---
6 |
7 | # Recurring orders
8 |
9 | Creation of recurring orders could be a time-consuming task. To make it easier, you can ["save" orders](../saved-orders) and setup [recurrence rules](../recurrence-rules).
10 |
--------------------------------------------------------------------------------
/docs/_package_delivery/local_commerce/saved-orders.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Saved orders
4 | parent: Recurring orders
5 | ---
6 |
7 | # Saved (“Favourite”) orders
8 |
9 | Useful for complicated but not regular orders, that you need to repeat from time to time. If you have an order that happens on the same days of the week, consider configuring a [recurrence rule](../recurrence-rules) for it.
10 |
11 | 
12 |
13 | ## How to add an order to the Saved orders
14 |
15 | Check the box "Add to Saved order" on the order details page.
16 |
17 | 
18 |
19 | ## How to create a new order from a saved order
20 |
21 | Click on the "Duplicate an order" button on the order details page.
22 |
23 | TIP: any order can be duplicated that way, not only saved ones
24 |
25 | 
26 |
--------------------------------------------------------------------------------
/docs/_package_delivery/orders.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Orders
4 | ---
5 |
6 | # Package delivery (aka 'last mile') Order
7 |
8 | Package delivery (aka 'last mile') orders are created by
9 |
10 | - by store owners via their account on the website or the mobile app
11 | - by admins via delivery form
12 | - imported via CSV/Excel files
13 | - recurrence rules
14 | - added via APIs and integrations (e.g. wordpress plugin)
15 | - the end customer via the integrated form
16 |
--------------------------------------------------------------------------------
/docs/_web/admin.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Admin
4 | has_children: true
5 | ---
6 |
7 | # Admin
8 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Deliveries
4 | has_children: true
5 | parent: Admin
6 | nav_order: 3
7 | ---
8 |
9 | # Deliveries
10 |
11 |
12 | Here you will find all the settings related to local commerce and last mile deliveries.
13 |
14 |
15 | ---
16 |
17 | By clicking on Deliveries the main screen will display all the deliveries from Stores and from the External Form. Each delivery is linked to a store.
18 |
19 | On the left-hand side are displayed settings related to "Delivery orders"/non-foodtech orders. Especially if you want deliveries to be priced (for invoicing for example), please read the [pricing section](/en/web/admin/deliveries/pricing/).
20 |
21 | On the Deliveries main page you can do the following:
22 |
23 | ## Search
24 | You can search deliveries by delivery number, store or address.
25 |
26 | ## Import
27 | You can import a `.csv` file with multiple deliveries for a specific store.
28 |
29 | By clicking on Import a pop-up will display prompting you to choose a Store and upload a `.csv` file. You can also download an example spreadsheet to learn how to set up your import file.
30 |
31 | ## Export
32 | You can export a `.csv` file of a specific time range containing Deliveries from all stores.
33 |
34 | ## Create a new delivery
35 | You can create a single delivery for a specific store.
36 |
37 | Deliveries are split in three sections, **Today**, **Upcoming** and **Past**.
38 |
39 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/api.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: API
4 | parent: Deliveries
5 | nav_order: 11
6 | ---
7 |
8 | # API
9 |
10 |
11 | This allows for integration of the CoopCycle platform via the WordPress (WooCommerce) and Prestashop plugins.
12 |
An API is a pair of keys (Identifier and Secret key) which is use to integrate different softwares.
13 |
14 |
15 | ---
16 |
17 | ## First things first
18 |
19 | If you need to create and use this API it means your client (a business you deliver for) have their own website with e-commerce.
20 |
21 | ## What does the API do?
22 |
23 | It allows for deliveries placed on a third-party website to be sent directly to the Store account on your CoopCycle instance.
24 |
25 | These purchases (deliveries) will show up under your client's Store account.
26 |
27 | ## Create the API keys
28 |
29 |
30 | Before creating the
keys (
Identifier and
Secret key) you need to
create a Store for that business. A pair of API keys are created for each individual Store.
31 |
32 |
33 | On the API main page a list of all create API keys will be displayed.
34 |
35 | 1. Click the Add button to create an API key
36 | 2. Give your API key pair an easily indentifable name under `App name`
37 | 3. Choose the Store under `Store`
38 | 4. Click Save
39 |
40 | After you've created the keys, you will be automatically directed to the API main page.
41 | ## Use the API keys
42 |
43 |
44 | ⚠️ Only share the API with the developer of your client's website who will set up the CoopCycle plugin.
45 |
46 |
47 | Use the `Copy` button for each key and send them securely to the person who will configure the plugin.
48 |
49 | See here on how to set up the CoopCycle plugin go.
50 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/externaldisplay.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Order Form
4 | parent: Deliveries
5 | nav_order: 5
6 | ---
7 |
8 | # External display (Order form)
9 |
10 |
11 | The Order form can be embedded on any website external to the CoopCycle platform. It allows for anyone to place and pay for an order on your instance without requiring a user account.
12 | The platform allows you to create multiple, independent delivery forms.
13 |
14 |
15 | ---
16 |
17 | ## Creation delivery form
18 |
19 | 1. Click the Add button
20 | ### **Pricing**
21 | Choose a pricing that corresponds for each Order form.
22 |
23 | See here on how to [create a pricing](/en/web/admin/deliveries/pricing/).
24 | ### **Time slot**
25 | Choose a time slot that corresponds for each Order form.
26 |
27 | The default option `Choose a time slot` allows the user to select a custom time.
28 |
29 | See here on how to [create a time slot](/en/web/admin/deliveries/timeslots/).
30 |
31 | ### **Package set**
32 | Choose a package that corresponds for each Order form.
33 |
34 | See here on how to [create a package](/en/web/admin/deliveries/packages/)
35 |
36 | ### Add a vehicle choice
37 | Checking ☑️ this option will give the user a choice between a **regular bicycle** or a **cargo bike** to choose from dependant on their parcel size.
38 |
39 | ### Ask for weight of goods
40 |
41 | This will display and make the **weight** field mandatory when creating an order.
42 |
43 | 2. Click Save.
44 |
45 |
46 | When clicking save you will be taken to the previous page where you will see the created form. Click on the code ID, the random letters on the left-hand side.
47 |
48 | Below the form setting you inputted earlier the necessary code will be displayed which allows the form to be embedded on an external website.
49 |
50 | Contact your developer to help you embed the form or contact CoopCycle at `dev [at] coopcycle [dot] org`.
51 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/failures.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Failure reasons
4 | parent: Deliveries
5 | nav_order: 9
6 | ---
7 |
8 | # Failure reasons
9 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/incidents.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Incidents
4 | parent: Deliveries
5 | nav_order: 2
6 | ---
7 |
8 | # Incidents
9 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/integrations.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Integrations
4 | parent: Deliveries
5 | nav_order: 14
6 | ---
7 |
8 | # Integrations
9 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/invoicing.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Invoicing
4 | parent: Deliveries
5 | nav_order: 3
6 | ---
7 |
8 | # Invoicing
9 |
10 | Here you can prepare data for invoicing and use it in your Invoicing software. See Invoicing with Odoo to learn more.
11 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/packages.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Packages
4 | parent: Deliveries
5 | nav_order: 7
6 | ---
7 |
8 | # Packages
9 |
10 |
11 | This setting allows you set up different types of packages or parcels that can be implemented for Stores or Order forms.
12 |
13 |
14 | On the main Packages page click Add to create a new Package.
15 |
16 | Once you created one or more Packages on the main page the **Item number**, **Name** and **Type of packages** will be displayed for each Package.
17 |
18 | ## Creating a Package
19 |
20 | ### Name
21 | Type an easily identifiable name for your Package.
22 |
23 | INFO: This name is not displayed to Customers or Store owners.
24 |
25 | ### Packages
26 |
27 |
28 | INFO:
29 | Under Packages you can create multiple type of packages.
30 |
31 |
32 | Click on Add as many times as different Package types you need to create.
33 |
34 | #### **Name**
35 | Type of name for the package type.
36 |
37 | This can be anything from sizes, e.g.: `SMALL 30x30, LARGE 50x50, X-LARGE 100x100`, or coffee roasters `BAG, CRATE, BOX`, or any kind of categories of packages that you need.
38 |
39 | INFO: Customers or Store owners will choose from the type of packages group, `Sizes`, `Coffee roasters`, `Wholesale food shop`.
40 |
41 | #### **Volume units**
42 |
43 |
44 | ATTENTION:
45 | This option is not implemented yet and it is unnecessary so far.
46 |
47 |
48 | Once you've set up your Packages click Save.
49 |
50 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/pricing.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Pricing
4 | parent: Deliveries
5 | nav_order: 4
6 | ---
7 |
8 | # Pricing
9 |
10 |
11 | Here you can configure a custom pricing to use for Orders forms, Restaurants and Stores.
12 | The custom pricing can contain multiple Rules and each Rule can be configured by combining the different Conditions. See
Pricing to know more.
13 |
14 |
15 |
16 | ---
17 |
18 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/tags.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Tags
4 | parent: Deliveries
5 | nav_order: 10
6 | ---
7 |
8 | # Tags
9 |
10 |
11 | Tags can be used as specific short descriptions of tasks. They can be applied manually to tasks or assigned to a Store where all tasks created for that Store will automatically get the assigned tag attached.
12 |
13 |
14 | On the Tags main page a list of all available tags will be displayed.
15 |
16 | In order to create a new tag click Create new tag
17 |
18 | Tags are composed of a **Name** and a **Colour**.
19 | ## Name
20 | Type in an easily identifiable name for the tag
21 |
22 | ## Color
23 |
24 | Select a colour for the tag.
25 | You can select it from the color-picker, by inserting a HEX or RGBA colour code or selecting a predefined colour.
26 |
27 | Once you've set up the tag click Save.
28 |
29 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/timeslots.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Timeslots
4 | parent: Deliveries
5 | nav_order: 6
6 | ---
7 |
8 | # Time slots
9 |
10 |
11 | Here you can create multiple time slots that can be used for Order forms, Restaurants and Stores.
12 |
13 |
14 | On the main Time slots page a list of all the created timeslots is displayed.
15 |
16 | To create a time slot click on Add.
17 |
18 | ## Time slot preview
19 |
20 | Here you can preview how the timeslot will look like as you're setting it up.
21 |
22 | ## Name
23 | Type in a easily identifiable name for the time slot.
24 |
25 | ## Interval
26 | Indicates how many working days ahead an order can be placed.
27 |
28 | ## Prior notice (hours)
29 |
30 | **COMING SOON**
31 |
32 | ## Same day cutoff
33 |
34 | This setting allows orders to be delivered on the same day if orders are placed before the appointed time. Or it allows orders to be delivered the next day if orders are placed after the appointed time.
35 |
36 | ## Delivery time slots
37 |
38 |
39 | ATTENTION:
40 | Mode simple will be deprecated. Instead use Mode avancé
41 |
42 |
43 | See here on how to set up time slots.
44 |
45 | Click Save after you've set up the time slots.
46 |
47 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/vehicles.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Vehicles
4 | parent: Deliveries
5 | nav_order: 12
6 | ---
7 |
8 | # Vehicles
9 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/warehouses.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Warehouses
4 | parent: Deliveries
5 | nav_order: 13
6 | ---
7 |
8 | # Warehouses
9 |
--------------------------------------------------------------------------------
/docs/_web/admin/deliveries/zones.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Zones
4 | parent: Deliveries
5 | redirect_from:
6 | - /en/tutorials/zones.html
7 | nav_order: 8
8 | ---
9 |
10 | # Zones
11 |
12 |
13 | Here you can upload a .geojson
file containing a perimeter which will mark the delivery area.
14 |
15 |
16 | ## Creating a `.geojson` file
17 |
18 | This is how you create the delivery zone or perimeter by using any software that allows the creation of a **polgyon** and saving or exporting a `.geojson` file.
19 |
20 | 1. Go to the online software [geojson.io](https://geojson.io/)
21 | 2. Zoom in to the specific area you want to create a perimeter around.
22 | 3. Select the **polygon**  tool on the right-hand side vertical bar.
23 | 4. Once the tool is selected, click once anywhere you want, move your cursor to the next area on the map and click again. This will form a straight line between those first two pins, keep going until you reach the first pin you created and click right on it for the polygon (zone or perimeter) to form.
24 |
25 | TIP: To move around the map whilst drawing the polygon, simply hold left-click whilst moving the map, unhold the left-click and continue drawing the polygon.
26 |
27 | 5. Once you've finished creating the zone, hover over the **Save** button on the top-left corner and select **GeoJSON**.
28 | 6. This will download the `.geojson` file.
29 |
30 | ## Upload the `.geojson` file
31 |
32 | 1. On the Zones main page click on File and select the `.geojson` file.
33 | 2. Click on Send to upload the file to the platform.
34 | 3. Once uploaded, on the Zones main page a preview map of the zone will be displayed.
35 |
36 | Below is a GIF example on how to use the geojson.io software.
37 |
38 | ---
39 |
40 | 
41 |
--------------------------------------------------------------------------------
/docs/_web/admin/foodtech_dashboard.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Food tech dashboard
4 | nav_exclude: true
5 | ---
6 |
7 | # Food tech orders live management dashboard
8 |
9 | 
10 |
11 | ## Delay
12 |
13 | The delay means "A rider can not pickup things in the next 30min". The restaurant owner has his own delay (rush mode) which means "I can not start preparing an order in the next Xmin" (for now 25min).
14 | So if prep time is 20min, a restaurant set rush mode (+25min) and dispatcher set a 20min delay. Then restaurant and dispatch are operating with the same "lateness", then the customer is just delayed 25min not 25min + 20min.
15 |
--------------------------------------------------------------------------------
/docs/_web/admin/orders.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Orders
4 | parent: Admin
5 | nav_order: 2
6 | ---
7 |
8 | # List of orders
9 |
10 | 
11 |
12 | The list of orders displays orders which are underway on the platform. You can display the cancelled orders by ticking the option : "Display cancelled orders”.
13 |
14 | The administrator can cancel an order by clicking on the button `Cancel` d’une commande. Displayed informations are :
15 |
16 | - id, order's number
17 | - The type of order
18 | - Customer who engaged the order
19 | - The order's statut
20 | - Total amount charged for the customer
21 | - The associated bill, that you can download in pdf format
22 | - Date of creation
23 | - The `Cancel` button for an order
24 |
--------------------------------------------------------------------------------
/docs/_web/admin/settings.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Settings
4 | parent: Admin
5 | nav_order: 7
6 | ---
7 |
8 | # Settings
9 |
10 | 
11 |
--------------------------------------------------------------------------------
/docs/_web/admin/shops.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Shops / Restaurants
4 | parent: Admin
5 | nav_order: 4
6 | ---
7 |
8 | # List of shops/restaurants
9 |
--------------------------------------------------------------------------------
/docs/_web/admin/statistics.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Statistics
4 | parent: Admin
5 | nav_order: 6
6 | ---
7 |
8 | # Statistics
9 |
--------------------------------------------------------------------------------
/docs/_web/admin/users.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Users
4 | parent: Admin
5 | nav_order: 5
6 | ---
7 |
8 | # Users
9 |
10 | Here you can manage users. See Management of users to know more.
11 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coopcycle/coopcycle-docs/17658ac8decc5a6f35589351984fe41bf07df94f/favicon.ico
--------------------------------------------------------------------------------