About Website URL Shortener


Website URL Shortener is an Odoo app, which allows assigning and managing short URLs for Odoo website links. URL shortening is a well-known methodology to cope with too long and ugly-looking web addresses. The app introduces this technique in Odoo by allowing website editors to manually or automatically generate, control, and administrate short URLs for any Odoo web links.  

Configure the rules for automatic creation of short URLs based on iterator and token (for example, /s/12 and /s/rh72ko) or apply own key words (for example, /s/desk, /s/best-chairs).  

Have as many short links for a single address as needed for various purposes. Share one on Facebook, another - on Twitter, and a special one - for specific partners. Then, count redirects for each source.  

Use URL shortener right while customizing website or in Odoo advanced backend. Make a link soon expired or forever-lasting. Update token at any moment or archive a link if it is no longer valid.  

The app introduces a special website snippet that might be added to any Odoo website's inner content. Such a snippet would find or create a short URL right when a visitor opens a page.  

Developers might use the app to find or create a short URL for a target website address by applying a single Python method.

Automatic or custom URLs 

 

Multi channels control 

Website snippet 

 

Available for scripts and custom add-on 



Short URLs Configuration


The module lets generate the URL links automatically. The functionality of the module can be accessed either from the backend website configuration or when customizing a website from the frontend.

You can configure the way, your short links are generated. There are 2 generation methods, that you can choose from. The rules for the automatic creation of short URLs are based on iterator and token. Iterator would generate numeric URL consequentially iterating for new URLs (s/1, s/2, ...). Token - would generate unique identifiers of predefined length (s/aghs1, s/98hgy, ...).

To configure the URL Shortener:

1. Go to General Settings > Website

2. Find the section 'URLs Shortener'

3. Choose the Generation method (Iterator or Token)

4. If you chose 'Token', then also choose tokens length (Token size cannot be less than 5 and bigger than 64)

5. Optionally set the validity days (When a short URL would be expired in days after creation. Put 0 to make all URLs valid forever by default). For example, if you set up validity days as 90, and today is the 25th of October, then all your passwords created today will be valid till the 23rd of January. If you set the validity days as 0, then all created URLs will be valid forever by default.

6. Click 'Save'




Managing Short URLs


The short link can be either generated automatically, according to the preset configurations (see Short URLs Configuration), or added manually by applying your own keywords, so the link will look exactly the way you want. The preset rules will be considered in all places: as you generate links from the backend or website and even when you add a website snippet to a page. Thus, it will take just a few seconds to add a short URL to a page.

It is possible to have as many short links for a single address as needed for various purposes. That is particularly useful if you want to share different links in various social media to track the redirects for each source. For example, you can create a link to post on Facebook and another one - on Twitter. Then, you will be able to tell on which source, the campaign was the most successful.

The full list of the created short URLs can be managed from the backend. Add new short URLs, edit, archive, or delete the existing ones. 

Managing URLs from Backend

All created short URLs can be seen and managed from the backend. There are 2 ways to open the short URLs menu:

1. From General Settings > Website, the section 'URLs Shortener' by clicking 'Manage Short URLs'

2. Under the menu Websites >Configuration > Short URLs

In the short URLs menu, you will see the list of short URLs with the information about their 'Target URL', the validity time, and the related website.

You need a 'Target link' to give the instructions to the module, on what basis to create a short URL. For example, you may use one of the product's links to create a short URL (and get yoursite.com/s/desk instead of yoursite.com/shop/customizable-desk-config-9#attr=1,3,47).

The 'Validity time' can be set, so the link will be available only for a particular amount of time and then automatically disabled. For example, when you need the link to be available only during the 'October sale', set the validity as 31 days.

The field website is useful in the multi-website environment. It is particularly useful, as some or all available websites may contain similar products with the same links. So, you can create a short URL, which will be used on all websites. For example, you have 2 sites with the same product 'custom chair' (website1 and website2). You create a short URL /chair and make it available for both sites (as you don't choose a particular site). Thus, the products will be available by the following links: website1.com/s/chair and  website2.com/s/chair.

For extra convenience, you can group short URLs by a 'Target URL'. Thus, you will be able to see, how many links each 'Target URL' has and what are they. This is particularly useful if you have multiple short links for the 'Target URLs'.

In the Short URLs menu, you can manage links in a batch. You can export, archive, unarchive and delete links. For that, just select short URLs, click on an 'Action' icon above, and choose the action.


To add a new URL from the backend:

1. Click 'Create'

2. Add a 'Target URL'

3. Add some notes to easily distinguish short links

4. Optionally add the validity date to make a link auto expired. If you have added a default validity date in short URL settings, you can still change or remove it for a particular link on this step (see Short URLs Configuration)

5. Optionally, choose the website to restrict usage for a specific site or use a link globally (the app fully supports Odoo multi-website mode)

As soon as you click the button 'Create' the short URL is generated. If you don't like it, you can generate a new one, by clicking 'Update'. There you will see a new Token. Click the button 'Update' in the pop-up window to apply it. You can also replace the Token with your own value. 

To create your own short URL, use only the following numbers and symbols: 0123456789abcdefghijklmnopqrstuvwxyz_-. Other symbols will be replaced with the symbol '-'. Capital letters will be decapitalized.


To update an existing URL from the backend:

1. Open any short URL

2. Click 'Edit'

3. Add some changes

4. Click 'Save'


Website Interface for Short URLs

Use URL shortener right while customizing website. Here you can see and manage the short URLs for the active page address or add new short links. Change the Target URL if needed, then available short links will be recalculated.

To see all available short links of a particular page, open any website page and click Customize > Short URLs. The app would automatically retrieve a target web address with all search and hash parameters from a browser. In the list, you will see all URLs, that lead to the page. You will also be able to see the validity date, notes, and the website of a short URL.

On the right side of each URL, you will find the following buttons:

1. 'Copy to the clickboard'

2. 'Edit'

3. 'Archive'

If you click 'Edit' you will be able to change token, assign expiration date, apply to this website or to all sites.

You can change the automatically generated token by either generating a new one or by typing the value manually. So, the short link will look exactly the way you like. For example, the generated token is sf32jk, and you want to show in the link the relation to a product, so you change it to chair and the link will look the following way: yourwebsite.com/s/chair.

The assigning of an expiration date makes the short URL valid only for a particular amount of time. As you edit the link, it is possible to add, change or remove the expiration date of a short URL, if necessary.

By applying a short URL to one, several, or all sites, you define the websites, to which the created short links will lead to. For example, if you have a similar product with the same link on all of your websites, then you can set the short link for all three at once. Thus, the short link /s/chair will be available for all of your sites, if you will not specify a particular one (yoursite1.com/s/chair, yoursite2.com/s/chair...).

If you click on the short URL, then the page will be opened in a new tab.


Not only can you manage the short URLs from the website, but also you can create a short URL for the currently opened page.  

To create a new short URL:

1. Open the page, for which you want to add a short link

2. Click Customize > Short URLs

3. Click 'Add'

4. The token will be generated automatically, but you can change it the way you want (for example, add related words)

5. Optionally set the date, after which the link will be expired

6. Optionally choose a website

7. Click 'Save'

After that, the short link will be added to the list of URLs of the related page and will lead to the target URL.

For example, let's create a short URL for one of our products 'Customizable Desk'. The original link is /shop/customizable-desk-config-9#attr=1,3,47. It is too long and contains elements, which are difficult to understand. So, as we click the 'add' button, we see an automatically generated token dvdf23 which, unfortunately, doesn't identify the type of product to which the link leads. So, we decide to fix it manually and write customdeskbig. Below the token we can check the resulted short URL, so, we can fix it if we don't like something. We add some notes, so it will be easier to maintain the high number of short links. The validity date is set by default, but we can change it, if necessary. As we want to create a link for the current website only, in the field 'Website', we choose 'This website'. Now the link is ready to be used. 


Website Snippet

The website menu 'Customize' and the backend menu 'Short URLs' are available only for Odoo website designers. For certain pages, you might be interested to show a short link for ordinary visitors as well.

The app introduces a special website snippet that might be added to any Odoo website's inner content. Such a snippet would find or create a short URL right when a visitor opens a page.

For that, simply drag and drop the special website editor snippet 'Short URLs'. Alternatively, you can add an xml line the tag a with the href "#" and the class "short_url_widget".

Each time a page with such snippet is opened, a short URL will be searched and - if not found - created. In such a way, you may show the visitor a valid short URL, which he/she might copy and share.

Take into account: the snippet searches only for 'always valid' global short URLs. If the previously created short URLs have an expiration date, then the new link without such will be created.

For example, let's add a short URL to one of the products. As we add the snippet to the page, we see the line 'Computed Automatically'. After saving the page, the short link is automatically generated. This link has no validity date and it will be valid until deleted manually.




Access to URL Shortener


To manage short URLs a user should belong to the standard Odoo group 'Website Editor'. To assign the group to a user:

1. Go to General Settings

2. Click 'Manage Users'

3. Open a user and click 'Edit'

4. Find the section 'Website' and assign the user the role 'Editor and Designer'

5. Click 'Save'


When you add a URL snippet to the website page, a short link generated by the snippet will be seen by any visitor (see Website Snippet).



Short URLs in Scripts


The module might be also useful for developers. While developing a custom add-on, script, or server action you might be interested to have a short URL for certain website addresses. With the help of the module, it is possible to find or create a short URL for a target website address by applying a single Python method. 

To generate a short URL, you should trigger the method 'action_find_surl' of the model 'short.url.redirect'

As arguments it should receive:

target_url - string - relative web path. For example, "/shop/customizable-desk-config-9#attr=7,4,47)"

tocreate - boolean - whether a new short URL should be created if there are no active ones

alwaysvalid - boolean - whether to search only short URLs without expiration date. If set to False, planned to be expired links might be also returned.

website_id -integer - if False the app would search only global URLs, otherwise - for a specific website (applicable for multi-website mode)

The method would either return a string - the first found short URL satisfying the received parameters (e.g. '/s/desk') - or False (boolean) if nothing was found.

For example:

my_short_url = self.env["short.url.redirect"].action_find_surl(
    "/shop/customizable-desk-config-9#attr=7,4,47", True, True, 1
)