Naar hoofdcontent

Magento

Magento 1

Deze pagina is gebasseerd op de Magento 2 configuratie, maar veel van de instellingen zouden een gelijke variant moeten hebben in Magento 1.

Magento en Clonable werken perfect met elkaar samen, om de intergratie nog beter te laten werken raden we aan om onze Magento extensie te gebruiken.

Spookstores

Magento en Clonable werken met elkaar samen door middel van een "Spookstore". Een Spookstore is eigenlijk een onvertaalde storeview die je laat vertalen door Clonable. Dit betekent dat je voor (bijvoorbeeld) Duitsland een nieuwe storeview maakt, maar de content Nederlands laat. Dit geeft de flexibiliteit om in de achterkant van Magento een taal te configureren, zonder dat je de vertalingen hoeft te doen.

Wat doet Clonable

Clonable doet alles wat te maken heeft met frontend vertalingen, denk hierbij aan alles wat de gebruiker op de website kan zien zoals:

  • Alle teksten
  • URL's
  • SEO data

Wat doet Magento

Aan Magento laten we het beheer van de storeview over en de backend vertalingen waar Clonable niet bij kan. Hieronder vallen:

  • Email vertalingen
  • Producten en categorieën beheren voor specifieke landen
  • Andere taalspecifieke logica

Storeview configuratie

Het configureren van de Spookstore is vrij simpel, dit doe je op dezelfde manier als hoe je normaal een nieuwe storeview toegoegt. Het is wel belangrijk dat je de webconfiguratie van de storeview correct instelt, hierbij is het belangrijkste dat de base URL's van de storeview kloppen. Bij een nieuw domein of een subdomain wordt dit gewoon het nieuwe domein voor je buitenlandse storeview.

Bij een subfolders is het belangrijk dat je de subfolder toevoegt aan de Base URL's. Het is in Magento ook mogelijk om een Store Code automatisch toe te voegen aan de URL's, als je deze optie aan hebt staan, zorg er dan voor dat je de Base URL's in de storeview hetzelfde hebt staan als in je Default Config. Add Store Code to Urls instelling

Storeview proxy

Om een Spookstore goed te laten werken is het van belang dat er een proxy wordt ingesteld. Bij het instellen van een proxy heb je eigenlijk 2 verschillende opties, afhankelijk van wat voor soort clone je hebt, heb je één van deze opties nodig.

Nieuw domein of subdomein

Wanneer je nieuwe taal op een nieuw domein of subdomein komt te staan, is het alleen benodigd om de DNS-instellingen in te stellen. Hiervoor kun je de standaard DNS-instellingen van Clonable volgen.

Subfolder configuratie

Het configureren van een subfolder clone is iets complexer en vereist toegang tot de NGINX configuratie van je Magento-website.

Om ervoor te zorgen dat Clonable de subfolder (hieronder /it/) kan vertalen is het belangrijk dat je het verkeer wat op deze subfolder binnenkomt op de juiste manier doorverwijst naar Clonable.

Wat moet je hieronder aanpassen

Jouw configuratie kan anders zijn

Hieronder staat een voorbeeld van de NGINX configuratie voor de subfolder, het kan zijn dat de standaard configuratie van je website er iets anders uitziet (bijvoorbeeld meerdere bestanden), maar over het algemeen lijtk het redelijk hetzelfde.

Als het goed is, is er al een NGINX configuratie voor je website, dus het is alleen van belang om de Clonable configuratie hieraan toe te voegen. In de onderstaande configuratie zijn de blokken die je nodig hebt gehighlight.

Vervang in het voorbeeld hieronder de volgende dingen:

  • /it/ → vervang de subfolder van de clone (bijvoorbeeld /en/ voor Engels)
  • magento.testshops.nl → vervang de hostname van de website (als je website www. gebruikt, zet deze er dan ook bij)
upstream fastcgi_backend {
server unix:/run/php/php8.1-fpm-magento.sock;
}

upstream upstream_clonable {
# server 89.41.171.180:443; # Uncomment this line and comment the next line to use IPv4 instead of IPv6
server [2a01:7c8:e001:d9:0:0:0:e778]:443;
keepalive 8;
}

server {
listen 443 ssl http2;
server_name magento.testshops.nl;

ssl_certificate /etc/letsencrypt/live/magento.testshops.nl/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/magento.testshops.nl/privkey.pem;
set $MAGE_ROOT /home/magento/magento2/;
include /home/magento/magento2/nginx.conf;

################## ~!README!~ #######################
# Add the location blocks below together with the upstream block to your
# own NGINX configuration. Do not copy the lines above, similar lines should already
# be present in your own configuration. We also recommend adding Clonable-Clone-Subfolder
# to your Vary header to prevent caching issues. This template is to be used for reference.
# Please read the comments carefully and make changes if necessary.
#####################################################


# Static HTML and JSON files may need to be translated, so we should route
# them via Clonable

location ~ ^/it/static/.*\.(html|json)$ {
if ($http_clonable_request_id = "") {
rewrite ^(.*)$ /clonable$1 last;
}

# Let the default /static/ handler handle these requests.
# Note: if the static folder is always served from the subfolder, or if there is no subfolder,
# remove the line below and replace it with the content from that block.
rewrite ^/it/(.*)$ /$1 last;
}

# Normal static content can be served directly.
# If some content does need to be processed (eg substitution rules), add the file
# to the location block above in the regex.
# Note: if the static folder is always served from the subfolder, or if there is no subfolder,
# do not include the block below, but instead use the already existing block for this location.
location /it/static/ {
rewrite ^/it/(.*)$ /$1 last;
}

# This location block intercepts requests to the chosen subfolder, adjust if necessary
location /it/ {
# Check if this request is coming from clonable. If not, forward to Clonable. Otherwise, handle normally.
if ($http_clonable_request_id = "") {
rewrite ^(.*)$ /clonable$1 last;
}

# Match the content below with the default behaviour in your location block for the
# root (/). The line below is taken from the default NGINX configuration, but may be
# different if NGINX is set up as a reverse proxy. In case you are also using Varnish,
# be sure to also read the chapter about Varnish.
try_files $uri $uri/ /index.php$is_args$args;
}

# This location block is used to forward requests to Clonable
location /clonable/ {
internal; # Prevents outside access
rewrite ^/clonable(.*) $1 break; # Remove clonable prefix before proxying

# SNI
proxy_ssl_server_name on;
proxy_ssl_name magento.testshops.nl;
proxy_set_header Host magento.testshops.nl;
# Use http 1.1 for proxy connections
proxy_http_version 1.1;
# SSL protocols for upstream connections
proxy_ssl_protocols TLSv1.2 TLSv1.3;
proxy_pass https://upstream_clonable;
# Increase default buffer sizes;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}

}

Valideer de proxy verbinding

Als je de proxy correct hebt geconfigueerd zou je de clonable-{header_name} headers moeten zien, deze geven aan welke server van Clonable wordt gebruikt en welke taal de site zou moeten zijn.

Clonable HTTP headers voorbeeld

Voor subfolder configuratie

Voor subfolder clones is het belangrijk dat je kijkt of de URL path gelijk is aan de clonable-original-path. Dus is onderstaand voorbeeld zie je dat de url: magento.testshops.nl/de/ gelijk is aan de clonable-original-path header.

Als bij de waarde van clonable-original-path een slash (/) staat, betekent het dat Clonable de content van de verkeerde storeview vertaald. Dit betekent dat je een fout hebt gemaakt in je subfolder configuratie of de webinstellingen van je storeview.

Storeview en content validatie

Het kan zijn dat het lijkt alsof de proxy goed werkt, maar dat alle subpagina's redirecten naar de homepagina van je website. Dit betekent vaak dat Magento een 404 geeft. Dit gebeurt als Magento niet snapt waar de storeview staat geconfigureerd, dit is vaak omdat de storeview niet goed staat geconfigureerd in magento.