THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Longueur maxi flux XML

(05-04-2020 19:04:37)


Savez-vous si un flux produit XML à une longueur maxi ? (lignes ou caractères)

J'ai un flux produit pour Facebook qui fonctionnait très bien jusqu’à ce que je rajoute quelques produits au catalogue.
Le flux monsite.fr/facebook m'affiche une page blanche.
Il faut que je retire 3 produits (n'importe lesquels) pour que le flux fonctionne à nouveau.
Dans cette config, le flux xml comporte un peu plus de 16 000 lignes.

Mon fichier facebook.html comporte des sauts de lignes pour rendre le flux plus clair. (à lire pour moi)

Du coup j'ai supprimé tous les sauts de lignes pour réduire le longueur du flux.

Ça marche mais je voudrais comprendre.
Je n'ai pas trouvé d'info.
Est-ce une limite de thélia ?

Merci pour les infos !

Offline

#2 Re: Longueur maxi flux XML

(05-04-2020 19:36:17)


Il n'y a pas de limite à la tallle d'un flux RSS.

Je crois comprendre que tu as codé ton flux toi-même (/facebook n'est pas une route standard Thelia).
Si facebook refuse ce flux, c'est sans doute qu'il est mal formé, ou invalide. Certainement à cause d'un des produits que tu as ajouté, dont un des textes doit contenir un caractère invalide dans un document XML  (<, >, &, ...)


OpenStudio Toulouse

Offline

#3 Re: Longueur maxi flux XML

(05-04-2020 21:44:50)


Bonjour Roadster,

Merci pour ta réponse.

Aucun problème de compatibilité de flux coté Facebook. Mon flux comporte approximativement 650 produits.
Facebook interroge ce flux chaque heure depuis plusieurs mois sans problème.
J'ai reçu hier une alerte de facebook m'indiquant que mon flux était invalide.
En interrogeant la page monsite.fr/facebook j'avais en effet comme résultat une page blanche au lieu de mon flux habituel.
Çe moment correspond en effet à la mise en ligne de nouveaux produits.
Ayant déja eu ce problème, mon premier réflexe a été de chercher les caractères pouvant poser problème sur les descriptions des nouveaux produits mais le problème ne vient pas de là.

Ce que je ne comprend pas, c'est que :

sans modifier le code de mon fichier facebook.html, si je met hors-ligne 3 produits (n'importe lesquels, ancien ou nouveau) mon flux fonctionne (la page monsite.fr/facebook me renvoi bien mon flux produit xml)

Sans mettre hors ligne des produits, si je supprime des sauts de ligne dans mon fichier facebook.html, il fonctionne à nouveau.
C'est pour cette raison que j'imaginais qu'il y avait une limite de nombres de ligne sur les fichiers xml.

C'est assez étrange.

Offline

#4 Re: Longueur maxi flux XML

(05-04-2020 22:38:30)


Page blanche = Erreur PHP

Il se peut que la génération de ton fichier dépasse la mémoire allouée à PHP, ou le temps d’exécution maximal. Passe en mode développement pour voir la nature exacte du problème.


OpenStudio Toulouse

Offline

#5 Re: Longueur maxi flux XML

(06-04-2020 14:40:31)


Bonjour,

Le mode dev ne me donne aucune indication.
J'ai dupliqué le flux pour essayer de comprendre sans nuire a mon catalogue facebook.

Du coup,
sur ma page monsite.fr/index_dev.php/facebook_old_sauv (fichier d'origine) --> j'ai une page blanche

et le même code avec quelques saut de lignes en moins :
monsite.fr//index_dev.php/facebook_old --> tout fonctionne !

Si thelia n'est pas en cause, je vais ouvrir u ticket chez OVH.

Offline

#6 Re: Longueur maxi flux XML

(06-04-2020 14:51:08)


Chez OVH ? Pourquoi ?

Il faudrait qu'on voie le code de cette page pour qu'on puisse se faire une idée de la cause du problème.


OpenStudio Toulouse

Offline

#7 Re: Longueur maxi flux XML

(06-04-2020 16:16:24)


Pour OVH, je pensais au PHP execution time limit.

Le flux qui ne fonctionne pas : https://www.adepte-store.fr/index_dev.p … k_old_sauv
Le flux qui fonctionne (même code mais moins de saut de ligne) : https://www.adepte-store.fr/index_dev.php/facebook_old


Ci-dessous le code avec les sauts de lignes:

<?xml version="1.0"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
	<channel>
		<title>Adepte - Bijoux de créateurs</title>
		<link>http://www.adepte-store.fr</link>
		<description>Bijoux de créateurs spécialement sélectionnés pour vous</description>
        
        
        {loop name="product.details" type="product" visible="yes" exclude="2610"}
       			{loop name="category_parent" type="category" id=$DEFAULT_CATEGORY}
      					{$category_title = $TITLE }
							{loop name="category_parent_attribute" type="category" id=$PARENT}
								{$parent_category_title = $TITLE}
								{$parent_category_id = $ID }
       						{/loop}
       			{/loop}
       			
		
		<item>
			<g:id>{$ID}</g:id>
			<g:title>{$TITLE}</g:title>
			<g:description>
					{if $DESCRIPTION}{$DESCRIPTION|strip_tags nofilter}{else}{$TITLE} {$parent_category_title}{/if}
			</g:description>
			<g:link>{$URL}</g:link>
			<g:image_link>
				{loop type="image" name="image.main" product={$ID} height="1000" resize_mode="borders" limit="1"}
                      {$IMAGE_URL}
                {/loop}
		</g:image_link>
		
		{loop type="image" name="image.main" product={$ID} height="1000" resize_mode="borders" offset="1" limit="10"}
                      <g:additional_image_link>{$IMAGE_URL}</g:additional_image_link>
                {/loop}
		<g:brand>{$parent_category_title}</g:brand>
			<g:condition>new</g:condition>
			{$stock_total=0}
                    {loop name="pse" type="product_sale_elements" product="{$ID}"}
                	{$stock_total=$stock_total+{$QUANTITY}}
					{/loop}
			
			{if $stock_total > 0}
        		{assign var="availability" value ="in stock"}
    		{else}
        		{assign var="availability" value = "out of stock"}
    		{/if}
			<g:availability>{$availability}</g:availability>
			<g:price>{$TAXED_PRICE} EUR</g:price>
			{if $IS_PROMO}<g:sale_price>{$BEST_TAXED_PRICE} EUR</g:sale_price>{else}{/if}
			<g:shipping>
			<g:country>FR</g:country>
			<g:service>Standard</g:service>
			<g:price>0.00 EUR</g:price>
			</g:shipping>
			<g:google_product_category>
			{if $parent_category_id == 2}Vêtements et accessoires &gt; Bijoux &gt; Bracelets
			{else if {$category_title} == "Broches"} Vêtements et accessoires &gt; Bijoux &gt; Broches et épinglettes
			{else}Vêtements et accessoires &gt; Bijoux &gt; {$category_title}
			{/if}
			</g:google_product_category>
			
      </item>
    {/loop}
	</channel>
</rss>

Offline

#8 Re: Longueur maxi flux XML

(06-04-2020 17:02:31)


Le flux qui ne fonctionne pas : https://www.adepte-store.fr/index_dev.p … k_old_sauv

Pour moi il fonctionne très bien, je reçois bien le feed.

Et pour Facebook aussi il est très bien ce feed, d'après le debugger de feed : https://business.facebook.com/ads/product_feed/debug/

download

Le second fil (1100 lignes de moins) fonctionne aussi très bien :

download

Bref, il n'y a pas de problème pour moi big_smile


OpenStudio Toulouse

Offline

#9 Re: Longueur maxi flux XML

(06-04-2020 19:01:39)


Merci Roadster pour le temps consacré à mon (vrai/faux) problème.

Je n'y comprend vraiment plus rien.
Sais-tu pourquoi le flux https://www.adepte-store.fr/facebook_old_sauv me renvoie une page blanche ? (testé à 20h00)
Et pas chez toi ?

Offline

#10 Re: Longueur maxi flux XML

(06-04-2020 20:52:41)


page blanche aussi chez moi

Offline

#11 Re: Longueur maxi flux XML

(06-04-2020 21:15:38)


Oui, moi aussi. Pour moi, le problème est plutôt à chercher côté hébergement que côté Thelia, sinon ça marcherait tout le temps ou jamais.

Il te faut regarder dans le error.log de PHP et/ou de Apache. Je suppose que tu es en mutualisé, donc : https://docs.ovh.com/fr/hosting/mutuali … e-mon-site


OpenStudio Toulouse

Offline

#12 Re: Longueur maxi flux XML

(06-04-2020 23:28:07)


OVH en mutu avec SQL privé
Je vais regarder çà.
Merci pour les pistes à suivre

Offline

#13 Re: Longueur maxi flux XML

(07-04-2020 00:51:59)


Je ne sais pas si je n'avais pas un peu mélangé les codes des deux pages dans les liens de mon post de 16h16:24. C'est pour cela je crois que la page qui devait renvoyer une erreur  a fonctionné pendant quelques temps. Il ne me semble pas que le problème soit intermittent. Désolé pour cette erreur. C'est une perte de temps et ça rend le diagnostique un peu foireux.

Je viens de remettre ça d'aplomb de tester et de regarder les logs OVH.
Au niveau des logs,
pour le flux https://www.adepte-store.fr/facebook_old --> tout va bien
[07/Apr/2020:01:06:33 +0200] "GET /facebook_old HTTP/1.1" 200 63644 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"

pour le flux https://www.adepte-store.fr/facebook_old_sauv (Il y a seulement un saut de ligne en plus dans ce fichier) --> tout va mal
[07/Apr/2020:01:06:38 +0200] "GET /facebook_old_sauv HTTP/1.1" 200 25 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"

Aucune trace dans le logs des erreurs

Le flux facebook_old qui fonctionne contient 16 337 lignes
Si je mets un produit de plus en ligne, il fonctionne et contient 16 358 lignes
Si je mets un second produit de plus en ligne, il ne fonctionne plus. sad

Offline

#14 Re: Longueur maxi flux XML

(07-04-2020 07:13:04)


si comme Roadster le pense, tu as un manque de memoire, tu peut augmenté dans les sql privé ovh

Offline

#15 Re: Longueur maxi flux XML

(07-04-2020 11:12:19)


Hello,

pas de dépassement de mémoire vive ces 7 derniers jours sur le SQL privé.

J'ai augmenté les limites de tous les réglages possible sur mon SQL privé:
innodb_buffer_pool_size 128M --> 256M
wait_timeout 600 -->3600
interactive_timeout 600-->3600
interactive_timeout 50-->100
max_allowed_packet 8M-->16M

Mais pas d'effet.
Je vais ouvrir un ticket chez OVH - Je vous tiendrais au courant - merci