From 0c4bfd8c14ebb16d97dfa8c7d6f47f75f661dddf Mon Sep 17 00:00:00 2001 From: "Marion (masp)" Date: Tue, 19 Dec 2023 10:21:37 +0100 Subject: [PATCH] [ADD] website: address autocomplete configuration Task-3618264 closes odoo/documentation#7309 X-original-commit: ca160e4e1ac8922fecb93530dd4282161c3812ff Signed-off-by: Marion Spindler (masp) --- .../websites/website/configuration.rst | 1 + .../configuration/address_autocomplete.rst | 58 ++++++++++++++++++ .../address-autocomplete-example.png | Bin 0 -> 14209 bytes .../enable-address-autocomplete.png | Bin 0 -> 7997 bytes 4 files changed, 59 insertions(+) create mode 100644 content/applications/websites/website/configuration/address_autocomplete.rst create mode 100644 content/applications/websites/website/configuration/address_autocomplete/address-autocomplete-example.png create mode 100644 content/applications/websites/website/configuration/address_autocomplete/enable-address-autocomplete.png diff --git a/content/applications/websites/website/configuration.rst b/content/applications/websites/website/configuration.rst index 21a77b3f3..c6cc30cd2 100644 --- a/content/applications/websites/website/configuration.rst +++ b/content/applications/websites/website/configuration.rst @@ -7,6 +7,7 @@ Configuration .. toctree:: :titlesonly: + configuration/address_autocomplete configuration/cookies_bar configuration/translate configuration/multi_website diff --git a/content/applications/websites/website/configuration/address_autocomplete.rst b/content/applications/websites/website/configuration/address_autocomplete.rst new file mode 100644 index 000000000..500148cbb --- /dev/null +++ b/content/applications/websites/website/configuration/address_autocomplete.rst @@ -0,0 +1,58 @@ +==================== +Address autocomplete +==================== + +You can use the Google Places API on your website to ensure that your users' delivery addresses exist and are understood +by the carrier. The Google Places API allows developers to access detailed information about places using HTTP requests. +The autocompletion predicts a list of places when the user starts typing the address. + +.. image:: address_autocomplete/address-autocomplete-example.png + :alt: Address autocomplete example + +.. seealso:: + - `Google Maps Platform `_ + - `Google Developers Documentation: Google Places API + `_ + + +To do so, go to :menuselection:`Website --> Configuration --> Settings` and enable :guilabel:`Address Autocomplete` in +the :guilabel:`SEO` section. + +.. image:: address_autocomplete/enable-address-autocomplete.png + :alt: Enable address autocomplete + +Insert your :guilabel:`Google Places API key` in the :guilabel:`API Key` field. If you don't have one, create yours on +the `Google Cloud Console `_ and follow these steps. + +Step 1: Enable the Google Places API +==================================== + +| **Create a New Project:** +| To enable the **Google Places API**, you first need to create a project. To do so, click :guilabel:`Select a project` + in the top left corner, :guilabel:`New Project`, and follow the prompts to set up your project. + +| **Enable the Google Places API:** +| Go to the :guilabel:`Enabled APIs & Services` and click :guilabel:`+ ENABLE APIS AND SERVICES.` Search for + :guilabel:`"Places API"` and select it. Click on the :guilabel:`"Enable"` button. + +.. note:: + Google's pricing depends on the number of requests and their complexity. + +Step 2: Create API Credentials +============================== + +Go to `APIs & Services --> Credentials `_. + +| **Create credentials:** +| To create your credentials, go to :guilabel:`Credentials`, click :guilabel:`Create Credentials`, and select + :guilabel:`API key`. + +.. admonition:: Restrict the API Key (Optional) + + For security purposes, you can restrict the usage of your API key. You can go to the :guilabel:`API restrictions` + section to specify which APIs your key can access. For the Google Places API, you can restrict it to only allow + requests from specific websites or apps. + +.. important:: + - Save Your API Key: Copy your API key and securely store it. + - Do not share it publicly or expose it in client-side code. diff --git a/content/applications/websites/website/configuration/address_autocomplete/address-autocomplete-example.png b/content/applications/websites/website/configuration/address_autocomplete/address-autocomplete-example.png new file mode 100644 index 0000000000000000000000000000000000000000..9540ea45bfc02ac010fb66414641cfffa26aa1f3 GIT binary patch literal 14209 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