From f255f3061217de4edbf619ce178804eb55dfb050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Gigandet?= Date: Fri, 11 Mar 2022 11:21:18 +0100 Subject: [PATCH] fix: Add tests for Carrefour France import, + solve serving_size bug (#6476) * tests for serving size bug * fix incorrect serving size import #6473 * fix incorrect serving size import #6473 * fix incorrect serving size import #6473 * put carrefour import code in a module + tests * export multiple languages in sorted order * fix issue with random language order, fixes #2973 * fix issue with random language order, fixes #2973 * update tests --- lib/ProductOpener/Import.pm | 4 +- lib/ProductOpener/ImportConvert.pm | 38 +- .../ImportConvertCarrefourFrance.pm | 584 ++++++++++++++++++ lib/ProductOpener/Products.pm | 2 +- scripts/convert_carrefour_data.pl | 506 +-------------- .../3245390028754.json | 88 +++ .../3245414671133.json | 88 +++ .../3270190006787.json | 88 +++ .../3270190020165.json | 88 +++ .../3270190023814.json | 88 +++ .../3270190124924.json | 88 +++ .../3270190153085.json | 88 +++ .../3270190174387.json | 88 +++ .../3560070687145.json | 88 +++ .../3560071193102.json | 88 +++ .../3560071198954.json | 88 +++ .../3560071228491.json | 88 +++ .../8431876180701.json | 88 +++ .../8431876196009.json | 88 +++ .../8431876331110.json | 88 +++ .../8714800018920.json | 88 +++ t/import_convert_carrefour_france.t | 113 ++++ .../10412_3270190124924_text.xml | 1 + .../10412_3270190124924_valNut.xml | 1 + .../11734_3270190023814_text.xml | 1 + .../11734_3270190023814_valNut.xml | 1 + .../12334_3245390028754_text.xml | 1 + .../12334_3245390028754_valNut.xml | 1 + .../13003_3270190006787_text.xml | 1 + .../13003_3270190006787_valNut.xml | 1 + .../13766_8431876196009_text.xml | 1 + .../13766_8431876196009_valNut.xml | 1 + .../13837_3270190153085_text.xml | 1 + .../13837_3270190153085_valNut.xml | 1 + .../14505_8431876331110_text.xml | 1 + .../14505_8431876331110_valNut.xml | 1 + .../17049_3245414671133_text.xml | 1 + .../17049_3245414671133_valNut.xml | 1 + .../17290_8431876180701_text.xml | 1 + .../17290_8431876180701_valNut.xml | 1 + .../17984_3560071198954_text.xml | 1 + .../17984_3560071198954_valNut.xml | 1 + .../1913_3270190174387_text.xml | 1 + .../1913_3270190174387_valNut.xml | 1 + .../19683_3560071228491_text.xml | 1 + .../19683_3560071228491_valNut.xml | 1 + .../20297_3270190020165_text.xml | 1 + .../20297_3270190020165_valNut.xml | 1 + .../20300_3270190020165_text.xml | 1 + .../20300_3270190020165_valNut.xml | 1 + .../20671_3270190124924_text.xml | 1 + .../20671_3270190124924_valNut.xml | 1 + .../23652_3560070687145_text.xml | 1 + .../23652_3560070687145_valNut.xml | 1 + .../7934_3560071193102_text.xml | 1 + .../7934_3560071193102_valNut.xml | 1 + .../8643_3560071198954_text.xml | 1 + .../8643_3560071198954_valNut.xml | 1 + .../9572_8714800018920_text.xml | 1 + .../9572_8714800018920_valNut.xml | 1 + 60 files changed, 2175 insertions(+), 518 deletions(-) create mode 100644 lib/ProductOpener/ImportConvertCarrefourFrance.pm create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3245390028754.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3245414671133.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3270190006787.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3270190020165.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3270190023814.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3270190124924.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3270190153085.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3270190174387.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3560070687145.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3560071193102.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3560071198954.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/3560071228491.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/8431876180701.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/8431876196009.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/8431876331110.json create mode 100644 t/expected_test_results/import_convert_carrefour_france_export/8714800018920.json create mode 100644 t/import_convert_carrefour_france.t create mode 100644 t/inputs/import_convert_carrefour_france/10412_3270190124924_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/10412_3270190124924_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/11734_3270190023814_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/11734_3270190023814_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/12334_3245390028754_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/12334_3245390028754_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/13003_3270190006787_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/13003_3270190006787_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/13766_8431876196009_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/13766_8431876196009_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/13837_3270190153085_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/13837_3270190153085_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/14505_8431876331110_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/14505_8431876331110_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/17049_3245414671133_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/17049_3245414671133_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/17290_8431876180701_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/17290_8431876180701_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/17984_3560071198954_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/17984_3560071198954_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/1913_3270190174387_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/1913_3270190174387_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/19683_3560071228491_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/19683_3560071228491_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/20297_3270190020165_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/20297_3270190020165_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/20300_3270190020165_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/20300_3270190020165_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/20671_3270190124924_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/20671_3270190124924_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/23652_3560070687145_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/23652_3560070687145_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/7934_3560071193102_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/7934_3560071193102_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/8643_3560071198954_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/8643_3560071198954_valNut.xml create mode 100644 t/inputs/import_convert_carrefour_france/9572_8714800018920_text.xml create mode 100644 t/inputs/import_convert_carrefour_france/9572_8714800018920_valNut.xml diff --git a/lib/ProductOpener/Import.pm b/lib/ProductOpener/Import.pm index c8e266a2457ab..ce63c178b9075 100644 --- a/lib/ProductOpener/Import.pm +++ b/lib/ProductOpener/Import.pm @@ -1084,6 +1084,8 @@ sub import_csv_file($) { # Skip data that we have already imported before (even if it has been changed) # But do import the field "obsolete" elsif (($field ne "obsolete") and (defined $product_ref->{$field . "_imported"}) and ($product_ref->{$field . "_imported"} eq $imported_product_ref->{$field})) { + # we had a bug that caused serving_size to be set to "serving", this value should be overridden + next if (($field eq "serving_size") and ($product_ref->{"serving_size"} eq "serving")); $log->debug("skipping field that was already imported", { field => $field, imported_value => $imported_product_ref->{$field}, current_value => $product_ref->{$field} }) if $log->is_debug(); next; } @@ -1771,7 +1773,7 @@ sub import_csv_file($) { $log->debug("storing product", { code => $code, product_id => $product_id, org_id => $org_id, Owner_id => $Owner_id }) if $log->is_debug(); - store_product($user_id, $product_ref, "Editing product (import) - " . $product_comment ); + store_product($user_id, $product_ref, "Editing product (import) - " . ($product_comment || "") ); push @edited, $code; $edited{$code}++; diff --git a/lib/ProductOpener/ImportConvert.pm b/lib/ProductOpener/ImportConvert.pm index 99dca01402734..99ac6e1436236 100644 --- a/lib/ProductOpener/ImportConvert.pm +++ b/lib/ProductOpener/ImportConvert.pm @@ -114,6 +114,7 @@ use Time::Local; use Data::Dumper; use Text::CSV; use HTML::Entities qw(decode_entities); +use XML::Rules; %fields = (); @fields = (); @@ -291,14 +292,14 @@ sub assign_countries_for_product($$$) { my $lcs_ref = shift; my $default_country = shift; - foreach my $possible_lc (keys %{$lcs_ref}) { + foreach my $possible_lc (sort keys %{$lcs_ref}) { if (defined $product_ref->{"product_name_" . $possible_lc}) { assign_value($product_ref,"countries", $lcs_ref->{$possible_lc}); $log->info("assign_countries_for_product: found lc - assigning value", { lc => $possible_lc, countries => $lcs_ref->{$possible_lc}}) if $log->is_info(); } } - if (not defined $product_ref->{countries}) { + if ((not defined $product_ref->{countries}) or ($product_ref->{countries} eq "")) { assign_value($product_ref,"countries", $default_country); $log->info("assign_countries_for_product: assigning default value", { countries => $default_country}) if $log->is_info(); } @@ -536,14 +537,15 @@ sub remove_quantity_from_field($$) { my $quantity = $product_ref->{quantity}; my $quantity_value = $product_ref->{quantity_value}; my $quantity_unit = $product_ref->{quantity_unit}; - - $quantity =~ s/\(/\\\(/g; - $quantity =~ s/\)/\\\)/g; - $quantity =~ s/\[/\\\[/g; - $quantity =~ s/\]/\\\]/g; - if ((defined $quantity) and ($product_ref->{$field} =~ /\s*(\b|\s+)($quantity|(\(|\[)$quantity(\)|\]))\s*$/i)) { - $product_ref->{$field} = $`; + if (defined $quantity) { + $quantity =~ s/\(/\\\(/g; + $quantity =~ s/\)/\\\)/g; + $quantity =~ s/\[/\\\[/g; + $quantity =~ s/\]/\\\]/g; + if ($product_ref->{$field} =~ /\s*(\b|\s+)($quantity|(\(|\[)$quantity(\)|\]))\s*$/i) { + $product_ref->{$field} = $`; + } } elsif ((defined $quantity_value) and (defined $quantity_unit) and ($product_ref->{$field} =~ /\s*\b\(?$quantity_value $quantity_unit\)?\s*$/i)) { $product_ref->{$field} = $`; @@ -870,6 +872,11 @@ sub clean_fields($) { $log->debug("clean_fields", { field=>$field, value=>$product_ref->{$field} }) if $log->is_debug(); + if (not defined $product_ref->{$field}) { + print STDERR "undefined value for field $field\n"; + next; + } + # HTML entities # e.g. Pâtes alimentaires cuites aromatisées au curcuma if ($product_ref->{$field} =~ /\&/) { @@ -1384,7 +1391,7 @@ sub load_xml_file($$$$) { # multiple values in different languages elsif ($source_tag eq '*') { - foreach my $tag ( keys %{$current_tag}) { + foreach my $tag ( sort keys %{$current_tag}) { my $tag_target = $target; # special case where we have something like allergens.nuts = traces @@ -1776,12 +1783,14 @@ sub get_list_of_files(@) { -sub print_csv_file() { +sub print_csv_file($) { + + my $file_handle = shift; - my $csv_out = Text::CSV->new ( { binary => 1 , sep_char => "\t" } ) # should set binary attribute. + my $csv_out = Text::CSV->new ( { binary => 1 , sep_char => "\t", eol => "\n", quote_space => 0 } ) # should set binary attribute. or die "Cannot use CSV: ".Text::CSV->error_diag (); - print join("\t", @fields) . "\n"; + $csv_out->print ($file_handle, \@fields) ; foreach my $code (sort keys %products) { @@ -1797,8 +1806,7 @@ sub print_csv_file() { } } - $csv_out->print (*STDOUT, \@values) ; - print "\n"; + $csv_out->print ($file_handle, \@values) ; print STDERR "code: $code\n"; } diff --git a/lib/ProductOpener/ImportConvertCarrefourFrance.pm b/lib/ProductOpener/ImportConvertCarrefourFrance.pm new file mode 100644 index 0000000000000..8a3509e32ea7b --- /dev/null +++ b/lib/ProductOpener/ImportConvertCarrefourFrance.pm @@ -0,0 +1,584 @@ +# This file is part of Product Opener. +# +# Product Opener +# Copyright (C) 2011-2020 Association Open Food Facts +# Contact: contact@openfoodfacts.org +# Address: 21 rue des Iles, 94100 Saint-Maur des Fossés, France +# +# Product Opener is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +# This package is used to convert CSV or XML file sent by producers to +# an Open Food Facts CSV file that can be loaded with import_csv_file.pl / Import.pm + +=head1 NAME + +ProductOpener::ImportConvertCarrefourFrance - convert product data files from Carrefour France to the Open Food Facts format. + +=head1 SYNOPSIS + +C is called by convert_carrefour_data.pl + +It is a separate module so that it can be easily tested in t/import_convert_carrefour_france.t + +=head1 DESCRIPTION + +.. + +=cut + +package ProductOpener::ImportConvertCarrefourFrance; + +use utf8; +use Modern::Perl '2017'; +use Exporter qw< import >; + +use Log::Any qw($log); + +use Storable qw(dclone); +use Text::Fuzzy; + +BEGIN +{ + use vars qw(@ISA @EXPORT_OK %EXPORT_TAGS); + @EXPORT_OK = qw( + + &convert_carrefour_france_files + + ); # symbols to export on request + %EXPORT_TAGS = (all => [@EXPORT_OK]); +} + +use vars @EXPORT_OK ; + +use ProductOpener::ImportConvert qw/:all/; + + +=head1 FUNCTIONS + +=head2 convert_carrefour_france_files ($file_handle, $files_ref) + +Convert a set of files provided by Carrefour France in OFF CSV format. + +=head3 Arguments + +=head4 file handle $file_handle + +=head4 reference to list of files $files_ref + +=cut + +sub convert_carrefour_france_files($$) { + + my $file_handle = shift; + my $files_ref = shift; + + # Warning some Carrefour XML files are broken with 2 .* + + # command to fix them by removing the second one: + + # find . -name "*.xml" -type f -exec sed -i 's/<\/TabNutXMLPF>.*/<\/TabNutXMLPF>/g' {} \; + + + %global_params = ( + lc => 'fr', + # countries => "France", # -> will be assigned based on which language fields are present + brands => "Carrefour", + stores => "Carrefour", + ); + + my $xml_errors = 0; + + # to count the different nutrients + my %nutrients = (); + + foreach my $file (@$files_ref) { + + my $code = undef; + + # CSV file with categories, to be loaded after the XML files + + if ($file =~ /nomenclature(.*).csv/i) { + + my @csv_fields_mapping = ( + + ["[produit] ean", "code"], + ["[produit] nomenclature", "nomenclature_fr"], + + ); + + load_csv_file({ file => $file, encoding => "UTF-8", separator => "\t", skip_non_existing_products => 1, csv_fields_mapping => \@csv_fields_mapping}); + } + + # Product data XML files + + elsif ($file =~ /(\d+)_(\d+)_(\w+).xml/) { + + $code = $2; + print STDERR "File $file - Code: $code\n"; + } + else { + # print STDERR "Skipping file $file: unrecognized file name format\n"; + next; + } + + print STDERR "Reading file $file\n"; + + if ($file =~ /_text/) { + # General info about the product, ingredients + + my @xml_rules = ( + + _default => sub {$_[0] => $_[1]->{_content}}, + TextFramesXMLPF => "pass no content", + TextFrameXMLPF => "pass no content", + TextFrameLinesPF => "pass no content", + # TextFrameLinePF => sub { '%fields' => [$_[1]->{code_champs} => \%{$_[1]} ]}, + TextFrameLinePF => sub { '%fields' => [$_[1]->{code_champs} => $_[1]->{languages} ]}, + Languages => "pass no content", + LanguagePF => sub { '%languages' => [$_[1]->{language_name} => $_[1]->{Content}]}, + + #"b" => sub { $_[0] => "" . $_[1]->{_content} . ""}, + #"u" => sub { $_[0] => "" . $_[1]->{_content} . ""}, + #"em" => sub { $_[0] => "" . $_[1]->{_content} . ""}, + + #"b" => "pass", + #"strong" => "pass", + "b" => sub { return '' . $_[1]->{_content} . '' }, + "strong" => sub { return '' . $_[1]->{_content} . '' }, + "u" => sub { return '' . $_[1]->{_content} . '' }, + "em" => "pass", + + "br" => "==
", + + + lOrder => undef, + SetOrder => undef, + SetCode => undef, + SetName => undef, + Comments => undef, + ModifiedBy => undef, + TextFrameLineId => undef, + F=>undef, + + ); + + + + my @xml_fields_mapping = ( + + # get the code first + + # don't trust the EAN from the XML file, use the one from the file name instead + # -> sometimes different + #["fields.AL_CODE_EAN.*", "code"], + + # we can have multiple files for the same code + # e.g. butter from Bretagne and from Normandie + # delete some fields from previously loaded versions + + ["[delete_except]", "producer|emb_codes|origin|_value|_unit|brands|stores"], + + ["fields.AL_CODE_EAN.*", "code_in_xml"], + + ["ProductCode", "producer_product_id"], + ["fields.AL_DENOCOM.*", "product_name_*"], + #["fields.AL_BENEF_CONS.*", "_*"], + #["fields.AL_TXT_LIB_FACE.*", "_*"], + #["fields.AL_SPE_BIO.*", "_*"], + #["fields.AL_ALCO_VOL.*", "_*"], + #["fields.AL_PRESENTATION.*", "_*"], + ["fields.AL_DENOLEGAL.*", "generic_name_*"], + ["fields.AL_INGREDIENT.*", "ingredients_text_*"], + #["fields.AL_RUB_ORIGINE.*", "_*"], + #["fields.AL_NUTRI_N_AR.*", "_*"], + #["fields.AL_PREPA.*", "_*"], + ["fields.AL_CONSERV.*", "conservation_conditions_*"], + #["fields.AL_PRECAUTION.*", "_*"], + #["fields.AL_IDEE_RECET.*", "_*"], + #["fields.AL_LOGO_ECO.*", "_*"], + #["fields.AL_POIDS_NET.*", "_*"], + #["fields.AL_POIDS_EGOUTTE.*", "_*"], + #["fields.AL_CONTENANCE.*", "_*"], + #["fields.AL_POIDS_TOTAL.*", "_*"], + #["fields.AL_INFO_EMB.*", "_*"], + #["fields.AL_PAVE_SC.*", "_*"], + #["fields.AL_ADRESSFRN.*", "_*"], + #["fields.AL_EST_SANITAIRE.*", "_*"], + #["fields.AL_TXT_LIB_DOS.*", "_*"], + #["fields.AL_TXT_LIB_REG.*", "other_information_*"], + #["fields.AL_INFO_CONSERV.*", "_*"], + + # We may have values in multiple languages, use FR + ["fields.AL_POIDS_NET.FR", "net_weight"], + ["fields.AL_POIDS_EGOUTTE.FR", "drained_weight"], + ["fields.AL_POIDS_TOTAL.FR", "total_weight"], + ["fields.AL_CONTENANCE.FR", "volume"], + + ["fields.AL_RUB_ORIGINE.*", "origin_*"], + + ["fields.AL_ADRESSFRN.*", "producer_*"], + + ["fields.AL_EST_SANITAIRE.FR", "emb_codes"], + + ["fields.AL_PAVE_SC.*", "customer_service_*"], + + ["fields.AL_PREPA.*", "preparation_*"], + ["fields.AL_PRECAUTION.*", "warning_*"], + ["fields.AL_IDEE_RECET.*", "recipe_idea_*"], + + ["fields.AL_TXT_LIB_REG.*", "other_information_*"], + ["fields.AL_TXT_LIB_FACE.*", "other_information_*"], + ["fields.AL_TXT_LIB_DOS.*", "other_information_*"], + ["fields.AL_BENEF_CONS.*", "other_information_*"], + ["fields.AL_OTHER_INFORMATION.*", "other_information_*"], + + ["fields.AL_SPE_BIO.*", "spe_bio_*"], + + ["fields.AL_BENEF_CONS.*", "benef_cons_*"], + ["fields.AL_TXT_LIB_FACE.*", "txt_lib_face_*"], + ["fields.AL_ALCO_VOL.*", "alco_vol_*"], + ["fields.AL_PRESENTATION.*", "presentation_*"], + + ["fields.AL_NUTRI_N_AR.*", "nutri_n_ar_*"], + + ["fields.AL_LOGO_ECO.*", "logo_eco_*"], + + + + ["fields.AL_INFO_EMB.*", "info_emb_*"], + + + ["fields.AL_TXT_LIB_DOS.*", "txt_lib_dos_*"], + ["fields.AL_INFO_CONSERV.*", "info_conserv_*"], + + + + ); + + $xml_errors += load_xml_file($file, \@xml_rules, \@xml_fields_mapping, undef); + } + + + elsif ($file =~ /_valNut/) { + # Nutrition facts + + my @xml_rules = ( + + _default => sub {$_[0] => $_[1]->{_content}}, + TabNutXMLPF => "pass no content", + TabNutColElements => "pass no content", + #TextFrameLinesPF => "pass no content", + #TextFrameLinePF => sub { '%fields' => [$_[1]->{code_champs} => $_[1]->{languages} ]}, + TabNutColElement => sub { '%nutrients' => [$_[1]->{Type_Code} => $_[1]->{Units} ]}, + Units => "pass no content", + Unit => sub { '@Units' => $_[1]}, + + "ARPercent,Description,Id,Label,Language,ModifiedBy,Name,ProductCode,RoundValue,TabNutCadrans,TabNutId,TabNutName,TabNutTemplateCode,TypeCode,Unit_value,lOrder,name" => "content", + #"LanguageTB,TabNutColElements,TabNutPhrases,TabNutXMLPF,Units,languages" => "no content", + #"TabNutColElement,TabNutPhrase,Unit" => "as array no content", + + + lOrder => undef, + SetOrder => undef, + SetCode => undef, + SetName => undef, + Comments => undef, + ModifiedBy => undef, + TextFrameLineId => undef, + F=>undef, + + ); + + + + my @xml_fields_mapping = ( + + # get the code first + + # don't trust the EAN from the XML file, use the one from the file name instead + # -> sometimes different + #["fields.AL_CODE_EAN.*", "code"], + + ["ProductCode", "producer_product_id"], + + ["nutrients.ENERKJ.[0].RoundValue", "nutriments.energy-kj_kJ"], + ["nutrients.ENERKC.[0].RoundValue", "nutriments.energy-kcal_kcal"], + ["nutrients.FAT.[0].RoundValue", "nutriments.fat_g"], + ["nutrients.FASAT.[0].RoundValue", "nutriments.saturated-fat_g"], + ["nutrients.CHOAVL.[0].RoundValue", "nutriments.carbohydrates_g"], + ["nutrients.SUGAR.[0].RoundValue", "nutriments.sugars_g"], + ["nutrients.FIBTG.[0].RoundValue", "nutriments.fiber_g"], + ["nutrients.PRO.[0].RoundValue", "nutriments.proteins_g"], + ["nutrients.SALTEQ.[0].RoundValue", "nutriments.salt_g"], + + + # unsure about units / values (lots of 0s) + # disabling: + + ["nutrients.FAMSCIS.[0].RoundValue", "nutriments.monounsaturated-fat-disabled_g"], + ["nutrients.FAPUCIS.[0].RoundValue", "nutriments.polyunsaturated-fat-disabled_g"], + ["nutrients.POLYL.[0].RoundValue", "nutriments.polyols-disabled_g"], + ["nutrients.STARCH.[0].RoundValue", "nutriments.starch-disabled_g"], + ["nutrients.ACL.[0].RoundValue", "nutriments.alcohol-disabled_g"], + ["nutrients.CHO.[0].RoundValue", "nutriments.cholesterol-disabled_g"], + ["nutrients.AGO.[0].RoundValue", "nutriments.omega-3-fat-disabled_g"], + ["nutrients.LACS.[0].RoundValue", "nutriments.lactose-disabled_g"], + + # vitamin C: + # + #ml + #ML + #100,00 + #millilitre + #12 + #15 + # + + ["nutrients.VITA.[0].RoundValue", "nutriments.vitamin-a-disabled_g"], + ["nutrients.VITC.[0].RoundValue", "nutriments.vitamin-c-disabled_g"], + ["nutrients.VITD.[0].RoundValue", "nutriments.vitamin-d-disabled_g"], + ["nutrients.VITE.[0].RoundValue", "nutriments.vitamin-e-disabled_g"], + ["nutrients.K.[0].RoundValue", "nutriments.potassium-disabled_g"], + ["nutrients.ZN.[0].RoundValue", "nutriments.zinc-disabled_g"], + ["nutrients.BIOT.[0].RoundValue", "nutriments.biotin-disabled_g"], + ["nutrients.MO.[0].RoundValue", "nutriments.molybdenum-disabled_g"], + ["nutrients.MN.[0].RoundValue", "nutriments.manganese-disabled_g"], + ["nutrients.FE.[0].RoundValue", "nutriments.iron-disabled_g"], + ["nutrients.MG.[0].RoundValue", "nutriments.magnesium-disabled_g"], + ["nutrients.P.[0].RoundValue", "nutriments.phosphorus-disabled_g"], + ["nutrients.NIA.[0].RoundValue", "nutriments.vitamin-pp-disabled_g"], + ["nutrients.CU.[0].RoundValue", "nutriments.copper-disabled_g"], + ["nutrients.CR.[0].RoundValue", "nutriments.chromium-disabled_g"], + ["nutrients.VITK.[0].RoundValue", "nutriments.vitamin-k-disabled_g"], + ["nutrients.SE.[0].RoundValue", "nutriments.selenium-disabled_g"], + ["nutrients.ID.[0].RoundValue", "nutriments.iodine-disabled_g"], + ["nutrients.FOLDFE.[0].RoundValue", "nutriments.folates-disabled_g"], + ["nutrients.VITB12.[0].RoundValue", "nutriments.vitamin-b12-disabled_g"], + ["nutrients.PANTAC.[0].RoundValue", "nutriments.pantothenic-acid-disabled_g"], + ["nutrients.VITB6.[0].RoundValue", "nutriments.vitamin-b6-disabled_g"], + ["nutrients.RIBF.[0].RoundValue", "nutriments.vitamin-b2-disabled_g"], + ["nutrients.THIA.[0].RoundValue", "nutriments.vitamin-b1-disabled_g"], + ["nutrients.FD.[0].RoundValue", "nutriments.fluoride-disabled_g"], + ["nutrients.CA.[0].RoundValue", "nutriments.calcium-disabled_g"], + ["nutrients.CLD.[0].RoundValue", "nutriments.chloride-disabled_g"], + + # for waters? but present for other products . by L ? + + # + #mg/L + #MCL + #1,00 + #milligramme par litre + #7,000 + # + + ["nutrients.CAL.[0].RoundValue", "nutriments.calcium-disabled_mgl"], + ["nutrients.FDL.[0].RoundValue", "nutriments.fluoride-disabled_mgl"], + ["nutrients.FR.[0].RoundValue", "nutriments.fluoride-disabled_mgl"], + ["nutrients.CLDE.[0].RoundValue", "nutriments.chloride-disabled_mgl"], + ["nutrients.BCO.[0].RoundValue", "nutriments.bicarbonates-disabled_mgl"], + ["nutrients.NH.[0].RoundValue", "nutriments.ammonium-disabled_mgl"], + ["nutrients.NAL.[0].RoundValue", "nutriments.sodium-disabled_mgl"], + ["nutrients.SO.[0].RoundValue", "nutriments.sulfates-disabled_mgl"], + ["nutrients.NO.[0].RoundValue", "nutriments.nitrates-disabled_mgl"], + ["nutrients.KL.[0].RoundValue", "nutriments.potassium-disabled_mgl"], + ["nutrients.SIO.[0].RoundValue", "nutriments.silica-disabled_mgl"], + ["nutrients.MGL.[0].RoundValue", "nutriments.magnesium-disabled_mgl"], + + # same thing as bicarbonates ? + ["nutrients.HCO.[0].RoundValue", "nutriments.hydrogenocarbonates-disabled_mgl"], + + ); + + # To get the rules: + + #use XML::Rules; + #use Data::Dump; + #print Data::Dump::dump(XML::Rules::inferRulesFromExample($file)); + + + $xml_errors += load_xml_file($file, \@xml_rules, \@xml_fields_mapping, undef); + + open(my $IN, "<:encoding(UTF-8)", $file); + my $xml = join('', (<$IN>)); + close ($IN); + + while ($xml =~ /Type_Code="(\w+)"/) { + $nutrients{$1}++; + $xml = $'; + } + } + } + + + + + + # Special processing for Carrefour data (before clean_fields_for_all_products) + + foreach my $code (sort keys %products) { + + my $product_ref = $products{$code}; + + if (defined $product_ref->{total_weight}) { + + $product_ref->{total_weight} =~ s/(\[emetro\])|(\[zemetro\])/e/ig; + + # + e métrologique + # (métrologique) + $product_ref->{total_weight} =~ s/(\+ )?e( ?([\[\(])?(métrologique|metrologique|metro|métro)([\]\)])?)?/e/ig; + $product_ref->{total_weight} =~ s/(\+ )?( ?([\[\(])?(métrologique|metrologique|metro|métro)([\]\)])?)/e/ig; + + # poids net = poids égoutté = 450 g [zemetro] + # poids net : 240g (3x80ge) 2 + # poids net égoutté : 150g[zemetro] 2 + # poids net : 320g [zemetro] poids net égoutté : 190g contenance : 370ml 2 + # poids net total : 200g [zemetro] poids net égoutté : 140g contenance 212ml + + } + + if ((defined $product_ref->{emb_codes}) and ($product_ref->{emb_codes} =~ /fabriqu|elabor|conditionn/i)) { + + $product_ref->{producer_fr} = $product_ref->{emb_codes}; + delete $product_ref->{emb_codes}; + } + } + + + # Clean and normalize fields + + clean_fields_for_all_products(); + + + # Special processing for Carrefour data (after clean_fields_for_all_products) + + foreach my $code (sort keys %products) { + + my $product_ref = $products{$code}; + + assign_main_language_of_product($product_ref, ['fr','es','it','nl','de','en','ro','pl'], "fr"); + + clean_weights($product_ref); # needs the language code + + assign_countries_for_product($product_ref, + { + fr => "en:france", + es => "en:spain", + it => "en:italy", + de => "en:germany", + ro => "en:romania", + pl => "en:poland", + } + , "en:france"); + + # categories from the [Produit] Nomenclature field of the Nomenclature .csv file + + # Conserves de mais -> Mais en conserve + if (defined $product_ref->{nomenclature_fr}) { + $product_ref->{nomenclature_fr} =~ s/^conserve(s)?( de| d')?(.*)$/$3 en conserve/i; + $product_ref->{nomenclature_fr} =~ s/^autre(s) //i; + } + + # Make sure we only have emb codes and not some other text + if (defined $product_ref->{emb_codes}) { + # too many letters -> word instead of code + if ( $product_ref->{emb_codes} =~ /[a-zA-Z]{8}/ ) { + delete $product_ref->{emb_codes}; + } + } + + match_taxonomy_tags($product_ref, "nomenclature_fr", "categories", + { + # split => ',|\/|\r|\n|\+|:|;|\b(logo|picto)\b', + # stopwords => + } + ); + + # also try the product name + match_taxonomy_tags($product_ref, "product_name_fr", "categories", + { + # split => ',|\/|\r|\n|\+|:|;|\b(logo|picto)\b', + # stopwords => + } + ); + + # logo ab + # logo bio européen : nl-bio-01 agriculture pays bas 1 + + # try to parse some fields to find tags + match_taxonomy_tags($product_ref, "spe_bio_fr", "labels", + { + split => ',|\/|\r|\n|\+|:|;|\b(logo|picto)\b', + # stopwords => + } + ); + + match_taxonomy_tags($product_ref, "other_information_fr", "labels", + { + split => ',|\/|\r|\n|\+|:|;|\b(logo|picto)\b', + # stopwords => + } + ); + + # certifié fsc + match_taxonomy_tags($product_ref, "info_emb_fr", "labels", + { + split => ',|\/|\r|\n|\+|:|;|\b(logo|picto)\b', + # stopwords => + } + ); + + + # Fabriqué en France par EMB 29181 pour Interdis. + # Fabriqué en France pour EMB 24381 pour Interdis. + # Elaboré par EMB 14167A pour INTERDIS + # Fabriqué en France par EMB 29181 (F) ou EMB 86092A (G) pour Interdis. + # Fabriqué par A = EMB 38080A ou / C = EMB 49058 ou / V = EMB 80120A ou / S = EMB 26124 (voir lettre figurant sur l'étiquette à l'avant du sachet) pour Interdis. + + match_taxonomy_tags($product_ref, "producer_fr", "emb_codes", + { + split => ',|( \/ )|\r|\n|\+|:|;|=|\(|\)|\b(et|par|pour|ou)\b', + # stopwords => + } + ); + + # + # + # + #pH 7,2. Résidu sec à 180°C : 1280 mg/L. + #
+ #Eau soumise à une technique d’adsorption autorisée. + #Autorisation ministérielle du 25 août 2003. + + } + + print_csv_file($file_handle); + + print_stats(); + + print STDERR "$xml_errors xml errors\n"; + + foreach my $file (@xml_errors) { + #print STDERR $file . "\n"; + } + + foreach my $nutrient (sort { $nutrients{$b} <=> $nutrients{$a} } keys %nutrients) { + #print STDERR $nutrient . "\t" . $nutrients{$nutrient} . "\n"; + } +} + + + +1; + diff --git a/lib/ProductOpener/Products.pm b/lib/ProductOpener/Products.pm index 8991dfbb55e37..3f3bf7dfaa85c 100644 --- a/lib/ProductOpener/Products.pm +++ b/lib/ProductOpener/Products.pm @@ -635,7 +635,7 @@ sub init_product($$$$) { require ProductOpener::GeoIP; $country = ProductOpener::GeoIP::get_country_for_ip(remote_addr()); } - else { + elsif (defined $countryid) { $country = $countryid; $country =~ s/^en://; } diff --git a/scripts/convert_carrefour_data.pl b/scripts/convert_carrefour_data.pl index bfb83c666a7ee..1db88517dd302 100755 --- a/scripts/convert_carrefour_data.pl +++ b/scripts/convert_carrefour_data.pl @@ -25,10 +25,8 @@ use CGI::Carp qw(fatalsToBrowser); -binmode(STDOUT, ":encoding(UTF-8)"); -binmode(STDERR, ":encoding(UTF-8)"); - use ProductOpener::ImportConvert qw/:all/; +use ProductOpener::ImportConvertCarrefourFrance qw/:all/; use CGI qw/:cgi :form escapeHTML/; use URI::Escape::XS; @@ -40,504 +38,10 @@ use Log::Any::Adapter ('Stderr'); -# Warning some Carrefour XML files are broken with 2 .* - -# command to fix them by removing the second one: - -# find . -name "*.xml" -type f -exec sed -i 's/<\/TabNutXMLPF>.*/<\/TabNutXMLPF>/g' {} \; - - -%global_params = ( - lc => 'fr', -# countries => "France", # -> will be assigned based on which language fields are present - brands => "Carrefour", - stores => "Carrefour", -); +binmode(STDOUT, ":encoding(UTF-8)"); +binmode(STDERR, ":encoding(UTF-8)"); +my $file_handle = *STDOUT; my @files = get_list_of_files(@ARGV); -my $xml_errors = 0; - -# to count the different nutrients -my %nutrients = (); - -foreach my $file (@files) { - - my $code = undef; - - # CSV file with categories, to be loaded after the XML files - - if ($file =~ /nomenclature(.*).csv/i) { - - my @csv_fields_mapping = ( - -["[produit] ean", "code"], -["[produit] nomenclature", "nomenclature_fr"], - -); - - load_csv_file({ file => $file, encoding => "UTF-8", separator => "\t", skip_non_existing_products => 1, csv_fields_mapping => \@csv_fields_mapping}); - } - - # Product data XML files - - elsif ($file =~ /(\d+)_(\d+)_(\w+).xml/) { - - $code = $2; - print STDERR "File $file - Code: $code\n"; - } - else { - # print STDERR "Skipping file $file: unrecognized file name format\n"; - next; - } - - print STDERR "Reading file $file\n"; - - if ($file =~ /_text/) { - # General info about the product, ingredients - - my @xml_rules = ( - -_default => sub {$_[0] => $_[1]->{_content}}, -TextFramesXMLPF => "pass no content", -TextFrameXMLPF => "pass no content", -TextFrameLinesPF => "pass no content", -# TextFrameLinePF => sub { '%fields' => [$_[1]->{code_champs} => \%{$_[1]} ]}, -TextFrameLinePF => sub { '%fields' => [$_[1]->{code_champs} => $_[1]->{languages} ]}, -Languages => "pass no content", -LanguagePF => sub { '%languages' => [$_[1]->{language_name} => $_[1]->{Content}]}, - -#"b" => sub { $_[0] => "" . $_[1]->{_content} . ""}, -#"u" => sub { $_[0] => "" . $_[1]->{_content} . ""}, -#"em" => sub { $_[0] => "" . $_[1]->{_content} . ""}, - -#"b" => "pass", -#"strong" => "pass", -"b" => sub { return '' . $_[1]->{_content} . '' }, -"strong" => sub { return '' . $_[1]->{_content} . '' }, -"u" => sub { return '' . $_[1]->{_content} . '' }, -"em" => "pass", - -"br" => "==
", - - -lOrder => undef, -SetOrder => undef, -SetCode => undef, -SetName => undef, -Comments => undef, -ModifiedBy => undef, -TextFrameLineId => undef, -F=>undef, - -); - - - - my @xml_fields_mapping = ( - - # get the code first - - # don't trust the EAN from the XML file, use the one from the file name instead - # -> sometimes different - #["fields.AL_CODE_EAN.*", "code"], - - # we can have multiple files for the same code - # e.g. butter from Bretagne and from Normandie - # delete some fields from previously loaded versions - - ["[delete_except]", "producer|emb_codes|origin|_value|_unit|brands|stores"], - - ["fields.AL_CODE_EAN.*", "code_in_xml"], - - ["ProductCode", "producer_product_id"], - ["fields.AL_DENOCOM.*", "product_name_*"], - #["fields.AL_BENEF_CONS.*", "_*"], - #["fields.AL_TXT_LIB_FACE.*", "_*"], - #["fields.AL_SPE_BIO.*", "_*"], - #["fields.AL_ALCO_VOL.*", "_*"], - #["fields.AL_PRESENTATION.*", "_*"], - ["fields.AL_DENOLEGAL.*", "generic_name_*"], - ["fields.AL_INGREDIENT.*", "ingredients_text_*"], - #["fields.AL_RUB_ORIGINE.*", "_*"], - #["fields.AL_NUTRI_N_AR.*", "_*"], - #["fields.AL_PREPA.*", "_*"], - ["fields.AL_CONSERV.*", "conservation_conditions_*"], - #["fields.AL_PRECAUTION.*", "_*"], - #["fields.AL_IDEE_RECET.*", "_*"], - #["fields.AL_LOGO_ECO.*", "_*"], - #["fields.AL_POIDS_NET.*", "_*"], - #["fields.AL_POIDS_EGOUTTE.*", "_*"], - #["fields.AL_CONTENANCE.*", "_*"], - #["fields.AL_POIDS_TOTAL.*", "_*"], - #["fields.AL_INFO_EMB.*", "_*"], - #["fields.AL_PAVE_SC.*", "_*"], - #["fields.AL_ADRESSFRN.*", "_*"], - #["fields.AL_EST_SANITAIRE.*", "_*"], - #["fields.AL_TXT_LIB_DOS.*", "_*"], - #["fields.AL_TXT_LIB_REG.*", "other_information_*"], - #["fields.AL_INFO_CONSERV.*", "_*"], - - ["fields.AL_POIDS_NET.*", "net_weight"], - ["fields.AL_POIDS_EGOUTTE.*", "drained_weight"], - ["fields.AL_POIDS_TOTAL.*", "total_weight"], - ["fields.AL_CONTENANCE.*", "volume"], - - ["fields.AL_RUB_ORIGINE.*", "origin_*"], - - ["fields.AL_ADRESSFRN.*", "producer_*"], - - ["fields.AL_EST_SANITAIRE.*", "emb_codes"], - - ["fields.AL_PAVE_SC.*", "customer_service_*"], - - ["fields.AL_PREPA.*", "preparation_*"], - ["fields.AL_PRECAUTION.*", "warning_*"], - ["fields.AL_IDEE_RECET.*", "recipe_idea_*"], - - ["fields.AL_TXT_LIB_REG.*", "other_information_*"], - ["fields.AL_TXT_LIB_FACE.*", "other_information_*"], - ["fields.AL_TXT_LIB_DOS.*", "other_information_*"], - ["fields.AL_BENEF_CONS.*", "other_information_*"], - ["fields.AL_OTHER_INFORMATION.*", "other_information_*"], - - ["fields.AL_SPE_BIO.*", "spe_bio_*"], - - ["fields.AL_BENEF_CONS.*", "benef_cons_*"], - ["fields.AL_TXT_LIB_FACE.*", "txt_lib_face_*"], - ["fields.AL_ALCO_VOL.*", "alco_vol_*"], - ["fields.AL_PRESENTATION.*", "presentation_*"], - - ["fields.AL_NUTRI_N_AR.*", "nutri_n_ar_*"], - - ["fields.AL_LOGO_ECO.*", "logo_eco_*"], - - - - ["fields.AL_INFO_EMB.*", "info_emb_*"], - - - ["fields.AL_TXT_LIB_DOS.*", "txt_lib_dos_*"], - ["fields.AL_INFO_CONSERV.*", "info_conserv_*"], - - - - ); - - $xml_errors += load_xml_file($file, \@xml_rules, \@xml_fields_mapping, undef); - } - - - elsif ($file =~ /_valNut/) { - # Nutrition facts - - my @xml_rules = ( - -_default => sub {$_[0] => $_[1]->{_content}}, -TabNutXMLPF => "pass no content", -TabNutColElements => "pass no content", -#TextFrameLinesPF => "pass no content", -#TextFrameLinePF => sub { '%fields' => [$_[1]->{code_champs} => $_[1]->{languages} ]}, -TabNutColElement => sub { '%nutrients' => [$_[1]->{Type_Code} => $_[1]->{Units} ]}, -Units => "pass no content", -Unit => sub { '@Units' => $_[1]}, - -"ARPercent,Description,Id,Label,Language,ModifiedBy,Name,ProductCode,RoundValue,TabNutCadrans,TabNutId,TabNutName,TabNutTemplateCode,TypeCode,Unit_value,lOrder,name" => "content", -#"LanguageTB,TabNutColElements,TabNutPhrases,TabNutXMLPF,Units,languages" => "no content", - #"TabNutColElement,TabNutPhrase,Unit" => "as array no content", - - -lOrder => undef, -SetOrder => undef, -SetCode => undef, -SetName => undef, -Comments => undef, -ModifiedBy => undef, -TextFrameLineId => undef, -F=>undef, - -); - - - - my @xml_fields_mapping = ( - - # get the code first - - # don't trust the EAN from the XML file, use the one from the file name instead - # -> sometimes different - #["fields.AL_CODE_EAN.*", "code"], - - ["ProductCode", "producer_product_id"], - - ["nutrients.ENERKJ.[0].RoundValue", "nutriments.energy-kj_kJ"], - ["nutrients.ENERKC.[0].RoundValue", "nutriments.energy-kcal_kcal"], - ["nutrients.FAT.[0].RoundValue", "nutriments.fat_g"], - ["nutrients.FASAT.[0].RoundValue", "nutriments.saturated-fat_g"], - ["nutrients.CHOAVL.[0].RoundValue", "nutriments.carbohydrates_g"], - ["nutrients.SUGAR.[0].RoundValue", "nutriments.sugars_g"], - ["nutrients.FIBTG.[0].RoundValue", "nutriments.fiber_g"], - ["nutrients.PRO.[0].RoundValue", "nutriments.proteins_g"], - ["nutrients.SALTEQ.[0].RoundValue", "nutriments.salt_g"], - - -# unsure about units / values (lots of 0s) -# disabling: - - ["nutrients.FAMSCIS.[0].RoundValue", "nutriments.monounsaturated-fat-disabled_g"], - ["nutrients.FAPUCIS.[0].RoundValue", "nutriments.polyunsaturated-fat-disabled_g"], - ["nutrients.POLYL.[0].RoundValue", "nutriments.polyols-disabled_g"], - ["nutrients.STARCH.[0].RoundValue", "nutriments.starch-disabled_g"], - ["nutrients.ACL.[0].RoundValue", "nutriments.alcohol-disabled_g"], - ["nutrients.CHO.[0].RoundValue", "nutriments.cholesterol-disabled_g"], - ["nutrients.AGO.[0].RoundValue", "nutriments.omega-3-fat-disabled_g"], - ["nutrients.LACS.[0].RoundValue", "nutriments.lactose-disabled_g"], - -# vitamin C: -# -#ml -#ML -#100,00 -#millilitre -#12 -#15 -# - - ["nutrients.VITA.[0].RoundValue", "nutriments.vitamin-a-disabled_g"], - ["nutrients.VITC.[0].RoundValue", "nutriments.vitamin-c-disabled_g"], - ["nutrients.VITD.[0].RoundValue", "nutriments.vitamin-d-disabled_g"], - ["nutrients.VITE.[0].RoundValue", "nutriments.vitamin-e-disabled_g"], - ["nutrients.K.[0].RoundValue", "nutriments.potassium-disabled_g"], - ["nutrients.ZN.[0].RoundValue", "nutriments.zinc-disabled_g"], - ["nutrients.BIOT.[0].RoundValue", "nutriments.biotin-disabled_g"], - ["nutrients.MO.[0].RoundValue", "nutriments.molybdenum-disabled_g"], - ["nutrients.MN.[0].RoundValue", "nutriments.manganese-disabled_g"], - ["nutrients.FE.[0].RoundValue", "nutriments.iron-disabled_g"], - ["nutrients.MG.[0].RoundValue", "nutriments.magnesium-disabled_g"], - ["nutrients.P.[0].RoundValue", "nutriments.phosphorus-disabled_g"], - ["nutrients.NIA.[0].RoundValue", "nutriments.vitamin-pp-disabled_g"], - ["nutrients.CU.[0].RoundValue", "nutriments.copper-disabled_g"], - ["nutrients.CR.[0].RoundValue", "nutriments.chromium-disabled_g"], - ["nutrients.VITK.[0].RoundValue", "nutriments.vitamin-k-disabled_g"], - ["nutrients.SE.[0].RoundValue", "nutriments.selenium-disabled_g"], - ["nutrients.ID.[0].RoundValue", "nutriments.iodine-disabled_g"], - ["nutrients.FOLDFE.[0].RoundValue", "nutriments.folates-disabled_g"], - ["nutrients.VITB12.[0].RoundValue", "nutriments.vitamin-b12-disabled_g"], - ["nutrients.PANTAC.[0].RoundValue", "nutriments.pantothenic-acid-disabled_g"], - ["nutrients.VITB6.[0].RoundValue", "nutriments.vitamin-b6-disabled_g"], - ["nutrients.RIBF.[0].RoundValue", "nutriments.vitamin-b2-disabled_g"], - ["nutrients.THIA.[0].RoundValue", "nutriments.vitamin-b1-disabled_g"], - ["nutrients.FD.[0].RoundValue", "nutriments.fluoride-disabled_g"], - ["nutrients.CA.[0].RoundValue", "nutriments.calcium-disabled_g"], - ["nutrients.CLD.[0].RoundValue", "nutriments.chloride-disabled_g"], - - # for waters? but present for other products . by L ? - -# -#mg/L -#MCL -#1,00 -#milligramme par litre -#7,000 -# - - ["nutrients.CAL.[0].RoundValue", "nutriments.calcium-disabled_mgl"], - ["nutrients.FDL.[0].RoundValue", "nutriments.fluoride-disabled_mgl"], - ["nutrients.FR.[0].RoundValue", "nutriments.fluoride-disabled_mgl"], - ["nutrients.CLDE.[0].RoundValue", "nutriments.chloride-disabled_mgl"], - ["nutrients.BCO.[0].RoundValue", "nutriments.bicarbonates-disabled_mgl"], - ["nutrients.NH.[0].RoundValue", "nutriments.ammonium-disabled_mgl"], - ["nutrients.NAL.[0].RoundValue", "nutriments.sodium-disabled_mgl"], - ["nutrients.SO.[0].RoundValue", "nutriments.sulfates-disabled_mgl"], - ["nutrients.NO.[0].RoundValue", "nutriments.nitrates-disabled_mgl"], - ["nutrients.KL.[0].RoundValue", "nutriments.potassium-disabled_mgl"], - ["nutrients.SIO.[0].RoundValue", "nutriments.silica-disabled_mgl"], - ["nutrients.MGL.[0].RoundValue", "nutriments.magnesium-disabled_mgl"], - - # same thing as bicarbonates ? - ["nutrients.HCO.[0].RoundValue", "nutriments.hydrogenocarbonates-disabled_mgl"], - - ); - - # To get the rules: - - #use XML::Rules; - #use Data::Dump; - #print Data::Dump::dump(XML::Rules::inferRulesFromExample($file)); - - - $xml_errors += load_xml_file($file, \@xml_rules, \@xml_fields_mapping, undef); - - open(my $IN, "<:encoding(UTF-8)", $file); - my $xml = join('', (<$IN>)); - close ($IN); - - while ($xml =~ /Type_Code="(\w+)"/) { - $nutrients{$1}++; - $xml = $'; - } - } -} - - - - - -# Special processing for Carrefour data (before clean_fields_for_all_products) - -foreach my $code (sort keys %products) { - - if (defined $products{$code}{total_weight}) { - - $products{$code}{total_weight} =~ s/(\[emetro\])|(\[zemetro\])/e/ig; - - # + e métrologique - # (métrologique) - $products{$code}{total_weight} =~ s/(\+ )?e( ?([\[\(])?(métrologique|metrologique|metro|métro)([\]\)])?)?/e/ig; - $products{$code}{total_weight} =~ s/(\+ )?( ?([\[\(])?(métrologique|metrologique|metro|métro)([\]\)])?)/e/ig; - - # poids net = poids égoutté = 450 g [zemetro] - # poids net : 240g (3x80ge) 2 - # poids net égoutté : 150g[zemetro] 2 - # poids net : 320g [zemetro] poids net égoutté : 190g contenance : 370ml 2 - # poids net total : 200g [zemetro] poids net égoutté : 140g contenance 212ml - - } - - if ((defined $products{$code}{emb_codes}) and ($products{$code}{emb_codes} =~ /fabriqu|elabor|conditionn/i)) { - - $products{$code}{producer_fr} = $products{$code}{emb_codes}; - delete $products{$code}{emb_codes}; - } -} - - -# Clean and normalize fields - -clean_fields_for_all_products(); - - -# Special processing for Carrefour data (after clean_fields_for_all_products) - -foreach my $code (sort keys %products) { - - my $product_ref = $products{$code}; - - print STDERR "emb_codes : " . $product_ref->{emb_codes} . "\n"; - - assign_main_language_of_product($product_ref, ['fr','es','it','nl','de','en','ro','pl'], "fr"); - - clean_weights($product_ref); # needs the language code - - assign_countries_for_product($product_ref, - { - fr => "en:france", - es => "en:spain", - it => "en:italy", - de => "en:germany", - ro => "en:romania", - pl => "en:poland", - } - , "en:france"); - - - # categories from the [Produit] Nomenclature field of the Nomenclature .csv file - - # Conserves de mais -> Mais en conserve - if (defined $product_ref->{nomenclature_fr}) { - $product_ref->{nomenclature_fr} =~ s/^conserve(s)?( de| d')?(.*)$/$3 en conserve/i; - $product_ref->{nomenclature_fr} =~ s/^autre(s) //i; - } - - print STDERR "emb_codes : " . $product_ref->{emb_codes} . "\n"; - - # Make sure we only have emb codes and not some other text - if (defined $product_ref->{emb_codes}) { - # too many letters -> word instead of code - if ( $product_ref->{emb_codes} =~ /[a-zA-Z]{8}/ ) { - delete $product_ref->{emb_codes}; - } - } - - print STDERR "emb_codes : " . $product_ref->{emb_codes} . "\n"; - - match_taxonomy_tags($product_ref, "nomenclature_fr", "categories", - { - # split => ',|\/|\r|\n|\+|:|;|\b(logo|picto)\b', - # stopwords => - } - ); - - # also try the product name - match_taxonomy_tags($product_ref, "product_name_fr", "categories", - { - # split => ',|\/|\r|\n|\+|:|;|\b(logo|picto)\b', - # stopwords => - } - ); - - # logo ab - # logo bio européen : nl-bio-01 agriculture pays bas 1 - - # try to parse some fields to find tags - match_taxonomy_tags($product_ref, "spe_bio_fr", "labels", - { - split => ',|\/|\r|\n|\+|:|;|\b(logo|picto)\b', - # stopwords => - } - ); - - match_taxonomy_tags($product_ref, "other_information_fr", "labels", - { - split => ',|\/|\r|\n|\+|:|;|\b(logo|picto)\b', - # stopwords => - } - ); - - # certifié fsc - match_taxonomy_tags($product_ref, "info_emb_fr", "labels", - { - split => ',|\/|\r|\n|\+|:|;|\b(logo|picto)\b', - # stopwords => - } - ); - - - # Fabriqué en France par EMB 29181 pour Interdis. - # Fabriqué en France pour EMB 24381 pour Interdis. - # Elaboré par EMB 14167A pour INTERDIS - # Fabriqué en France par EMB 29181 (F) ou EMB 86092A (G) pour Interdis. - # Fabriqué par A = EMB 38080A ou / C = EMB 49058 ou / V = EMB 80120A ou / S = EMB 26124 (voir lettre figurant sur l'étiquette à l'avant du sachet) pour Interdis. - - match_taxonomy_tags($product_ref, "producer_fr", "emb_codes", - { - split => ',|( \/ )|\r|\n|\+|:|;|=|\(|\)|\b(et|par|pour|ou)\b', - # stopwords => - } - ); - - print STDERR "emb_codes : " . $product_ref->{emb_codes} . "\n"; - -# -# -# -#pH 7,2. Résidu sec à 180°C : 1280 mg/L. -#
-#Eau soumise à une technique d’adsorption autorisée. -#Autorisation ministérielle du 25 août 2003. - -} - -print_csv_file(); - -print_stats(); - -print STDERR "$xml_errors xml errors\n"; - -foreach my $file (@xml_errors) { - #print STDERR $file . "\n"; -} - -foreach my $nutrient (sort { $nutrients{$b} <=> $nutrients{$a} } keys %nutrients) { - #print STDERR $nutrient . "\t" . $nutrients{$nutrient} . "\n"; -} +convert_carrefour_france_files($file_handle, \@files); diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3245390028754.json b/t/expected_test_results/import_convert_carrefour_france_export/3245390028754.json new file mode 100644 index 0000000000000..c2d89503d434e --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3245390028754.json @@ -0,0 +1,88 @@ +{ + "allergens" : "Œufs, Gluten, Lait", + "brands" : "Carrefour", + "carbohydrates_unit" : "g", + "carbohydrates_value" : "58", + "categories" : "", + "code" : "3245390028754", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "", + "conservation_conditions_fr" : "Conservation : A consommer de préférence avant la date figurant sur l'emballage. A conserver à l'abri de la chaleur et de l'humidité.", + "conservation_conditions_it" : "", + "conservation_conditions_nl" : "", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France", + "customer_service_en" : "", + "customer_service_es" : "", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_it" : "", + "customer_service_nl" : "", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "", + "energy-kcal_unit" : "kcal", + "energy-kcal_value" : "399", + "energy-kj_unit" : "kJ", + "energy-kj_value" : "1676", + "energy_unit" : "kJ", + "energy_value" : "1676", + "fat_unit" : "g", + "fat_value" : "16", + "fiber_unit" : "g", + "fiber_value" : "2.4", + "generic_name_en" : "", + "generic_name_es" : "", + "generic_name_fr" : "Gâteau breton fourré à la crème de pruneaux.", + "generic_name_it" : "", + "generic_name_nl" : "", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "", + "ingredients_text_fr" : "Farine de _blé_*,crème de pruneaux 26% (purée de pruneaux* 17%, sucre*), sucre*, _beurre_* 18%, _oeufs_ frais*, jaunes d'_oeufs_ frais*, poudres à lever: diphosphates et carbonates de sodium (contient _blé_), sel*. *Tous ces ingrédients sont d'origine française.\nPeut contenir des traces de soja, sésame et fruits à coque.", + "ingredients_text_it" : "", + "ingredients_text_nl" : "", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "", + "preparation_fr" : "", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "Fabriqué par Biscuiterie Le Goff - 29600 Saint Martin des Champs pour Interdis", + "producer_nl" : "", + "producer_product_id" : "12334", + "product_name_en" : "", + "product_name_es" : "", + "product_name_fr" : "Gâteau breton à la crème de pruneaux", + "product_name_it" : "", + "product_name_nl" : "", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "g", + "proteins_value" : "4.6", + "quantity" : "400 g", + "salt_unit" : "g", + "salt_value" : "0.62", + "saturated-fat_unit" : "g", + "saturated-fat_value" : "10", + "sodium_unit" : "g", + "sodium_value" : "0.248", + "stores" : "Carrefour", + "sugars_unit" : "g", + "sugars_value" : "35", + "traces" : "Fruits à coque, Graines de sésame, Soja", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3245414671133.json b/t/expected_test_results/import_convert_carrefour_france_export/3245414671133.json new file mode 100644 index 0000000000000..7600785f47374 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3245414671133.json @@ -0,0 +1,88 @@ +{ + "allergens" : "Gluten, Lait, Moutarde, Graines de sésame, Soja, Anhydride sulfureux et sulfites", + "brands" : "Carrefour", + "carbohydrates_unit" : "g", + "carbohydrates_value" : "22", + "categories" : "Sandwichs, Cheeseburgers", + "code" : "3245414671133", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "Conservar en un congelador*** (o ****) a -18 ºC. Atención, no volver a congelar una vez descongelado.\nConsumir preferentemente antes de la fecha indicada en el lateral del envase.", + "conservation_conditions_fr" : "À conserver dans un congélateur *** (ou ****) à -18°C. Attention, ne pas recongeler après décongélation. \nPour une dégustation optimale, à consommer de préférence avant la date indiquée sur le côté de la boîte.", + "conservation_conditions_it" : "Conservare in congelatore *** (o ****) a -18°C.\nAttenzione, non ricongelare dopo lo scongelamento.\nDa consumarsi preferibilmente entro la data indicata sul lato della confezione.", + "conservation_conditions_nl" : "Te bewaren in een diepvriezer*** (of ****) op -18°C. Na ontdooiing niet opnieuw invriezen.\nTen minste houdbaar tot de datum vermeld op de zijkant van de doos.", + "conservation_conditions_pl" : "Przechowywać w zamrażalniku *** (lub ****) w temperaturze -18°C. Uwaga, nie zamrażać ponownie po rozmrożeniu. Najlepiej spożyć przed datą wskazaną na boku pudełka.", + "conservation_conditions_ro" : "A se păstra la congelator *** (sau ****) la max. -18 °C. Atenție, a nu se recongela după decongelare.\nA se consuma de preferință înainte de data indicată pe partea laterală a cutiei.", + "countries" : "France, Italie, Pologne, Roumanie, Espagne", + "customer_service_en" : "", + "customer_service_es" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_it" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_nl" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_pl" : "Interdis – TSA 91431 – 91343 MASSY Cedex – France", + "customer_service_ro" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "data_sources" : "", + "emb_codes" : "FR 03.315.001 EC", + "energy-kcal_unit" : "kcal", + "energy-kcal_value" : "258", + "energy-kj_unit" : "kJ", + "energy-kj_value" : "1080", + "energy_unit" : "kJ", + "energy_value" : "1080", + "fat_unit" : "g", + "fat_value" : "13", + "fiber_unit" : "g", + "fiber_value" : "2", + "generic_name_en" : "", + "generic_name_es" : "Preparación compuesta de pan especial, preparado de carne picada cocida sazonada que contiene proteínas de soja, de salsa y queso fundido - Ultracongelado", + "generic_name_fr" : "Préparations composées de pain spécial, de préparation de viande de bœuf hachée cuite assaisonnée contenant des protéines de soja, de sauce et de fromage fondu - Surgelé", + "generic_name_it" : "Preparazione a base di pane, preparazione alimentare di carne macinata di manzo cotta condita, contenente proteine di soia, salsa e formaggio fuso - Surgelato", + "generic_name_nl" : "Bereidingen samengesteld uit speciaal brood, gekruide en gegaarde vleesbereiding van gehakt rundvlees met soja-eiwitten, saus en smeltkaas - Diepvries", + "generic_name_pl" : "Przetwory składające się ze specjalnego chleba, mielonego, gotowanego i przyprawionego wyrobu z mięsa wołowego zawierającego białko sojowe, sos i ser topiony – Mrożone", + "generic_name_ro" : "Preparate compuse din pâine specială, preparat din carne de vită tocată gătită, condimentată, cu adaos de proteine din soia, sos și brânză topită - Congelate rapid.", + "ingredients_text_en" : "", + "ingredients_text_es" : "Pan especial 44% (harina de _trigo_, agua, aceite de colza, dextrosa, levadura, _gluten de trigo_, semillas de _sésamo_ 0,5%, sal, emulgente: monoglicéridos y diglicéridos de ácidos grasos, harina de habas, agente de tratamiento de la harina: ácido ascórbico), carne de vacuno 19%, salsa 14% (agua, _mostaza_ [agua, vinagre de alcohol, semillas de _mostaza_, sal, acidulante: ácido cítrico, azúcar, cúrcuma, antioxidante: metabisulfito potásico, aromas naturales], concentrado de tomate, azúcar, aceite de colza, cebollas, pepinillos [pepinillos, sulfitos, endurecedor: E509], almidón modificado de maíz, vinagre de alcohol, sal), _queso_ fundido 10% (_queso_, agua, _mantequilla_, almidón modificado de patata, proteínas de la _leche_, sales de fundido: citratos de sodio, sal, colorantes: carotenos y extracto de pimentón), proteínas de _soja_ rehidratadas 7,7%, agua, proteínas de _soja_ 0,6%, fibras de patata, sal, aromas. Carne de vacuno origen Francia.\n\nEste cheeseburger contiene 32% de preparación de carne molida cocida sazonada que contiene proteínas de soja.", + "ingredients_text_fr" : "Pain spécial 44% (farine de _blé_, eau, huile de colza, dextrose, levure, _gluten de blé_, graines de _sésame_ 0,5%, sel, émulsifiant : mono et diglycérides d'acides gras, farine de fève, agent de traitement de la farine : acide ascorbique), viande de boeuf 19%, sauce 14% (eau, _moutarde_ [eau, vinaigre d'alcool, graines de _moutarde_, sel, acidifiant : acide citrique, sucre, curcuma, antioxydant : disulfite de potassium, arômes naturels], concentré de tomates, sucre, huile de colza, oignons, cornichons [cornichons, sulfites, affermissant : E509], amidon modifié de maïs, vinaigre d'alcool, sel), _fromage_ fondu 10% (_fromage_, eau, _beurre_, amidon modifié de pomme de terre, protéines de _lait_, sels de fonte : citrates de sodium, sel, colorants : caroténoïdes et extrait de paprika), protéines de _soja_ réhydratées 7.7%, eau, protéines de _soja_ 0.6%, fibres de pomme de terre, sel, arômes. Viande bovine origine France.\n\nCe cheeseburger contient 32% de préparation de viande de boeuf hachée cuite assaisonnée contenant des protéines de soja.", + "ingredients_text_it" : "Pane 44% (farina di _frumento_, acqua, olio di colza, destrosio, lievito, glutine di _frumento_, semi di _sesamo_ 0,5%, sale, emulsionante: mono - e digliceridi degli acidi grassi, farina di fave, agente di trattamento della farina: acido ascorbico), carne di manzo 19%, salsa 14% (acqua, _senape_ [acqua, aceto di alcool, semi di _senape_, sale, acidificante: acido citrico, zucchero, curcuma, antiossidante: disolfito di potassio, aromi naturali], concentrato di pomodoro, zucchero, olio di colza, cipolle, cetriolini [cetriolini, _solfiti_, agente di resistenza: E509], amido modificato di mais, aceto di alcool, sale), _formaggio_ fuso 10% (_formaggio_, acqua, _burro_, amido modificato di patata, proteine del _latte_, sali di fusione: citrati di sodio, sale, coloranti: caroteni ed estratto di paprica), proteine di _soia_ reidratate 7,7%, acqua, proteine di _soia_ 0,6%, fibre di patata, sale, aromi. Carne bovina origine Francia.\n\nQuesti cheeseburgers contengono il 32% di preparazione di carne macinata di manzo cotta condita, contenente proteine di soia.", + "ingredients_text_nl" : "Speciaal brood 44% (_tarwe_boem, water, koolzaadolie, dextrose, gist, _tarwe_gluten, _sesamzaad_ 0,5%, zout, emulgator: mono - en diglyceriden van vetzuren, bonenmeel, meelverbeteraar: ascorbinezuur), rundvlees 19%, saus 14% (water, _mosterd_ [water, alcoholazijn, _mosterd_zaad, zout, voedingszuur: citroenzuur, suiker, kurkuma, antioxidant: kaliumdisulfiet, natuurlijke aroma's], tomatenconcentraat, suiker, koolzaadolie, uien, augurken [augurken, verstevigingsmiddel: calciumchloride], gemodificeerd maïszetmeel, alcoholazijn, zout), _smeltkaas_ 10% (_kaas_, water, _boter_, gemodificeerd aardappelzetmeel, _melk_eiwitten, smeltzouten: natriumcitraten, zout, kleurstoffen: carotenen en paprika-extract), gerehydrateerde _soja_-eiwitten 7,7%, water, _soja_-eiwitten 0,6%, aardappelvezels, zout, aroma's. \nRundvlees van Franse oorsprong. \n\nDeze cheesburger bevat 32% gekruide en gegaarde vleesbereiding van gehakt rundvlees met soja-eiwitten.", + "ingredients_text_pl" : "Specjalny chleb 44% (mąka _pszenna_, woda, olej rzepakowy, dekstroza, drożdże, _gluten pszenny_, nasiona sezamu 0,5%, sól, emulgator: mono - i diglicerydy kwasów tłuszczowych, mąka fasolowa, środek do przetwarzania mąki: kwas askorbinowy), mięso wołowe 19%, sos 14% (woda, _musztarda_ [woda, ocet spirytusowy, nasiona _gorczycy_, sól, substancja zakwaszająca: kwas cytrynowy, cukier, kurkuma, przeciwutleniacz: disiarczyn potasu, aromaty naturalne], koncentrat pomidorowy, cukier, olej rzepakowy, cebula, korniszony [korniszony, siarczyny, substancja wiążąca: E509], modyfikowana skrobia kukurydziana, ocet spirytusowy, sól), _ser_ topiony 10% (_ser_, woda, _masło_, modyfikowana skrobia ziemniaczana, białko _mleka_, sole emulgujące: cytryniany sodu, sól, barwniki: karotenoidy i wyciąg z papryki), uwodnione białko _sojowe_ 7,7%, woda, białko _sojowe_ 0,6%, błonnik ziemniaczany, sól, aromaty. Mięso wołowe pochodzące z Francji.\n\nCheeseburger zawiera 32% mielonego, gotowanego i przyprawionego wyrobu z mięsa wołowego zawierającego białko sojowe.", + "ingredients_text_ro" : "Pâine specială 44% (făină de _grâu_, apă, ulei de rapiță, dextroză, drojdie, gluten din _grâu_, _semințe de susan_ 0,5%, sare, emulsifiant: mono - și digliceride ale acizilor grași, făină de fasole, agent de tratare a făinii: acid ascorbic), carne de vită 19%, sos 14% (apă, muștar [apă, oțet de alcool, semințe de _muștar_, sare, acidifiant: acid citric, zahăr, curcuma, antioxidant: metabisulfit de potasiu, arome naturale], pastă de tomate, zahăr, ulei de rapiță, ceapă, castraveți cornișon [castraveți cornișon, agent de întărire: clorură de calciu], amidon modificat din porumb, oțet de alcool, sare), _brânză_ topită 10% (_brânză_, apă, _unt_, amidon modificat din cartofi, proteine din _lapte_, săruri de topire: citrați de sodiu, sare, coloranți: caroteni și extract de ardei roșu), proteine din _soia_ rehidratată 7,7%, apă, proteine din _soia_ 0,6%, fibre din cartofi, sare, arome. Carnea de vită are origine Franța.\nAcești cheeseburger-i conțin 32% preparat din carne de vită tocată gătită, condimentată, cu adaos de proteine din soia.", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "En el microondas: Después de sacar el cheeseburger de su bolsa, colocarlo aún ultracongelado en un plato. Calentarlo durante 1 minuto 30 a 1 minuto 40 dependiendo de la potencia del microondas. Dejar reposar 1 minuto y disfrutar.", + "preparation_fr" : "Au four à micro-ondes : Après avoir retiré le cheeseburger de son sachet, placez-le encore surgelé sur une assiette. Faites-le chauffer 1min.30 à 1min. 40 selon la puissance de votre four à micro-ondes. Laissez reposer 1 min. et dégustez.", + "preparation_it" : "Al microonde: Dopo aver estratto il cheeseburger dal suo sacchetto, posizionatelo ancora congelato su un piatto. Fatelo scaldare 1 min.30-1 min.40 a seconda della potenza del vostro forno a microonde. Lasciate riposare 1 min. e gustate.", + "preparation_nl" : "In de microgolfoven: Haal de cheeseburger uit het zakje en leg hem nog diepgevroren op een bord. Verwarm 1min30 à 1min40, naargelang het vermogen van uw microgolfoven. Laat 1 min rusten en eet smakelijk.", + "preparation_pl" : "Kuchenka mikrofalowa: po wyjęciu cheeseburgera z opakowania położyć go na talerzu. Podgrzewać przez 1 min 30 sek. – 1 min 40 sek. w zależności od mocy kuchenki mikrofalowej. Odczekać minutę.", + "preparation_ro" : "În cuptorul cu microunde: După ce scoateți cheeseburger-ul din ambalaj, așezați-l congelat pe o farfurie. Încălziți-l timp de 1 min. 30 până la 1 min. 40 în funcție de puterea cuptorului cu microunde. Lăsați-l să se răcească timp de 1 min. și degustați-l.", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "17049", + "product_name_en" : "", + "product_name_es" : "Cheeseburgers", + "product_name_fr" : "Cheeseburgers", + "product_name_it" : "Cheeseburgers", + "product_name_nl" : "Cheeseburgers", + "product_name_pl" : "Cheeseburgery", + "product_name_ro" : "Cheeseburger-i", + "proteins_unit" : "g", + "proteins_value" : "12", + "quantity" : "750 g", + "salt_unit" : "g", + "salt_value" : "1.3", + "saturated-fat_unit" : "g", + "saturated-fat_value" : "5.2", + "sodium_unit" : "g", + "sodium_value" : "0.52", + "stores" : "Carrefour", + "sugars_unit" : "g", + "sugars_value" : "3.2", + "traces" : "", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3270190006787.json b/t/expected_test_results/import_convert_carrefour_france_export/3270190006787.json new file mode 100644 index 0000000000000..3d4ed06183d84 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3270190006787.json @@ -0,0 +1,88 @@ +{ + "allergens" : "", + "brands" : "Carrefour", + "carbohydrates_unit" : "", + "carbohydrates_value" : "", + "categories" : "", + "code" : "3270190006787", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "", + "conservation_conditions_fr" : "Ce vinaigre n'est pas pasteurisé. Il se conserve sans limite de temps à l'abri de la lumière, dans un endroit frais, sec et sans variation de température. Le dépôt qui peut se former correspond à une légère reprise de la fermentation, la qualité du produit n'en n'est pas dégradée. N° de lot : voir sur le bouchon.", + "conservation_conditions_it" : "", + "conservation_conditions_nl" : "Deze azijn is niet gepasteuriseerd en is onbeperkt houdbaar op een donkere, frisse en droge plaats zonder temperatuurschommelingen. Het bezinksel dat zich kan vormen komt overeen met een lichte hervatting van de fermentatie, wat de kwaliteit van het product niet aantast. Lotnr.: zie dop.", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France", + "customer_service_en" : "", + "customer_service_es" : "", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_it" : "", + "customer_service_nl" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "", + "energy-kcal_unit" : "", + "energy-kcal_value" : "", + "energy-kj_unit" : "", + "energy-kj_value" : "", + "energy_unit" : "", + "energy_value" : "", + "fat_unit" : "", + "fat_value" : "", + "fiber_unit" : "", + "fiber_value" : "", + "generic_name_en" : "", + "generic_name_es" : "", + "generic_name_fr" : "Vinaigre de vin rouge aromatisé saveur échalote.", + "generic_name_it" : "", + "generic_name_nl" : "Gearomatiseerde rodewijnazijn met sjalotsmaak.", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "", + "ingredients_text_fr" : "Vinaigre de vin rouge, arôme naturel échalote avec autres arômes naturels, conservateur : disulfite de potassium.", + "ingredients_text_it" : "", + "ingredients_text_nl" : "Rodewijnazijn, natuurlijk sjalotaroma met andere natuurlijke aroma's, conserveermiddel: kaliumdi_sulfiet_.", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "", + "preparation_fr" : "", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "13003", + "product_name_en" : "", + "product_name_es" : "", + "product_name_fr" : "Vinaigre de vin saveur", + "product_name_it" : "", + "product_name_nl" : "Wijnazijn smaak", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "", + "proteins_value" : "", + "quantity" : "6% d'acidité\n75 cl", + "salt_unit" : "", + "salt_value" : "", + "saturated-fat_unit" : "", + "saturated-fat_value" : "", + "sodium_unit" : "", + "sodium_value" : "", + "stores" : "Carrefour", + "sugars_unit" : "", + "sugars_value" : "", + "traces" : "", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3270190020165.json b/t/expected_test_results/import_convert_carrefour_france_export/3270190020165.json new file mode 100644 index 0000000000000..478ad3b2c9908 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3270190020165.json @@ -0,0 +1,88 @@ +{ + "allergens" : "Lait", + "brands" : "Carrefour", + "carbohydrates_unit" : "g", + "carbohydrates_value" : "1", + "categories" : "Produits laitiers, Produits fermentés, Produits laitiers fermentés, Fromages, Fromages de vache, Fromages à pâte molle à croûte fleurie, Camemberts", + "code" : "3270190020165", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "Consumir preferentemente antes del: ver la fecha en el lateral del envase. Conservar entre +4ºC y +8ºC.\nEl Camembert Carrefour se conservará idealmente en su envoltorio.", + "conservation_conditions_fr" : "À consommer de préférence avant le :voir la date sur le côté de l'emballage. À conserver entre +4°C et +8°C\nVotre Camembert Carrefour se conservera idéalement dans son papier d'emballage.", + "conservation_conditions_it" : "Da consumarsi preferibilmente entro il: vedere la data sul lato della confezione. Conservare tra +4°C e +8°C.\nIl tuo Camembert Carrefour si conserverà perfettamente nella sua carta da imballaggio.", + "conservation_conditions_nl" : "", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France, Italie, Espagne", + "customer_service_en" : "", + "customer_service_es" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_it" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_nl" : "", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "FR 50.168.001 EC, A FR 61.145.001 CE, C FR 50.453.001 CE", + "energy-kcal_unit" : "kcal", + "energy-kcal_value" : "265", + "energy-kj_unit" : "kJ", + "energy-kj_value" : "1100", + "energy_unit" : "kJ", + "energy_value" : "1100", + "fat_unit" : "g", + "fat_value" : "21", + "fiber_unit" : "", + "fiber_value" : "", + "generic_name_en" : "", + "generic_name_es" : "Camembert. Queso de pasta blanda elaborado con leche pasteurizada de vaca.", + "generic_name_fr" : "Camembert. Fromage à pâte molle au lait pasteurisé de vache.", + "generic_name_it" : "Camembert. Formaggio a pasta molle di latte vaccino pastorizzato.", + "generic_name_nl" : "", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "_Leche_ de vaca pasteurizada, sal, _fermentos lácticos_ y de maduración, cuajo animal o coagulante de leche microbiano. Origen de la leche: Francia.", + "ingredients_text_fr" : "_Lait_ de vache pasteurisé, sel, _ferments lactiques_ et d'affinage, présule animale ou coagulant microbien. Lait origine France.", + "ingredients_text_it" : "_Latte_ vaccino pastorizzato, sale, _fermenti lattici_ e di affinamento, caglio animale o caglio microbico. Origine del latte Francia", + "ingredients_text_nl" : "", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "Lait Français", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "", + "preparation_fr" : "", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "FR 50.168.001 CE, A FR 61.145.001 CE \nC FR 50.453.001 CE\nLa lettre située à côté de la DLUO indique le lieu de conditionnement sur le fond de boîte", + "producer_nl" : "", + "producer_product_id" : "20300", + "product_name_en" : "", + "product_name_es" : "Camembert", + "product_name_fr" : "Camembert", + "product_name_it" : "Camembert", + "product_name_nl" : "", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "g", + "proteins_value" : "19", + "quantity" : "", + "salt_unit" : "g", + "salt_value" : "1.3", + "saturated-fat_unit" : "g", + "saturated-fat_value" : "15", + "sodium_unit" : "g", + "sodium_value" : "0.52", + "stores" : "Carrefour", + "sugars_unit" : "", + "sugars_value" : "", + "traces" : "", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3270190023814.json b/t/expected_test_results/import_convert_carrefour_france_export/3270190023814.json new file mode 100644 index 0000000000000..6625160bb7728 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3270190023814.json @@ -0,0 +1,88 @@ +{ + "allergens" : "Lait", + "brands" : "Carrefour", + "carbohydrates_unit" : "g", + "carbohydrates_value" : "6.3", + "categories" : "", + "code" : "3270190023814", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "", + "conservation_conditions_fr" : "A consommer jusqu'au : voir la date indiquée sur le dessus de l'emballage.\nA conserver entre 0°C et +7°C.", + "conservation_conditions_it" : "", + "conservation_conditions_nl" : "Te gebruiken tot: zie datum op bovenzijde verpakking.\nTe bewaren tussen 0°C en +6°C.", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France", + "customer_service_en" : "", + "customer_service_es" : "", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_it" : "", + "customer_service_nl" : "Carrefour Product info\n PB 2000 Evere 3 - 1140 BRUSSELS\n Tél: 0800/9.10.11", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "FR 31.555.001 EC, EMB 31555", + "energy-kcal_unit" : "kcal", + "energy-kcal_value" : "72", + "energy-kj_unit" : "kJ", + "energy-kj_value" : "300", + "energy_unit" : "kJ", + "energy_value" : "300", + "fat_unit" : "g", + "fat_value" : "3.4", + "fiber_unit" : "", + "fiber_value" : "", + "generic_name_en" : "", + "generic_name_es" : "", + "generic_name_fr" : "Yaourt brassé nature au lait entier, source de calcium.", + "generic_name_it" : "", + "generic_name_nl" : "Roeryoghurt natuur van volle melk, bron van calcium.", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "", + "ingredients_text_fr" : "_Lait_ entier 96%, _lactose_ et protéines de _lait_, ferments _lactiques_.", + "ingredients_text_it" : "", + "ingredients_text_nl" : "Volle _melk_ 96%, _lactose_ en _melk_eiwitten, _melk_fermenten.", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "Nutriscore, Nutriscore B, Origine France", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "", + "preparation_fr" : "", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "Fabriqué en France par EMB 31555 pour Interdis.", + "producer_nl" : "Geproduceerd in Frankrijk door EMB 31555 voor Interdis.", + "producer_product_id" : "11734", + "product_name_en" : "", + "product_name_es" : "", + "product_name_fr" : "Brassé Nature", + "product_name_it" : "", + "product_name_nl" : "Roeryoghurt Natuur", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "g", + "proteins_value" : "4", + "quantity" : "1 kg 2x(4 x 125 g)e", + "salt_unit" : "g", + "salt_value" : "0.11", + "saturated-fat_unit" : "g", + "saturated-fat_value" : "2.1", + "sodium_unit" : "g", + "sodium_value" : "0.044", + "stores" : "Carrefour", + "sugars_unit" : "g", + "sugars_value" : "4.5", + "traces" : "", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3270190124924.json b/t/expected_test_results/import_convert_carrefour_france_export/3270190124924.json new file mode 100644 index 0000000000000..c1a6aead2fa04 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3270190124924.json @@ -0,0 +1,88 @@ +{ + "allergens" : "Moutarde, Anhydride sulfureux et sulfites", + "brands" : "Carrefour", + "carbohydrates_unit" : "g", + "carbohydrates_value" : "3.2", + "categories" : "Condiments, Sauces, Moutardes, Moutardes de Dijon", + "code" : "3270190124924", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "Conservación: Antes de abrir, conservar a temperatura ambiente. Consumir preferentemente antes del / Nº de lote: ver fecha indicada en el envase. Una vez abierto, conservar en el frigorífico y consumir en 6 meses.", + "conservation_conditions_fr" : "Conservation : Avant ouverture, à conserver à température ambiante. Pour une dégustation optimale, à consommer de préférence avant le / N° de lot : voir la date indiquée sur le bocal. Après ouverture, à conserver au réfrigérateur et à consommer dans les 6 mois.", + "conservation_conditions_it" : "", + "conservation_conditions_nl" : "", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France, Espagne", + "customer_service_en" : "", + "customer_service_es" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_it" : "", + "customer_service_nl" : "", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "", + "energy-kcal_unit" : "kcal", + "energy-kcal_value" : "149", + "energy-kj_unit" : "kJ", + "energy-kj_value" : "619", + "energy_unit" : "kJ", + "energy_value" : "619", + "fat_unit" : "g", + "fat_value" : "12", + "fiber_unit" : "g", + "fiber_value" : "2.1", + "generic_name_en" : "", + "generic_name_es" : "Mostaza de Dijon.", + "generic_name_fr" : "Moutarde de Dijon.", + "generic_name_it" : "", + "generic_name_nl" : "", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "Agua, semillas de _mostaza_, vinagre de alcohol, sal, antioxidante: _metabisulfito_ potásico, acidulante: ácido cítrico.", + "ingredients_text_fr" : "Eau, graines de _moutarde_, vinaigre d'alcool, sel, antioxydant : di_sulfite_ de potassium, acidifiant : acide citrique.", + "ingredients_text_it" : "", + "ingredients_text_nl" : "", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "", + "preparation_fr" : "", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "producer_nl" : "", + "producer_product_id" : "20671", + "product_name_en" : "", + "product_name_es" : "Mostaza de dijon", + "product_name_fr" : "Moutarde de dijon", + "product_name_it" : "", + "product_name_nl" : "", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "g", + "proteins_value" : "7.2", + "quantity" : "370 g", + "salt_unit" : "g", + "salt_value" : "6.5", + "saturated-fat_unit" : "g", + "saturated-fat_value" : "0.8", + "sodium_unit" : "g", + "sodium_value" : "2.6", + "stores" : "Carrefour", + "sugars_unit" : "g", + "sugars_value" : "2.7", + "traces" : "", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3270190153085.json b/t/expected_test_results/import_convert_carrefour_france_export/3270190153085.json new file mode 100644 index 0000000000000..1e2967a4567d5 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3270190153085.json @@ -0,0 +1,88 @@ +{ + "allergens" : "", + "brands" : "Carrefour", + "carbohydrates_unit" : "", + "carbohydrates_value" : "", + "categories" : "", + "code" : "3270190153085", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "Conservar en un lugar limpio, seco y fresco, protegido de la luz. Consumir preferentemente antes del / Nº de lote: ver en la parte inferior del envase.", + "conservation_conditions_fr" : "À conserver dans un endroit propre, sec et frais à l'abri de la lumière. Pour une dégustation optimale, à consommer de préférence avant le / N° de lot : voir sur le dessous de la boîte.", + "conservation_conditions_it" : "Conservare in luogo pulito, asciutto e fresco al riparo dalla luce. Da consumarsi preferibilmente entro il / N° di lotto: vedere sotto la confezione.", + "conservation_conditions_nl" : "Op een schone, droge, frisse en donkere plaats bewaren. Ten minste houdbaar tot / Lotnr.: zie onderzijde doosje.", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France, Italie, Espagne", + "customer_service_en" : "", + "customer_service_es" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_it" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_nl" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "", + "energy-kcal_unit" : "", + "energy-kcal_value" : "", + "energy-kj_unit" : "", + "energy-kj_value" : "", + "energy_unit" : "", + "energy_value" : "", + "fat_unit" : "", + "fat_value" : "", + "fiber_unit" : "", + "fiber_value" : "", + "generic_name_en" : "", + "generic_name_es" : "Mezcla para infusionar aromatizada regaliz y menta.", + "generic_name_fr" : "Infusion aromatisée réglisse et menthe.", + "generic_name_it" : "Infuso aromatizzato liquirizia e menta.", + "generic_name_nl" : "Gearomatiseerde infusie zoethout en munt.", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "Regaliz 70,5%, menta 27,5%, aromas.", + "ingredients_text_fr" : "Réglisse 70,5%, menthe 27,5%, arômes.", + "ingredients_text_it" : "Liquirizia 70,5%, menta 27,5%, aromi.", + "ingredients_text_nl" : "Zoethout 70,5%, munt 27,5%, aroma's.", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "Meter la bolsita en la taza, verter agua hirviendo, dejar infusionar 3-4 minutos.", + "preparation_fr" : "Mettre le sachet dans la tasse, verser de l'eau frémissante, puis laisser infuser 3 à 4 minutes.", + "preparation_it" : "Mettere la bustina nella tazza, versare dell'acqua bollente, quindi lasciare in infusione 3-4 minuti.", + "preparation_nl" : "Plaats het theebuiltje in een kop, voeg kokend water toe, laat vervolgens 3 à 4 minuten trekken.", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "13837", + "product_name_en" : "", + "product_name_es" : "Mezcla para infusionar regaliz menta", + "product_name_fr" : "Infusion réglisse menthe", + "product_name_it" : "Infuso liquirizia menta", + "product_name_nl" : "Infusie zoethout munt", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "", + "proteins_value" : "", + "quantity" : "37,5 g", + "salt_unit" : "", + "salt_value" : "", + "saturated-fat_unit" : "", + "saturated-fat_value" : "", + "sodium_unit" : "", + "sodium_value" : "", + "stores" : "Carrefour", + "sugars_unit" : "", + "sugars_value" : "", + "traces" : "", + "warning_es" : "Contiene regaliz, las personas que sufren hipertensión deben evitar un consumo excesivo.", + "warning_fr" : "Contient de la réglisse, les personnes souffrant d'hypertension doivent éviter toute consommation excessive.", + "warning_it" : "Contiene liquirizia, evitare il consumo eccessivo in caso di ipertensione.", + "warning_nl" : "Bevat zoethout, mensen met hoge bloeddruk dienen overmatig gebruik te vermijden." +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3270190174387.json b/t/expected_test_results/import_convert_carrefour_france_export/3270190174387.json new file mode 100644 index 0000000000000..0441569db08c2 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3270190174387.json @@ -0,0 +1,88 @@ +{ + "allergens" : "", + "brands" : "Carrefour", + "carbohydrates_unit" : "", + "carbohydrates_value" : "", + "categories" : "", + "code" : "3270190174387", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "", + "conservation_conditions_fr" : "", + "conservation_conditions_it" : "", + "conservation_conditions_nl" : "", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France", + "customer_service_en" : "", + "customer_service_es" : "", + "customer_service_fr" : "", + "customer_service_it" : "", + "customer_service_nl" : "", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "", + "energy-kcal_unit" : "", + "energy-kcal_value" : "", + "energy-kj_unit" : "", + "energy-kj_value" : "", + "energy_unit" : "", + "energy_value" : "", + "fat_unit" : "", + "fat_value" : "", + "fiber_unit" : "", + "fiber_value" : "", + "generic_name_en" : "", + "generic_name_es" : "", + "generic_name_fr" : "", + "generic_name_it" : "", + "generic_name_nl" : "", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "", + "ingredients_text_fr" : "", + "ingredients_text_it" : "", + "ingredients_text_nl" : "", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "", + "preparation_fr" : "", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "1913", + "product_name_en" : "", + "product_name_es" : "", + "product_name_fr" : "", + "product_name_it" : "", + "product_name_nl" : "", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "", + "proteins_value" : "", + "quantity" : "", + "salt_unit" : "", + "salt_value" : "", + "saturated-fat_unit" : "", + "saturated-fat_value" : "", + "sodium_unit" : "", + "sodium_value" : "", + "stores" : "Carrefour", + "sugars_unit" : "", + "sugars_value" : "", + "traces" : "", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3560070687145.json b/t/expected_test_results/import_convert_carrefour_france_export/3560070687145.json new file mode 100644 index 0000000000000..3fbe8ab394355 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3560070687145.json @@ -0,0 +1,88 @@ +{ + "allergens" : "", + "brands" : "Carrefour", + "carbohydrates_unit" : "g", + "carbohydrates_value" : "23", + "categories" : "", + "code" : "3560070687145", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "Consumir preferentemente antes de la fecha indicada más abajo. Conservar 24 horas en el frigorífico, 3 días en el congelador del frigorífico y hasta la fecha de durabilidad mínima en un congelador *** a -18ºC.", + "conservation_conditions_fr" : "À consommer de préférence avant la date indiquée ci-dessous. À conserver 24 heures dans un réfrigérateur, 3 jours dans le compartiment à glace du réfrigérateur et jusqu'à la date de durabilité minimale dans un congélateur*** à -18°C.", + "conservation_conditions_it" : "Da consumarsi preferibilmente entro la data indicata sotto. Conservare 24 ore nel frigorifero, 3 giorni nello scomparto del ghiaccio del frigorifero e fino al termine minimo di conservazione in un congelatore*** a -18°C.", + "conservation_conditions_nl" : "Ten minste houdbaar tot de hieronder vermelde datum. Bewaart 24 uur in de koelkast, 3 dagen in het vriesvak van de koelkast en tot aan de datum van minimale houdbaarheid in een diepvriezer*** op -18°C.", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France, Italie, Espagne", + "customer_service_en" : "", + "customer_service_es" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_it" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_nl" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "", + "energy-kcal_unit" : "kcal", + "energy-kcal_value" : "133", + "energy-kj_unit" : "kJ", + "energy-kj_value" : "560", + "energy_unit" : "kJ", + "energy_value" : "560", + "fat_unit" : "g", + "fat_value" : "3.2", + "fiber_unit" : "g", + "fiber_value" : "1.7", + "generic_name_en" : "", + "generic_name_es" : "Patatas finas prefritas ultracongeladas.", + "generic_name_fr" : "Pommes de terre allumettes préfrites surgelées.", + "generic_name_it" : "Patate a fiammifero prefritte surgelate.", + "generic_name_nl" : "Voorgebakken allumettes aardappelen, diepvries.", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "Patatas 96%, aceite de girasol 4%, dextrosa.", + "ingredients_text_fr" : "Pommes de terre 96%, huile de tournesol 4%, dextrose.", + "ingredients_text_it" : "Patate 96%, olio di semi girasole 4%, destrosio.", + "ingredients_text_nl" : "Aardappelen 96%, zonnebloemolie 4%, dextrose.", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "À l'huile de tournesol", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "En la freidora: Sumergir las patatas aún ultracongeladas en pequeñas cantidades en aceite caliente a 175ºC y dejar dorar durante 4-6 minutos. Para eliminar el exceso de grasa, reposar las patatas fritas sobre un papel absorbente. Renovar el aceite de la freidora después de 10-12 frituras.", + "preparation_fr" : "À la friteuse : Plongez les frites encore surgelées par petites quantités dans de l'huile préchauffée à 175°C et laissez dorer pendant 4 à 6 minutes. Pour limiter le surplus de matière grasse, laissez reposer les frites sur du papier absorbant. Pensez à renouveler le bain d'huile après 10 à 12 fritures.", + "preparation_it" : "Nella friggitrice: Versate piccole quantità per volta di patatine ancora surgelate nell'olio preriscaldato a 175°C e lasciate dorare per 4 - 6 minuti. Per limitare l'eccesso di olio, lasciate riposare le patate fritte su della carta assorbente per fritti. Ricordate di rinnovare l'olio dopo 10 - 12 fritture.", + "preparation_nl" : "In de friteuse: Doe de nog diepgevroren frieten, in kleine hoeveelheden, in voorverwarmde olie op 175°C en laat ze 4 à 6 minuten goudgeel bakken. Leg ze op een vel keukenpapier om het overtollige vet te absorberen. Vervang de olie na 10 à 12 bakbeurten.", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "23652", + "product_name_en" : "", + "product_name_es" : "Patatas Finas", + "product_name_fr" : "Allumettes", + "product_name_it" : "Patate fritte a fiammifero", + "product_name_nl" : "Allumettes", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "g", + "proteins_value" : "2.2", + "quantity" : "1 kg", + "salt_unit" : "g", + "salt_value" : "0.2", + "saturated-fat_unit" : "g", + "saturated-fat_value" : "0.4", + "sodium_unit" : "g", + "sodium_value" : "0.08", + "stores" : "Carrefour", + "sugars_unit" : "", + "sugars_value" : "", + "traces" : "", + "warning_es" : "ATENCIÓN, NO VOLVER A CONGELAR UNA VEZ DESCONGELADO.", + "warning_fr" : "ATTENTION, NE PAS RECONGELER APRÈS DÉCONGÉLATION.", + "warning_it" : "ATTENZIONE, NON RICONGELARE DOPO LO SCONGELAMENTO.", + "warning_nl" : "NA ONTDOOIING NIET OPNIEUW INVRIEZEN." +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3560071193102.json b/t/expected_test_results/import_convert_carrefour_france_export/3560071193102.json new file mode 100644 index 0000000000000..a8d5f3d8e7191 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3560071193102.json @@ -0,0 +1,88 @@ +{ + "allergens" : "", + "brands" : "Carrefour", + "carbohydrates_unit" : "g", + "carbohydrates_value" : "6.3", + "categories" : "", + "code" : "3560071193102", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "", + "conservation_conditions_fr" : "", + "conservation_conditions_it" : "", + "conservation_conditions_nl" : "", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France", + "customer_service_en" : "", + "customer_service_es" : "", + "customer_service_fr" : "", + "customer_service_it" : "", + "customer_service_nl" : "", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "", + "energy-kcal_unit" : "kcal", + "energy-kcal_value" : "27", + "energy-kj_unit" : "kJ", + "energy-kj_value" : "114", + "energy_unit" : "kJ", + "energy_value" : "114", + "fat_unit" : "g", + "fat_value" : "0.5", + "fiber_unit" : "", + "fiber_value" : "", + "generic_name_en" : "", + "generic_name_es" : "", + "generic_name_fr" : "", + "generic_name_it" : "", + "generic_name_nl" : "", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "", + "ingredients_text_fr" : "", + "ingredients_text_it" : "", + "ingredients_text_nl" : "", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "", + "preparation_fr" : "", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "7934", + "product_name_en" : "", + "product_name_es" : "", + "product_name_fr" : "Yours", + "product_name_it" : "", + "product_name_nl" : "Yours", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "", + "proteins_value" : "", + "quantity" : "", + "salt_unit" : "", + "salt_value" : "", + "saturated-fat_unit" : "g", + "saturated-fat_value" : "0.1", + "sodium_unit" : "", + "sodium_value" : "", + "stores" : "Carrefour", + "sugars_unit" : "g", + "sugars_value" : "5.8", + "traces" : "", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3560071198954.json b/t/expected_test_results/import_convert_carrefour_france_export/3560071198954.json new file mode 100644 index 0000000000000..c010888714d2b --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3560071198954.json @@ -0,0 +1,88 @@ +{ + "allergens" : "", + "brands" : "Carrefour", + "carbohydrates_unit" : "", + "carbohydrates_value" : "", + "categories" : "", + "code" : "3560071198954", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "", + "conservation_conditions_fr" : "", + "conservation_conditions_it" : "", + "conservation_conditions_nl" : "", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France", + "customer_service_en" : "", + "customer_service_es" : "", + "customer_service_fr" : "", + "customer_service_it" : "", + "customer_service_nl" : "", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "", + "energy-kcal_unit" : "", + "energy-kcal_value" : "", + "energy-kj_unit" : "", + "energy-kj_value" : "", + "energy_unit" : "", + "energy_value" : "", + "fat_unit" : "", + "fat_value" : "", + "fiber_unit" : "", + "fiber_value" : "", + "generic_name_en" : "", + "generic_name_es" : "", + "generic_name_fr" : "", + "generic_name_it" : "", + "generic_name_nl" : "", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "", + "ingredients_text_fr" : "", + "ingredients_text_it" : "", + "ingredients_text_nl" : "", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "", + "preparation_fr" : "", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "8643", + "product_name_en" : "", + "product_name_es" : "", + "product_name_fr" : "", + "product_name_it" : "", + "product_name_nl" : "", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "", + "proteins_value" : "", + "quantity" : "", + "salt_unit" : "", + "salt_value" : "", + "saturated-fat_unit" : "", + "saturated-fat_value" : "", + "sodium_unit" : "", + "sodium_value" : "", + "stores" : "Carrefour", + "sugars_unit" : "", + "sugars_value" : "", + "traces" : "", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/3560071228491.json b/t/expected_test_results/import_convert_carrefour_france_export/3560071228491.json new file mode 100644 index 0000000000000..88069c18c7e76 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/3560071228491.json @@ -0,0 +1,88 @@ +{ + "allergens" : "", + "brands" : "Carrefour", + "carbohydrates_unit" : "", + "carbohydrates_value" : "", + "categories" : "", + "code" : "3560071228491", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "", + "conservation_conditions_fr" : "", + "conservation_conditions_it" : "", + "conservation_conditions_nl" : "", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France", + "customer_service_en" : "", + "customer_service_es" : "", + "customer_service_fr" : "", + "customer_service_it" : "", + "customer_service_nl" : "", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "", + "energy-kcal_unit" : "", + "energy-kcal_value" : "", + "energy-kj_unit" : "", + "energy-kj_value" : "", + "energy_unit" : "", + "energy_value" : "", + "fat_unit" : "", + "fat_value" : "", + "fiber_unit" : "", + "fiber_value" : "", + "generic_name_en" : "", + "generic_name_es" : "", + "generic_name_fr" : "", + "generic_name_it" : "", + "generic_name_nl" : "", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "", + "ingredients_text_fr" : "", + "ingredients_text_it" : "", + "ingredients_text_nl" : "", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "", + "preparation_fr" : "", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "19683", + "product_name_en" : "", + "product_name_es" : "", + "product_name_fr" : "", + "product_name_it" : "", + "product_name_nl" : "", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "", + "proteins_value" : "", + "quantity" : "", + "salt_unit" : "", + "salt_value" : "", + "saturated-fat_unit" : "", + "saturated-fat_value" : "", + "sodium_unit" : "", + "sodium_value" : "", + "stores" : "Carrefour", + "sugars_unit" : "", + "sugars_value" : "", + "traces" : "", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/8431876180701.json b/t/expected_test_results/import_convert_carrefour_france_export/8431876180701.json new file mode 100644 index 0000000000000..58aed5252af35 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/8431876180701.json @@ -0,0 +1,88 @@ +{ + "allergens" : "Lait", + "brands" : "Carrefour", + "carbohydrates_unit" : "g", + "carbohydrates_value" : "17", + "categories" : "", + "code" : "8431876180701", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "Conservar entre +1°C y +8°C.\nFecha de caducidad: ver la fecha indicada en la parte superior del envase.", + "conservation_conditions_fr" : "À conserver entre +1°C et +8°C. \nÀ consommer jusqu'au : voir la date figurant sur le dessus de l'emballage.", + "conservation_conditions_it" : "", + "conservation_conditions_nl" : "", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France, Espagne", + "customer_service_en" : "", + "customer_service_es" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_it" : "", + "customer_service_nl" : "", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "FR 62.853.030 EC", + "energy-kcal_unit" : "kcal", + "energy-kcal_value" : "140", + "energy-kj_unit" : "kJ", + "energy-kj_value" : "587", + "energy_unit" : "kJ", + "energy_value" : "587", + "fat_unit" : "g", + "fat_value" : "6.5", + "fiber_unit" : "g", + "fiber_value" : "0.5", + "generic_name_en" : "", + "generic_name_es" : "Postre lácteo con nata y cacao. Sabor chocolate.", + "generic_name_fr" : "Dessert lacté à la crème et au cacao. Saveur chocolat.", + "generic_name_it" : "", + "generic_name_nl" : "", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "_Leche_ desnatada 64,1%, _nata_ pasteurizada 20,5%, azúcar, _lactosa_, almidón modificado de maíz, cacao en polvo 0,7%, espesantes: carragenanos y goma guar, gelatina de vacuno, proteínas de la _leche_, cacao magro en polvo 0,1%, emulgentes: ésteres lácticos de monoglicéridos y diglicéridos de ácidos grasos, aroma, aroma natural de vainilla, _lactosa_ y minerales de la _leche_.\nPuede contener trazas de soja.", + "ingredients_text_fr" : "_Lait_ écrémé 64,1%, _crème_ pasteurisée 20,5%, sucre, _lactose_, amidon modifié de maïs, cacao en poudre 0,7%, épaississants: carraghénanes et gomme guar; gélatine bovine, protéines de _lait_, cacao maigre en poudre 0,1%, émulsifiants: esters lactiques des mono - et diglycérides d'acides gras, arôme, arôme naturel de vanille, _lactose_ et minéraux du _lait_.\nPeut contenir des traces de soja.", + "ingredients_text_it" : "", + "ingredients_text_nl" : "", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "", + "preparation_fr" : "", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "17290", + "product_name_en" : "", + "product_name_es" : "Copa con Nata y Cacao", + "product_name_fr" : "Copa con Nata y Cacao", + "product_name_it" : "", + "product_name_nl" : "", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "g", + "proteins_value" : "3", + "quantity" : "460 g\n2 x (2 x 115 g)", + "salt_unit" : "g", + "salt_value" : "0.13", + "saturated-fat_unit" : "g", + "saturated-fat_value" : "4.2", + "sodium_unit" : "g", + "sodium_value" : "0.052", + "stores" : "Carrefour", + "sugars_unit" : "g", + "sugars_value" : "15", + "traces" : "Soja", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/8431876196009.json b/t/expected_test_results/import_convert_carrefour_france_export/8431876196009.json new file mode 100644 index 0000000000000..c927751812cea --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/8431876196009.json @@ -0,0 +1,88 @@ +{ + "allergens" : "Lait", + "brands" : "Carrefour", + "carbohydrates_unit" : "g", + "carbohydrates_value" : "14", + "categories" : "", + "code" : "8431876196009", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "Fecha de caducidad: ver la fecha en la tapa.\nConservar entre +1º C y +8º C.", + "conservation_conditions_fr" : "À consommer jusqu'au : voir la date sur l'opercule.\nÀ conserver entre +1º C et +8º C.", + "conservation_conditions_it" : "", + "conservation_conditions_nl" : "", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France, Espagne", + "customer_service_en" : "", + "customer_service_es" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_it" : "", + "customer_service_nl" : "", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "AT 30751 EC", + "energy-kcal_unit" : "kcal", + "energy-kcal_value" : "85", + "energy-kj_unit" : "kJ", + "energy-kj_value" : "358", + "energy_unit" : "kJ", + "energy_value" : "358", + "fat_unit" : "g", + "fat_value" : "1.5", + "fiber_unit" : "", + "fiber_value" : "", + "generic_name_en" : "", + "generic_name_es" : "Leche fermentada semidesnatada azucarada con piña y aromatizada.", + "generic_name_fr" : "Lait fermenté demi écrémé sucré à l'ananas et aromatisé.", + "generic_name_it" : "", + "generic_name_nl" : "", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "_Leche_ desnatada 76,2%, preparado de piña 15% (piña 7%, azúcar 5,2%, jarabe de glucosa-fructosa, zumo concentrado de piña 0,2%, almidón modificado de maíz, aroma natural, estabilizante: pectinas, concentrados vegetales (limón y cártamo), correctores de acidez: citratos de sodio - ácido cítrico - citratos de calcio), _nata_, azúcar 2,6%, proteínas de la _leche_ en polvo, _leche_ desnatada en polvo, fermentos _lácticos_.", + "ingredients_text_fr" : "_Lait_ écrémé 76,2%, préparation d'ananas 15% (ananas 7%, sucre 5,2%, sirop de glucose-fructose, jus concentré d'ananas 0,2%, amidon modifié de maïs, arôme naturel, stabilisant : pectine, extraits végétaux (citron, carthame), correcteurs d'acidité : citrate de sodium - acide citrique - citrate de calcium), _crème_, sucre 2,6%, protéines de _lait_ en poudre, _lait_ écrémé en poudre, ferments _lactiques_.", + "ingredients_text_it" : "", + "ingredients_text_nl" : "", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "Sans arômes artificiels, Sans colorants, Sans conservateurs", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "", + "preparation_fr" : "", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "13766", + "product_name_en" : "", + "product_name_es" : "PIÑA con trozos", + "product_name_fr" : "ANANAS avec morceaux", + "product_name_it" : "", + "product_name_nl" : "", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "g", + "proteins_value" : "3.8", + "quantity" : "125 g", + "salt_unit" : "g", + "salt_value" : "0.1", + "saturated-fat_unit" : "g", + "saturated-fat_value" : "1", + "sodium_unit" : "g", + "sodium_value" : "0.04", + "stores" : "Carrefour", + "sugars_unit" : "g", + "sugars_value" : "13", + "traces" : "", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/8431876331110.json b/t/expected_test_results/import_convert_carrefour_france_export/8431876331110.json new file mode 100644 index 0000000000000..d46e3484f0bd3 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/8431876331110.json @@ -0,0 +1,88 @@ +{ + "allergens" : "Lait, Rge", + "brands" : "Carrefour", + "carbohydrates_unit" : "g", + "carbohydrates_value" : "86", + "categories" : "", + "code" : "8431876331110", + "conservation_conditions_en" : "Store in a cool, dry place. Close inner bag well after each use.\nBest before: see date on top of pack.", + "conservation_conditions_es" : "Conservar protegido del calor y de la humedad. Cerrar bien la bolsa interior después de cada uso. Consumir preferentemente antes del: ver fecha indicada en la parte superior del paquete.", + "conservation_conditions_fr" : "À conserver à l'abri de la chaleur et de l'humidité. Bien refermer le sachet intérieur après chaque utilisation. À consommer de préférence avant le : voir la date indiquée sur le dessus du paquet.", + "conservation_conditions_it" : "Conservare lontano da fonti di calore e umidità. Chiudere bene il sacchetto interno dopo ogni utilizzo. Da consumarsi preferibilmente entro il: vedere la data indicata sopra la confezione.", + "conservation_conditions_nl" : "Fris en droog bewaren. De binnenzak na elk gebruik goed sluiten. Ten minste houdbaar tot: zie datum bovenzijde pak.", + "conservation_conditions_pl" : "Przechowywać w suchym i chłodnym miejscu. Po każdym użyciu należy szczelnie zamknąć wewnętrzną torebkę. Najlepiej spożyć przed: patrz data na górze opakowania.", + "conservation_conditions_ro" : "", + "countries" : "France, Italie, Pologne, Espagne", + "customer_service_en" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_es" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_it" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_nl" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France.", + "customer_service_pl" : "Interdis – TSA 91431 – 91343 MASSY Cedex – France.", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "", + "energy-kcal_unit" : "kcal", + "energy-kcal_value" : "381", + "energy-kj_unit" : "kJ", + "energy-kj_value" : "1619", + "energy_unit" : "kJ", + "energy_value" : "1619", + "fat_unit" : "g", + "fat_value" : "0.8", + "fiber_unit" : "g", + "fiber_value" : "2.5", + "generic_name_en" : "Toasted corn flakes coated with sugar, source of 8 vitamins (niacin, B5, B2, B6, B1, B9, D, B12) and iron.", + "generic_name_es" : "Copos de maíz tostados, recubiertos de azúcar, fuente de 8 vitaminas (niacina, B5, B2, B6, B1, B9, D, B12) y de hierro.", + "generic_name_fr" : "Pétales de maïs grillés, enrobés au sucre source de 8 vitamines (niacine, B5, B2, B6, B1, B9, D, B12) et de fer.", + "generic_name_it" : "Fiocchi di mais tostati, ricoperti con zucchero fonte di 8 vitamine (Niacina, B5, B2, B6, B1, B9, D, B12) e ferro.", + "generic_name_nl" : "Geroosterde maïsvlokken, omhuld met suiker bron van 8 vitaminen (niacine, B5, B2, B6, B1, B9, D, B12) en van ijzer.", + "generic_name_pl" : "Prażone płatki kukurydziane pokryte cukrem, źródło 8 witamin (niacyna, B5, B2, B6, B1, B9, D, B12) i żelaza.", + "generic_name_ro" : "", + "ingredients_text_en" : "Maize 70%, sugar 28%, salt, _barley_ malt extract, vitamins: niacin - pantothenic acid (B5) - riboflavin (B2) - vitamin B6 - thiamin (B1) - folic acid (B9) - vitamin D - vitamin B12, ferric diphosphate.\nMay contain traces of peanuts, nuts, milk products, soya-based products and sesame seeds.", + "ingredients_text_es" : "Maíz 70%, azúcar 28%, sal, extracto de malta de _cebada_, vitaminas: niacina - ácido pantoténico (B5) - riboflavina (B2) - vitamina B6 - tiamina (B1) - ácido fólico (B9) - vitamina D - vitamina B12, difosfato férrico.\nPuede contener trazas de cacahuetes, frutos de cáscara, productos lácteos, productos a base de soja y semillas de sésamo.", + "ingredients_text_fr" : "Maïs 70%, sucre 28%, sel, extrait de malt do'_rge_, vitamines : niacine - acide pantothénique (B5) - riboflavine (B2) - vitamine B6 - thiamine (B1) - acide folique (B9) - vitamine D - vitamine B12, diphosphate ferrique. \nPeut contenir des traces d'arachides, de fruits à coque, de produit laitiers, de produits à base de soja et de graines de sésame.", + "ingredients_text_it" : "Mais 70%, zucchero 28%, sale, estratto di malto d'_orzo_, vitamine: niacina - acido pantotenico (B5) - riboflavina (B2) - vitamina B6 - tiamina (B1) - acido folico (B9) - vitamina D - vitamina B12, difosfato ferrico.\nPuò contenere arachidi, frutta a guscio, prodotti a base di latte, prodotti a base di soia e semi di sesamo.", + "ingredients_text_nl" : "Maïs 70%, suiker 28%, zout, _gerst_emoutextract, vitaminen: niacine - pantotheenzuur (B5) - riboflavine (B2) - vitamine B6 - thiamine (B1) - foliumzuur (B9) - vitamine D - vitamine B12, ijzer(III)difosfaat.\nKan sporen bevatten van aardnoten, noten, melkproducten, producten op basis van soja en sesamzaad.", + "ingredients_text_pl" : "Kukurydza 70%, cukier 28%, sól, ekstrakt słodu _jęczmiennego_, witaminy: niacyna - kwas pantotenowy (B5) - ryboflawina (B2) - witamina B6 - tiamina (B1) - kwas foliowy (B9) - witamina D - witamina B12, difosforan żelaza.\nMoże zawierać orzeszki ziemne, orzechy, produkty mleczne, produkty sojowe i nasiona sezamu.", + "ingredients_text_ro" : "", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "Pour your cereal into a bowl. We recommend you use cold milk to keep your cereal crunchy.", + "preparation_es" : "Verter los cereales en un bol. Para disfrutar del crujiente de los cereales, se recomienda usar leche fría.", + "preparation_fr" : "Verse tes céréales dans un bol. Pour apprécier le croustillant de tes céréales, nous te conseillons d'utiliser du lait froid.", + "preparation_it" : "Versa i tuoi cereali in una ciotola. Per apprezzare la croccantezza dei tuoi cereali, ti consigliamo di utilizzare del latte freddo.", + "preparation_nl" : "Giet de ontbijtgranen in een kom. Om de ontbijtgranen lekker knapperig te houden, raden wij u aan om koude melk toe te voegen.", + "preparation_pl" : "Wsyp płatki do miski. Aby cieszyć się kruchością płatków, zalecamy stosowanie zimnego mleka.", + "preparation_ro" : "", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "14505", + "product_name_en" : "Snow Flakes", + "product_name_es" : "Snow Flakes", + "product_name_fr" : "Snow Flakes", + "product_name_it" : "Snow Flakes", + "product_name_nl" : "Snow Flakes", + "product_name_pl" : "Snow Flakes", + "product_name_ro" : "", + "proteins_unit" : "g", + "proteins_value" : "6.1", + "quantity" : "375 g", + "salt_unit" : "g", + "salt_value" : "0.63", + "saturated-fat_unit" : "g", + "saturated-fat_value" : "0.3", + "sodium_unit" : "g", + "sodium_value" : "0.252", + "stores" : "Carrefour", + "sugars_unit" : "g", + "sugars_value" : "30", + "traces" : "Lait, Fruits à coque, Arachides, Graines de sésame, Soja", + "warning_es" : "", + "warning_fr" : "", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/expected_test_results/import_convert_carrefour_france_export/8714800018920.json b/t/expected_test_results/import_convert_carrefour_france_export/8714800018920.json new file mode 100644 index 0000000000000..1b37a0b664771 --- /dev/null +++ b/t/expected_test_results/import_convert_carrefour_france_export/8714800018920.json @@ -0,0 +1,88 @@ +{ + "allergens" : "", + "brands" : "Carrefour", + "carbohydrates_unit" : "g", + "carbohydrates_value" : "1", + "categories" : "", + "code" : "8714800018920", + "conservation_conditions_en" : "", + "conservation_conditions_es" : "Antes de abrir, conservar el envase en un lugar limpio, fresco y seco, resguardado de la luz. Consumir preferentemente antes del fin de: ver en la base de la lata.", + "conservation_conditions_fr" : "Avant ouverture, conservez votre canette dans un endroit propre, frais et sec à l'abri de la lumière. A consommer de préférence avant fin : voir au bas de la canette.", + "conservation_conditions_it" : "", + "conservation_conditions_nl" : "", + "conservation_conditions_pl" : "", + "conservation_conditions_ro" : "", + "countries" : "France, Espagne", + "customer_service_en" : "", + "customer_service_es" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France\nCentros Comerciales Carrefour, S.A.\nC/ Campezo, 16 - 28022 MADRID - España\nTel.: 914 908 900", + "customer_service_fr" : "Interdis - TSA 91431 - 91343 MASSY Cedex - France", + "customer_service_it" : "", + "customer_service_nl" : "", + "customer_service_pl" : "", + "customer_service_ro" : "", + "data_sources" : "", + "emb_codes" : "", + "energy-kcal_unit" : "kcal", + "energy-kcal_value" : "6", + "energy-kj_unit" : "kJ", + "energy-kj_value" : "27", + "energy_unit" : "kJ", + "energy_value" : "27", + "fat_unit" : "", + "fat_value" : "", + "fiber_unit" : "g", + "fiber_value" : "0", + "generic_name_en" : "", + "generic_name_es" : "Bebida energética con gas, con edulcorantes, taurina, cafeína y vitaminas.", + "generic_name_fr" : "Boisson énergisante gazéifiée avec édulcorants, taurine, caféine et vitamines.", + "generic_name_it" : "", + "generic_name_nl" : "", + "generic_name_pl" : "", + "generic_name_ro" : "", + "ingredients_text_en" : "", + "ingredients_text_es" : "Agua carbonatada, acidulante: ácido cítrico, corrector de acidez: citratos de sodio, glucuronolactona, aroma, taurina 0,025%, edulcorantes: acesulfamo K y sucralosa, inositol, cafeína 0,017%, colorantes: caramelo de sulfito cáustico y riboflavina, vitaminas: niacina - B6 - B12.", + "ingredients_text_fr" : "Eau gazéifiée, acidifiant : acide citrique, correcteur d'acidité : citrates de sodium, glucuronolactone, arôme, taurine 0,025%, édulcorants : acésulfame-K et sucralose, inositol, caféine 0,017%, colorants : caramel de sulfite caustique et riboflavines, vitamines : niacine - B6 - B12.", + "ingredients_text_it" : "", + "ingredients_text_nl" : "", + "ingredients_text_pl" : "", + "ingredients_text_ro" : "", + "labels" : "", + "lc" : "fr", + "nutrition_data_per" : "100g", + "nutrition_data_prepared_per" : "100g", + "obsolete" : "0", + "preparation_en" : "", + "preparation_es" : "Servir frío.", + "preparation_fr" : "Servir frais.", + "preparation_it" : "", + "preparation_nl" : "", + "preparation_pl" : "", + "preparation_ro" : "", + "producer_fr" : "", + "producer_nl" : "", + "producer_product_id" : "9572", + "product_name_en" : "", + "product_name_es" : "Energy DRINK* Light**", + "product_name_fr" : "Energy DRINK* Light**", + "product_name_it" : "", + "product_name_nl" : "", + "product_name_pl" : "", + "product_name_ro" : "", + "proteins_unit" : "", + "proteins_value" : "", + "quantity" : "25 cl", + "salt_unit" : "g", + "salt_value" : "0.15", + "saturated-fat_unit" : "", + "saturated-fat_value" : "", + "sodium_unit" : "g", + "sodium_value" : "0.06", + "stores" : "Carrefour", + "sugars_unit" : "g", + "sugars_value" : "0", + "traces" : "", + "warning_es" : "Contenido elevado de cafeína (17 mg/ 100 ml). Bebida no recomendada para niños, personas diabéticas, personas sensibles a la cafeína y mujeres embarazadas. Consumir con moderación, máximo una lata al día. No se recomienda el consumo de esta bebida con alcohol. No se recomienda el consumo de esta bebida en el marco de una actividad deportiva.", + "warning_fr" : "Teneur élevée en caféine (17 mg/ 100ml). Boisson non recommandée aux enfants, aux personnes diabétiques ou sensibles à la caféine et aux femmes enceintes. A consommer avec modération, maximum une canette par jour. Il est déconseillé de consommer cette boisson avec de l'alcool. Il est déconseillé de consommer cette boisson dans la cadre d'une pratique sportive.", + "warning_it" : "", + "warning_nl" : "" +} diff --git a/t/import_convert_carrefour_france.t b/t/import_convert_carrefour_france.t new file mode 100644 index 0000000000000..890a777384bd0 --- /dev/null +++ b/t/import_convert_carrefour_france.t @@ -0,0 +1,113 @@ +#!/usr/bin/perl -w + +# This test scripts: +# 1. import some products from files in a XML format from Carrefour France +# 2. exports the products, and checks that we get the expected exports + +use Modern::Perl '2017'; +use utf8; + +use Test::More; +use Log::Any::Adapter 'TAP', filter => "info"; + +use ProductOpener::Products qw/:all/; +use ProductOpener::Tags qw/:all/; +use ProductOpener::PackagerCodes qw/:all/; +use ProductOpener::Import qw/:all/; +use ProductOpener::Export qw/:all/; +use ProductOpener::Config qw/:all/; +use ProductOpener::Packaging qw/:all/; +use ProductOpener::Ecoscore qw/:all/; +use ProductOpener::ForestFootprint qw/:all/; +use ProductOpener::Test qw/:all/; +use ProductOpener::ImportConvertCarrefourFrance qw/:all/; + +use File::Basename "dirname"; + +use Getopt::Long; +use JSON; + + +my $test_id = "import_convert_carrefour_france"; +my $test_dir = dirname(__FILE__); + +my $usage = < \$update_expected_results) + or die("Error in command line arguments.\n\n" . $usage); + +# Remove all products + +ProductOpener::Test::remove_all_products(); + +# Import test products + +init_emb_codes(); +init_packager_codes(); +init_geocode_addresses(); +init_packaging_taxonomies_regexps(); + +if ((defined $options{product_type}) and ($options{product_type} eq "food")) { + load_agribalyse_data(); + load_ecoscore_data(); + load_forest_footprint_data(); +} + +my $converted_csv_file = "/tmp/import_convert_carrefour_france.csv"; + +open (my $converted_csv, ">:encoding(UTF-8)", $converted_csv_file) or die("Could not create $converted_csv_file: $!\n"); + +my @files = (); +opendir(my $dh, $test_dir . "/inputs/import_convert_carrefour_france") or die("Cannot read $test_dir" . "/inputs/import_convert_carrefour_france"); +foreach my $file (sort { $a cmp $b } readdir($dh)) { + + if ($file =~ /\.xml$/) { + push @files, $test_dir . "/inputs/import_convert_carrefour_france/" . $file; + } +} + +convert_carrefour_france_files($converted_csv, \@files); + +close($converted_csv); + + +my $import_args_ref = { + user_id => "carrefour-france", + csv_file => "/tmp/import_convert_carrefour_france.csv", + no_source => 1, +}; + +my $stats_ref = import_csv_file( $import_args_ref ); + +# Export products + +my $query_ref = {}; +my $separator = "\t"; + +# CSV export + +my $exported_csv_file = "/tmp/import_convert_carrefour_france_export.csv"; +open (my $exported_csv, ">:encoding(UTF-8)", $exported_csv_file) or die("Could not create $exported_csv_file: $!\n"); + +my $export_args_ref = {filehandle=>$exported_csv, separator=>$separator, query=>$query_ref, cc => "fr" }; + +export_csv($export_args_ref); + +close($exported_csv); + +ProductOpener::Test::compare_csv_file_to_expected_results($exported_csv_file, $test_dir . "/expected_test_results/import_convert_carrefour_france_export", $update_expected_results); + + +done_testing(); diff --git a/t/inputs/import_convert_carrefour_france/10412_3270190124924_text.xml b/t/inputs/import_convert_carrefour_france/10412_3270190124924_text.xml new file mode 100644 index 0000000000000..10783b683bf2f --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/10412_3270190124924_text.xml @@ -0,0 +1 @@ +FR3879995
11
AL_DENOCOM0101FACINGSECTION FACING
FR3879996 11AL_BENEF_CONS0202FACINGSECTION FACINGFR3879997 11AL_TXT_LIB_FACE0303FACINGSECTION FACINGFR3879998 11AL_SPE_BIO0404FACINGSECTION FACINGFR3879999 11AL_ALCO_VOL0505FACINGSECTION FACINGFR3880000 11AL_PRESENTATION0606FACINGSECTION FACINGFR3880001Moutarde de Dijon. 11AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITIONFR3880002Ingrédients : Eau, graines de moutarde, vinaigre d'alcool, sel, antioxydant : disulfite de potassium, acidifiant : acide citrique.PF 11AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITIONFR3880003 11AL_RUB_ORIGINE0909ORIGINESECTION ORIGINEFR3880004Nutrition - Valeurs moyennes pour 100 g : Energie 619 kJ (149 kcal) - Matières grasses 12 g (dont saturés 0,8 g) - Glucides 3,2 g (dont sucres 2,7 g) - Fibres alimentaires 2,1 g - Protéines 7,2 g - Sel 6,5 g.AR TT 15/10/2019 : Valeurs dans le tableau non complétées par le CP, pas de modification. 01AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITIONFR3880005 11AL_PREPA1111UTILISATIONSECTION UTILISATIONFR3880006Conservation : À consommer de préférence avant le : voir la date indiquée sur le verre. Avant ouverture, à conserver à température ambiante. Après ouverture, à conserver au réfrigérateur et à consommer dans les 6 mois.PF 11AL_CONSERV1212UTILISATIONSECTION UTILISATIONFR3880007 11AL_PRECAUTION1313UTILISATIONSECTION UTILISATIONFR3880008 11AL_IDEE_RECET1414UTILISATIONSECTION UTILISATIONFR3880009écoemballage + triman 11AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGEFR3880010 10AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCEFR3880011 10AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCEFR3880012 10AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCEFR3880013195 g ePF 11AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCEFR3880014 11AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETEFR3880015N° Cristal 09 69 39 7000
APPEL NON SURTAXE
11
AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR3880016Interdis - TSA 91431 - 91343 MASSY Cedex - France.PF 11AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR3880017 11AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR38800183270190124924 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR3880019 11AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETINFR3880020 11AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMENFR3880021 11AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
10527MOUTARDE DIJON VERRE DECOR 195GALISTD10412
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/10412_3270190124924_valNut.xml b/t/inputs/import_convert_carrefour_france/10412_3270190124924_valNut.xml new file mode 100644 index 0000000000000..40c61ce06253b --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/10412_3270190124924_valNut.xml @@ -0,0 +1 @@ +gGR100,00grammeVALENERLABELFRPREPAREDFRgGR0,00grammeVALENERLABELFRPREPAREDFRPORTIONFRPORTIONSOITFR˜ ARCOLFRFR4491139ENERKJ1EnergieENER kJKJO100,00Kilojoule00kJKJO0,00Kilojoule00FR4491140ENERKC2EnergieENER kcalE14100,00kilocalorie00kcalE140,00kilocalorie00FR368651FR368651AR013368651FR368652FR368652VARIEZ015368652FR377564PHRASETOPFR377565FR377566PHRASEBOTTOM00 07363Valeurs Nutritionnelles Moutarde de DijonTABNUTSTD 10412 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/11734_3270190023814_text.xml b/t/inputs/import_convert_carrefour_france/11734_3270190023814_text.xml new file mode 100644 index 0000000000000..c9c715162daea --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/11734_3270190023814_text.xml @@ -0,0 +1 @@ +FR4046453Brassé
Nature
11
NL3971946Roeryoghurt
Natuur

01
AL_DENOCOM0101FACINGSECTION FACING
FR4046454
Picto Origine France

11
NL3971947Picto Oorsprong FrankrijkTRADNL 01
AL_BENEF_CONS0202FACINGSECTION FACING
FR4046455Nutriscore B
x8
11
NL3971948Nutriscore B
x8
01
AL_TXT_LIB_FACE0303FACINGSECTION FACING
FR4046456 11NL3971949 01AL_SPE_BIO0404FACINGSECTION FACINGFR4046457 11NL3971950 01AL_ALCO_VOL0505FACINGSECTION FACINGFR4046458Suggestion de présentation

11
NL3971951Serveertip 01
AL_PRESENTATION0606FACINGSECTION FACING
FR4046459Yaourt brassé nature au lait entier, source de calcium.En absence de picto "source de calcium", ces précisions peuvent être supprimé de la dénomination légale. 11NL3971952Roeryoghurt natuur van volle melk, bron van calcium.TRADNL 01AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITIONFR4046460Lait entier 96%, lactose et protéines de lait, ferments lactiques. 11NL3971953Volle melk 96%, lactose en melkeiwitten, melkfermenten.TRADNL 01AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITIONFR4046461
11
NL3971954
01
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR4046462Nutriscore B 01NL3971955Nutriscore BSMO 16/10: PI: dans tab nut il est mis 18% pour CalciumTRADNL 01AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITIONFR4046463 11NL3971956 01AL_PREPA1111UTILISATIONSECTION UTILISATIONFR4046464A consommer jusqu'au : voir la date indiquée sur le dessus de l'emballage.
A conserver entre 0°C et +7°C.
11
NL3971957Te gebruiken tot: zie datum op bovenzijde verpakking.
Te bewaren tussen 0°C en +6°C.

RDW 04/11: "+7°C" était remplacé par "+6°C" comme demandé par le CPPTRADNL 01
AL_CONSERV1212UTILISATIONSECTION UTILISATION
FR4046465 11NL3971958 01AL_PRECAUTION1313UTILISATIONSECTION UTILISATIONFR4046466 11NL3971959 01AL_IDEE_RECET1414UTILISATIONSECTION UTILISATIONFR4046467Ecoemballage
Triman
11
NL3971960Ecoemballage
Triman
01
AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGE
FR4046468 10NL3971961 00AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCEFR4046469 10NL3971962 00AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCEFR4046470 10NL3971963 00AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCEFR40464711Kg 2x(4x125g)[ZEMETRO] 11NL39719641Kg 2x(4x125g) 01AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCEFR4046472 11NL3971965 01AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETEFR4046473Interdis - TSA 91431 - 91343 MASSY Cedex - France 11NL3971966Carrefour Product info
PB 2000 Evere 3 - 1140 BRUSSELS
Tél: 0800/9.10.11
TRADNL 01
AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR4046474Fabriqué en France par EMB 31555 pour Interdis. 11NL3971967Geproduceerd in Frankrijk door EMB 31555 voor Interdis. 01AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR4046475FR 31.555.001 CE 11NL3971968FR 31.555.001 CE 01AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR40464763270190023814 01NL39719693270190023814 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR4046477 11NL3971970 01AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETINFR4046478Ces 8 pots ne peuvent être vendus séparément. 11NL3971971Deze 8 potjes mogen niet apart worden verkocht. 01AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMENFR4046479A consommer jusqu'au :
A conserver entre 0°C et +7°C.
En facing 11
NL3971972Te gebruiken tot:
Te bewaren tussen 0°C en +6°C.
rdw 04/11: Recommendation: remplacé " +7°C " par " +6°C " comme en F12TRADNL 01
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
104543A - Brassé natureALISTD11734
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/11734_3270190023814_valNut.xml b/t/inputs/import_convert_carrefour_france/11734_3270190023814_valNut.xml new file mode 100644 index 0000000000000..65082181d42db --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/11734_3270190023814_valNut.xml @@ -0,0 +1 @@ +gGR100,00grammeVALENERLABELFRVALENERLABELNLgGR125,00grammeVALENERLABELFRPORTIONFRPORTIONSOITFRVALENERLABELNLPORTIONNLPORTIONSOITNL˜ 1yaourtARCOLFRARCOLNLFR4580644NL4580644ENERKJ1EnergieENER kJKJO100,00Kilojoule3004kJKJO125,00Kilojoule3754FR4580645NL4580645ENERKC2EnergieENER kcalE14100,00kilocalorie724kcalE14125,00kilocalorie894FR4580646NL4580646FAT3NutrimentsNUT gGR100,00gramme3,45gGR125,00gramme4,36FR4580647NL4580647FASAT4NutrimentsNUT gGR100,00gramme2,111gGR125,00gramme2,613FR4580650NL4580650CHOAVL7NutrimentsNUT gGR100,00gramme6,32gGR125,00gramme7,83FR4580651NL4580651SUGAR8NutrimentsNUT gGR100,00gramme4,55gGR125,00gramme5,66FR4580655NL4580655PRO12NutrimentsNUT gGR100,00gramme4,08gGR125,00gramme5,010FR4580657NL4580657SALTEQ14NutrimentsNUT gGR100,00gramme0,112gGR125,00gramme0,142FR4580677NL4580677CA34MinérauxMIN mgME100,00milligramme14018mgME125,00milligramme17522FR374797FR374797FR374797NL374797NL374797NL374797AR013374797FR374798FR374798FR374798NL374798NL374798NL374798VARIEZ015374798FR384977NL384441PHRASETOPFR384978FR384979NL384442NL384443PHRASEBOTTOM37589 473103A - Brassé natureTABNUTSTDVITMIN 11734 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/12334_3245390028754_text.xml b/t/inputs/import_convert_carrefour_france/12334_3245390028754_text.xml new file mode 100644 index 0000000000000..3512fffb97a4d --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/12334_3245390028754_text.xml @@ -0,0 +1 @@ +FR4908446Gâteau breton à la crème de pruneaux 11AL_DENOCOM0101FACINGSECTION FACINGFR4908447Crème de pruneaux origine FranceCPP : Ne pas mettre en gras (doit être à 75% de la type de F01 mais pas en gras).
Ne pas modifier F01
11
AL_BENEF_CONS0202FACINGSECTION FACING
FR4908448
11
AL_TXT_LIB_FACE0303FACINGSECTION FACING
FR4908449
11
AL_SPE_BIO0404FACINGSECTION FACING
FR4908450
11
AL_ALCO_VOL0505FACINGSECTION FACING
FR4908451
11
AL_PRESENTATION0606FACINGSECTION FACING
FR4908452Gâteau breton fourré à la crème de pruneaux. 11AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITIONFR4908453Ingrédients : Farine de blé*,crème de pruneaux 26% (purée de pruneaux* 17%, sucre*), sucre*, beurre* 18%, oeufs frais*, jaunes d'oeufs frais*, poudres à lever: diphosphates et carbonates de sodium (contient blé), sel*. *Tous ces ingrédients sont d'origine française.
Peut contenir des traces de soja, sésame et fruits à coque.
CPP: Mettre à jour ce champ avec les corrections apportées 11
AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITION
FR4908454
11
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR4908455

01
AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITION
FR4908456
11
AL_PREPA1111UTILISATIONSECTION UTILISATION
FR4908457Conservation : A consommer de préférence avant la date figurant sur l'emballage. A conserver à l'abri de la chaleur et de l'humidité. 11AL_CONSERV1212UTILISATIONSECTION UTILISATIONFR4908458
11
AL_PRECAUTION1313UTILISATIONSECTION UTILISATION
FR4908459
11
AL_IDEE_RECET1414UTILISATIONSECTION UTILISATION
FR4908460
11
AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGE
FR4908461
10
AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCE
FR4908462
10
AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCE
FR4908463
10
AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCE
FR4908464400 g
11
AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCE
FR4908465
11
AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETE
FR4908466Interdis - TSA 91431 - 91343 MASSY Cedex - France 11AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR4908467Fabriqué par Biscuiterie Le Goff - 29600 Saint Martin des Champs pour Interdis 11AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR4908468

11
AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR49084693245390028754 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR4908470"La recette du gâteau breton remonterait au 19ème siècle et se transmettrait de génération en génération. Nous avons revisité cette recette en l'agrémentant d'une crème de pruneaux. Cela fait plus de 30 ans, que nous fabriquons ce produit dans le Finistère en sélectionnant uniquement des ingrédients d'origine française."
Biscuiterie Le Goff, à Saint Martin des Champs.
MT RQ TT 22/01/20: Ajouter carte de France avec point légendé du mot "FINISTÈRE" 11
AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETIN
FR4908471
11
AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
FR4908472
11
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
11022GAT BRETON AUX PRUNEAUXALISTD12334
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/12334_3245390028754_valNut.xml b/t/inputs/import_convert_carrefour_france/12334_3245390028754_valNut.xml new file mode 100644 index 0000000000000..6e860336dfc22 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/12334_3245390028754_valNut.xml @@ -0,0 +1 @@ +gGR100,00grammeVALENERLABELFRgGR0,00grammeVALENERLABELFRPORTIONFRPORTIONSOITFR˜ ARCOLFRFR5270966ENERKJ1EnergieENER kJKJO100,00Kilojoule167620kJKJO0,00Kilojoule00FR5270967ENERKC2EnergieENER kcalE14100,00kilocalorie39920kcalE140,00kilocalorie00FR5270968FAT3NutrimentsNUT Chef ProduitgGR100,00gramme1623FR5270969FASAT4NutrimentsNUT Chef ProduitgGR100,00gramme1051FR5270972CHOAVL7NutrimentsNUT Chef ProduitgGR100,00gramme5822FR5270973SUGAR8NutrimentsNUT Chef ProduitgGR100,00gramme3538FR5270976FIBTG11NutrimentsNUT Chef ProduitgGR100,00gramme2,4FR5270977PRO12NutrimentsNUT Chef ProduitgGR100,00gramme4,69FR5270979SALTEQ14NutrimentsNUT Chef ProduitgGR100,00gramme0,62107633GAT BRETON AUX PRUNEAUXTABNUTSTD 12334 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/13003_3270190006787_text.xml b/t/inputs/import_convert_carrefour_france/13003_3270190006787_text.xml new file mode 100644 index 0000000000000..c4e7df97306b3 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/13003_3270190006787_text.xml @@ -0,0 +1 @@ +FR6749368Vinaigre de vin
saveur
11
NL6119251Wijnazijn
smaak
TRADNL 01
AL_DENOCOM0101FACINGSECTION FACING
FR6749369Échalote 11NL6119252SjalotTRADNL 01AL_BENEF_CONS0202FACINGSECTION FACINGFR6749370
11
NL6119253 01
AL_TXT_LIB_FACE0303FACINGSECTION FACING
FR6749371
PF 11
NL6119254 01
AL_SPE_BIO0404FACINGSECTION FACING
FR6749372
11
NL6119255 01
AL_ALCO_VOL0505FACINGSECTION FACING
FR6749373
PF 11
NL6119256 01
AL_PRESENTATION0606FACINGSECTION FACING
FR6749374Vinaigre de vin rouge aromatisé saveur échalote. 11NL6119257Gearomatiseerde rodewijnazijn met sjalotsmaak.TRADNL 01AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITIONFR6749375Vinaigre de vin rouge, arôme naturel échalote avec autres arômes naturels, conservateur : disulfite de potassium. 11NL6119258Rodewijnazijn, natuurlijk sjalotaroma met andere natuurlijke aroma's, conserveermiddel: kaliumdisulfiet.TRADNL 01AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITIONFR6749376
11
NL6119259 01
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR6749377
Pas de nutriscore 01
NL6119260
01
AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITION
FR6749378
PF 11
NL6119261 01
AL_PREPA1111UTILISATIONSECTION UTILISATION
FR6749379Ce vinaigre n'est pas pasteurisé. Il se conserve sans limite de temps à l'abri de la lumière, dans un endroit frais, sec et sans variation de température. Le dépôt qui peut se former correspond à une légère reprise de la fermentation, la qualité du produit n'en n'est pas dégradée. N° de lot : voir sur le bouchon. 11NL6119262Deze azijn is niet gepasteuriseerd en is onbeperkt houdbaar op een donkere, frisse en droge plaats zonder temperatuurschommelingen. Het bezinksel dat zich kan vormen komt overeen met een lichte hervatting van de fermentatie, wat de kwaliteit van het product niet aantast. Lotnr.: zie dop.

30/10 KVA
Sur le pdf: Merci de mettre un espace entre "donkere," et "frisse" comme dans le TT
TRADNL 01
AL_CONSERV1212UTILISATIONSECTION UTILISATION
FR6749380
PF 11
NL6119263 01
AL_PRECAUTION1313UTILISATIONSECTION UTILISATION
FR6749381
PF 11
NL6119264 01
AL_IDEE_RECET1414UTILISATIONSECTION UTILISATION
FR6749382Triman 11NL6119265Triman 01AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGEFR6749383
PF 10
NL6119266 00
AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCE
FR6749384
PF 10
NL6119267 00
AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCE
FR6749385
PF 10
NL6119268 00
AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCE
FR67493866% d'acidité
75 cl e
11
NL61192696% zuurgraad
75 cl e
TRADNL 01
AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCE
FR6749387
PF 11
NL6119270 01
AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETE
FR6749388Interdis - TSA 91431 - 91343 MASSY Cedex - France 11NL6119271Interdis - TSA 91431 - 91343 MASSY Cedex - France 01AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR6749389
11
NL6119272 01
AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR6749390
PF 11
NL6119273 01
AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR67493913270190006787 01NL61192743270190006787 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR6749392
PF 11
NL6119275 01
AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETIN
FR6749393
11
NL6119276 01
AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
FR6749394
PF 11
NL6119277 01
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
14873Vinaigre de Vin rouge saveur EchaloteALISTD13003
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/13003_3270190006787_valNut.xml b/t/inputs/import_convert_carrefour_france/13003_3270190006787_valNut.xml new file mode 100644 index 0000000000000..dddfb324a9bf3 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/13003_3270190006787_valNut.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/13766_8431876196009_text.xml b/t/inputs/import_convert_carrefour_france/13766_8431876196009_text.xml new file mode 100644 index 0000000000000..6f6946089f424 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/13766_8431876196009_text.xml @@ -0,0 +1 @@ +FR5597301ANANAS
avec morceaux
10
ES5395186PIÑA
con trozos
TRADES 01
AL_DENOCOM0101FACINGSECTION FACING
FR5597302SANS CONSERVATEURS
SANS AROMES ARTIFICIELS
SANS COLORANTS*
* La couleur est apportée par des jus concentrés de fruits et de légumes.
Traduction à adapter selon la réglementation espagnole
Mentions sur opercules + banderoles
10
ES5395187SIN CONSERVANTES
SIN AROMAS ARTIFICIALES
SIN COLORANTES*
*Color aportado de forma natural por sus ingredientes de origen vegetal
TRADES 01
AL_BENEF_CONS0202FACINGSECTION FACING
FR5597303500ge (4x125g)
Lait fermenté demi écrémé sucré à l'ananas et aromatisé.
x4
-Reprendre la déno légale dans le même champs visuel que le poids net (sur les opercules)
-Traduction à appliquer = "Leche fermentada semidesnatada azucarada con pina y aromatizada.
10
ES5395188500ge (4x125g)
Leche fermentada semidesnatada azucarada con piña y aromatizada.
x4
TRADES 01
AL_TXT_LIB_FACE0303FACINGSECTION FACING
FR5597304
10
ES5395189 01
AL_SPE_BIO0404FACINGSECTION FACING
FR5597305
10
ES5395190 01
AL_ALCO_VOL0505FACINGSECTION FACING
FR5597306
10
ES5395191 01
AL_PRESENTATION0606FACINGSECTION FACING
FR5597307Lait fermenté demi écrémé sucré à l'ananas et aromatisé.

-Traduction à appliquer = "Leche fermentada semidesnatada azucarada con pina y aromatizada. 10
ES5395192Leche fermentada semidesnatada azucarada con piña y aromatizada.TRADES 01
AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITION
FR5597308Lait écrémé 76,2%, préparation d'ananas 15% (ananas 7%, sucre 5,2%, sirop de glucose-fructose, jus concentré d'ananas 0,2%, amidon modifié de maïs, arôme naturel, stabilisant : pectine, extraits végétaux (citron, carthame), correcteurs d'acidité : citrate de sodium - acide citrique - citrate de calcium), crème, sucre 2,6%, protéines de lait en poudre, lait écrémé en poudre, ferments lactiques.


CPP : - Changer "zumo concentrado de limón, zumo concentrado de cártamo" par "concentrados vegetales (limón y cártamo)"
- Ingrédient manquant : "arôme naturel" après "amidon modifié de maïs".
10
ES5395193Leche desnatada 76,2%, preparado de piña 15% (piña 7%, azúcar 5,2%, jarabe de glucosa-fructosa, zumo concentrado de piña 0,2%, almidón modificado de maíz, aroma natural, estabilizante: pectinas, concentrados vegetales (limón y cártamo), correctores de acidez: citratos de sodio - ácido cítrico - citratos de calcio), nata, azúcar 2,6%, proteínas de la leche en polvo, leche desnatada en polvo, fermentos lácticos.

02/07/20-NSF MR
Remplacé "zumo concentrado de limón, zumo concentrado de cártamo" par "concentrados vegetales (limón y cártamo)", "pectina" par "pectinas" et ajouté "aroma natural" après "almidón modificado de maíz"
TRADES 01
AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITION
FR5597309
10
ES5395194 01
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR5597310Nutriscore B 00ES5395195Nutriscore B 01AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITIONFR5597311
10
ES5395196 01
AL_PREPA1111UTILISATIONSECTION UTILISATION
FR5597312À consommer jusqu'au : voir la date sur l'opercule.
À conserver entre +1º C et +8º C.


CPP : Suivre TT 10
ES5395197Fecha de caducidad: ver la fecha en la tapa.
Conservar entre +1º C y +8º C.
TRADES 01
AL_CONSERV1212UTILISATIONSECTION UTILISATION
FR5597313
10
ES5395198 01
AL_PRECAUTION1313UTILISATIONSECTION UTILISATION
FR5597314
10
ES5395199 01
AL_IDEE_RECET1414UTILISATIONSECTION UTILISATION
FR5597315Ecoemballage 10ES5395200Ecoemballage

TRADES 01
AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGE
FR5597316
10
ES5395201 00
AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCE
FR5597317
10
ES5395202 00
AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCE
FR5597318
10
ES5395203 00
AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCE
FR5597319125gsur banderole 10ES5395204125gTRADES 01AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCEFR5597320
10
ES5395205 01
AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETE
FR5597321Interdis - TSA 91431 - 91343 MASSY Cedex - France 10ES5395206Interdis - TSA 91431 - 91343 MASSY Cedex - France

TRADES 01
AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR5597322
10
ES5395207 01
AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR5597323AT 30751 CE 10ES5395208AT 30751 CE

TRADES 01
AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR55973248431876196009 00ES53952098431876196009 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR5597325
10
ES5395210 01
AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETIN
FR5597326Ces 4 pots ne peuvent être vendus séparément. 10ES5395211Estos 4 envases no pueden venderse por separado.TRADES 01AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMENFR5597327
CPP : A supprimer > pas dans la TT 10
ES5395212 01
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
12258TT YAOURT ANANAS ESPAGNE PLNALISTD13766
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/13766_8431876196009_valNut.xml b/t/inputs/import_convert_carrefour_france/13766_8431876196009_valNut.xml new file mode 100644 index 0000000000000..496c177081932 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/13766_8431876196009_valNut.xml @@ -0,0 +1 @@ +gGR100,00grammeVALENERLABELESgGRgrammeVALENERLABELESPORTIONESPORTIONSOITES ARCOLESES5847908ENERKJ1EnergieENER FournisseurkJKJO100,00Kilojoule3584kJKJOKilojoule00ES5847909ENERKC2EnergieENER FournisseurkcalE14100,00kilocalorie854kcalE14kilocalorie00ES5847910FAT3NutrimentsNUT FournisseurgGR100,00gramme1,52ES5847911FASAT4NutrimentsNUT FournisseurgGR100,00gramme1,05ES5847914CHOAVL7NutrimentsNUT FournisseurgGR100,00gramme145ES5847915SUGAR8NutrimentsNUT FournisseurgGR100,00gramme1314ES5847919PRO12NutrimentsNUT FournisseurgGR100,00gramme3,88ES5847921SALTEQ14NutrimentsNUT FournisseurgGR100,00gramme0,102FR505908PHRASETOPFR505909FR505910PHRASEBOTTOM8598TVN YAOURT ANANAS ESPAGNE PLNTABNUTSTD 13766 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/13837_3270190153085_text.xml b/t/inputs/import_convert_carrefour_france/13837_3270190153085_text.xml new file mode 100644 index 0000000000000..bc7ea906eb2a2 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/13837_3270190153085_text.xml @@ -0,0 +1 @@ +FR8330010INFUSION
RÉGLISSE MENTHE
11
NL8164646INFUSIE
ZOETHOUT MUNT
TRADNL 01
ES8111486MEZCLA PARA INFUSIONAR
REGALIZ MENTA
14/04/21-NSFMR
Selon la normative espagnole sur Infusions (RD 3176/1983),un produit ne se peut pas appeler "Infusión" sil es plantes n'apparaissent pas à l'article 3. C'est le cas du réglisse, alors ce produit se peut appeler "Mezcla para infusionar".
TRADES 01
IT8105541INFUSO
LIQUIRIZIA MENTA
VDS 14/06: il n'y a pas de TT en Italien sur le PDFTRADIT 01
AL_DENOCOM0101FACINGSECTION FACING
FR8330011

11
NL8164647
TRADNL 01
ES8111487
TRADES 01
IT8105542
TRADIT 01
AL_BENEF_CONS0202FACINGSECTION FACING
FR8330012x25
Infusion réglisse et menthe aromatisée.
Associer x25 au picto sachet
Coord : Déno légale en FOP mis à jour à la demande du CPP dans le drive
11
NL8164648x25
Gearomatiseerde infusie zoethout en munt.
TRADNL 01
ES8111488x25
Mezcla para infusionar de regaliz y menta aromatizada
15/06/21-NSF PP
Ajouté "Mezcla para infusionar de regaliz y menta aromatizada" selon TT FR.
TRADES 01
IT8105543x25
Infuso liquirizia e menta aromatizzata.
VDS 14/06: il n'y a pas de TT en Italien sur le PDF. "Infuso liquirizia e menta aromatizzata." a été ajouté. Merci de màj le PDF.TRADIT 01
AL_TXT_LIB_FACE0303FACINGSECTION FACING
FR8330013
11
NL8164649
01
ES8111489
01
IT8105544
01
AL_SPE_BIO0404FACINGSECTION FACING
FR8330014
11
NL8164650
01
ES8111490
01
IT8105545
01
AL_ALCO_VOL0505FACINGSECTION FACING
FR8330015
11
NL8164651
01
ES8111491
01
IT8105546
01
AL_PRESENTATION0606FACINGSECTION FACING
FR8330016Infusion aromatisée réglisse et menthe. 11NL8164652Gearomatiseerde infusie zoethout en munt.TRADNL 01ES8111492Mezcla para infusionar aromatizada regaliz y menta.14/04/21-NSFMR
Selon la normative espagnole sur Infusions (RD 3176/1983),un produit ne se peut pas appeler "Infusión" sil es plantes n'apparaissent pas à l'article 3. C'est le cas du réglisse, alors ce produit se peut appeler "Mezcla para infusionar".
TRADES 01
IT8105547Infuso aromatizzato liquirizia e menta.TRADIT 01
AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITION
FR8330017Réglisse 70,5%, menthe 27,5%, arômes.

11
NL8164653Zoethout 70,5%, munt 27,5%, aroma's.TRADNL 01ES8111493Regaliz 70,5%, menta 27,5%, aromas.

TRADES 01
IT8105548Liquirizia 70,5%, menta 27,5%, aromi.TRADIT 01
AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITION
FR8330018
11
NL8164654
01
ES8111494
01
IT8105549
01
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR8330019
01
NL8164655
01
ES8111495
01
IT8105550
01
AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITION
FR8330020Mettre le sachet dans la tasse, verser de l'eau frémissante, puis laisser infuser 3 à 4 minutes.


Exprimer la phrase ci-dessous en utilisant les pictos de l'ancien bat
"Mettre le sachet dans la tasse, verser de l'eau frémissante, puis laisser infuser 3 à 4 minutes".
Picto préparation de thé 95°C 200ml 3-4min"

11
NL8164656Plaats het theebuiltje in een kop, voeg kokend water toe, laat vervolgens 3 à 4 minuten trekken.
TRADNL 01
ES8111496Meter la bolsita en la taza, verter agua hirviendo, dejar infusionar 3-4 minutos.TRADES 01IT8105551Mettere la bustina nella tazza, versare dell'acqua bollente, quindi lasciare in infusione 3-4 minuti.

TRADIT 01
AL_PREPA1111UTILISATIONSECTION UTILISATION
FR8330021À conserver dans un endroit propre, sec et frais à l'abri de la lumière. Pour une dégustation optimale, à consommer de préférence avant le / N° de lot : voir sur le dessous de la boîte."Pour une dégustation optimale" uniquement en français. 11NL8164657Op een schone, droge, frisse en donkere plaats bewaren. Ten minste houdbaar tot / Lotnr.: zie onderzijde doosje.TRADNL 01ES8111497Conservar en un lugar limpio, seco y fresco, protegido de la luz. Consumir preferentemente antes del / Nº de lote: ver en la parte inferior del envase.

TRADES 01
IT8105552Conservare in luogo pulito, asciutto e fresco al riparo dalla luce. Da consumarsi preferibilmente entro il / N° di lotto: vedere sotto la confezione.TRADIT 01
AL_CONSERV1212UTILISATIONSECTION UTILISATION
FR8330022Contient de la réglisse, les personnes souffrant d'hypertension doivent éviter toute consommation excessive. 11NL8164658Bevat zoethout, mensen met hoge bloeddruk dienen overmatig gebruik te vermijden.CDS 22/07: remplacer le tiret "Bevat zoethout -" par une virgule: "Bevat zoethout," en cohérence avec le FR et les autres langues -> suivre la TT (déjà demandé dans R1)
29/06 KVA
Merci d'ajouter cette mention sur le pdf
CDS 14/06: remplacer le tiret "Bevat zoethout -" par une virgule: "Bevat zoethout," en cohérence avec le FR
TRADNL 01
ES8111498Contiene regaliz, las personas que sufren hipertensión deben evitar un consumo excesivo.15/07/21-NSF MR
SUR LE PDF: Remplacer "Contiene regaliz, las personas con hipertensión deben evitar un consumo excesivo." par "Contiene regaliz, las personas que sufren hipertensión deben evitar un consumo excesivo." suivre TT ES

29/06/21-NSF MR
SUR LE PDF: Remplacer "Contiene regaliz, las personas con hipertensión deben evitar un consumo excesivo." par "Contiene regaliz, las personas que sufren hipertensión deben evitar un consumo excesivo." suivre TT ES

15/06/21-NSF PP
Ajouté "Contiene regaliz, las personas que sufren hipertensión deben evitar un consumo excesivo." selon TT FR. Merci de mettre à jour sur le PDF.
TRADES 01
IT8105553Contiene liquirizia, evitare il consumo eccessivo in caso di ipertensione.
TRADIT 01
AL_PRECAUTION1313UTILISATIONSECTION UTILISATION
FR8330023
11
NL8164659
01
ES8111499
01
IT8105554
01
AL_IDEE_RECET1414UTILISATIONSECTION UTILISATION
FR8330024Triman
Ecoemballage
Pictos de tri Italie :
- Merci d'ajouter en-dessous du picto "A-014" le code d'identification : PAP21
Nom de la poubelle associé : CARTA

-Merci d'ajouter en-dessous du picto "A-181" le code d'identification : PAP22
Nom de la poubelle associé : CARTA

-Merci d'ajouter en-dessous du picto "A-064" le code d'identification : PAP22
Nom de la poubelle associé : ORGANICO

Phrase réglementaire : Per conferma, consulta
il regolamento comunale
11
NL8164660Triman
Ecoemballage
TRADNL 01
ES8111500Triman
Ecoemballage
TRADES 01
IT8105555Triman
Ecoemballage
A-014: PAP21: CARTA
A-181: PAP22: CARTA
A-064: PAP22: ORGANICO

Per conferma, consulta il regolamento comunale
VDS 25/06: Corriger la consigne de tri IT. Il faut une poubelle verte pour ORGANICO
VDS 14/06: "A-014: PAP21: CARTA
A-181: PAP22: CARTA
A-064: PAP22: ORGANICO

Per conferma, consulta il regolamento comunale" a été ajouté.
TRADIT 01
AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGE
FR8330025
10
NL8164661
00
ES8111501
00
IT8105556
00
AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCE
FR833002637,5[GR] 10NL8164662
TRADNL 00
ES8111502
TRADES 00
IT8105557
TRADIT 00
AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCE
FR8330027
10
NL8164663
00
ES8111503
00
IT8105558
00
AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCE
FR833002837,5 g e (25 x 1,5 g)
25 SACHETS
11
NL816466437,5 g e (25 x 1,5 g)
25 ZAKJES
TRADNL 01
ES811150437,5 g e (25 x 1,5 g)
25 BOLSITAS
TRADES 01
IT810555937,5 g e (25 x 1,5 g)
25 BUSTINE
TRADIT 01
AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCE
FR8330029
11
NL8164665
01
ES8111505
01
IT8105560
01
AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETE
FR8330030Interdis - TSA 91431 - 91343 MASSY Cedex - France. 11NL8164666Interdis - TSA 91431 - 91343 MASSY Cedex - France. 01ES8111506Interdis - TSA 91431 - 91343 MASSY Cedex - France.

TRADES 01
IT8105561Interdis - TSA 91431 - 91343 MASSY Cedex - France. 01
AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR8330031
11
NL8164667
01
ES8111507
01
IT8105562
01
AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR8330032
11
NL8164668
01
ES8111508
01
IT8105563
01
AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR83300333270190153085 01NL81646693270190153085 01ES81115093270190153085 01IT81055643270190153085 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR8330034
11
NL8164670
01
ES8111510
01
IT8105565
01
AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETIN
FR8330035
11
NL8164671
01
ES8111511
01
IT8105566
01
AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
FR8330036À consommer de préférence avant le / N° de lot :
11
NL8164672Ten minste houdbaar tot / Lotnr.:TRADNL 01ES8111512Consumir preferentemente antes del / Nº de lote:TRADES 01IT8105567Da consumarsi preferibilmente entro il / N° di lotto :TRADIT 01
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
12423BoiteALISTD13837
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/13837_3270190153085_valNut.xml b/t/inputs/import_convert_carrefour_france/13837_3270190153085_valNut.xml new file mode 100644 index 0000000000000..a05a23b958770 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/13837_3270190153085_valNut.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/14505_8431876331110_text.xml b/t/inputs/import_convert_carrefour_france/14505_8431876331110_text.xml new file mode 100644 index 0000000000000..515d4d4fff4a3 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/14505_8431876331110_text.xml @@ -0,0 +1 @@ +FR7839031Snow
Flakes
11
NL7654988Snow
Flakes
01
ES7658142Snow
Flakes
01
IT7650097Snow
Flakes
01
PL7648911Snow
Flakes
01
EN7649476Snow
Flakes
01
AL_DENOCOM0101FACINGSECTION FACING
FR7839032
11
NL7654989
01
ES7658143
01
IT7650098
01
PL7648912
01
EN7649477
01
AL_BENEF_CONS0202FACINGSECTION FACING
FR7839033
11
NL7654990
01
ES7658144
01
IT7650099
01
PL7648913
01
EN7649478
01
AL_TXT_LIB_FACE0303FACINGSECTION FACING
FR7839034
11
NL7654991
01
ES7658145
01
IT7650100
01
PL7648914
01
EN7649479
01
AL_SPE_BIO0404FACINGSECTION FACING
FR7839035
11
NL7654992
01
ES7658146
01
IT7650101
01
PL7648915
01
EN7649480
01
AL_ALCO_VOL0505FACINGSECTION FACING
FR7839036
11
NL7654993
01
ES7658147
01
IT7650102
01
PL7648916
01
EN7649481
01
AL_PRESENTATION0606FACINGSECTION FACING
FR7839037Pétales de maïs grillés, enrobés au sucre source de 8 vitamines (niacine, B5, B2, B6, B1, B9, D, B12) et de fer. 11NL7654994Geroosterde maïsvlokken, omhuld met suiker bron van 8 vitaminen (niacine, B5, B2, B6, B1, B9, D, B12) en van ijzer.

TRADNL 01
ES7658148Copos de maíz tostados, recubiertos de azúcar, fuente de 8 vitaminas (niacina, B5, B2, B6, B1, B9, D, B12) y de hierro.

TRADES 01
IT7650103Fiocchi di mais tostati, ricoperti con zucchero fonte di 8 vitamine (Niacina, B5, B2, B6, B1, B9, D, B12) e ferro.VDS 14/05: un espace entre B1 et B9 a été ajouté selon le commentaire du CPP. Merci de màj le PDFTRADIT 01PL7648917Prażone płatki kukurydziane pokryte cukrem, źródło 8 witamin (niacyna, B5, B2, B6, B1, B9, D, B12) i żelaza.TRADPL 01EN7649482Toasted corn flakes coated with sugar, source of 8 vitamins (niacin, B5, B2, B6, B1, B9, D, B12) and iron.(13/05) F07: ''coated in sugar'' remplacé par ''coated with sugar'' selon commentaire du coordinateur PF, merci de màj sur pdf
(08/04) F07: ''Toasted flakes of corn, coated in sugar source of 8 vitamins (niacin,
B5, B2, B6, B1, B9, D, B12) and iron.'' remplacé par ''Toasted corn flakes coated in sugar, source of 8 vitamins (niacin, B5, B2, B6, B1, B9, D, B12) and iron.''
TRADEN 01
AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITION
FR7839038Maïs 70%, sucre 28%, sel, extrait de malt d'orge, vitamines : niacine - acide pantothénique (B5) - riboflavine (B2) - vitamine B6 - thiamine (B1) - acide folique (B9) - vitamine D - vitamine B12, diphosphate ferrique.
Peut contenir des traces d'arachides, de fruits à coque, de produit laitiers, de produits à base de soja et de graines de sésame.
11
NL7654995Maïs 70%, suiker 28%, zout, gerstemoutextract, vitaminen: niacine - pantotheenzuur (B5) - riboflavine (B2) - vitamine B6 - thiamine (B1) - foliumzuur (B9) - vitamine D - vitamine B12, ijzer(III)difosfaat.
Kan sporen bevatten van aardnoten, noten, melkproducten, producten op basis van soja en sesamzaad.

12/01 KVA
Attention, avant de pouvoir mettre les denrées enrichies dans le commerce en Belgique, il faut introduire un dossier de notification auprès des pouvoirs publics.
TRADNL 01
ES7658149Maíz 70%, azúcar 28%, sal, extracto de malta de cebada, vitaminas: niacina - ácido pantoténico (B5) - riboflavina (B2) - vitamina B6 - tiamina (B1) - ácido fólico (B9) - vitamina D - vitamina B12, difosfato férrico.
Puede contener trazas de cacahuetes, frutos de cáscara, productos lácteos, productos a base de soja y semillas de sésamo.






TRADES 01
IT7650104Mais 70%, zucchero 28%, sale, estratto di malto d'orzo, vitamine: niacina - acido pantotenico (B5) - riboflavina (B2) - vitamina B6 - tiamina (B1) - acido folico (B9) - vitamina D - vitamina B12, difosfato ferrico.
Può contenere arachidi, frutta a guscio, prodotti a base di latte, prodotti a base di soia e semi di sesamo.
MD 12/01: Les sources de vitamines n’ont pas été mentionnées sur la liste des ingrédients (Reg.1925/2006).TRADIT 01
PL7648918Kukurydza 70%, cukier 28%, sól, ekstrakt słodu jęczmiennego, witaminy: niacyna - kwas pantotenowy (B5) - ryboflawina (B2) - witamina B6 - tiamina (B1) - kwas foliowy (B9) - witamina D - witamina B12, difosforan żelaza.
Może zawierać orzeszki ziemne, orzechy, produkty mleczne, produkty sojowe i nasiona sezamu.
R2 : "inne" suppriméTRADPL 01
EN7649483Maize 70%, sugar 28%, salt, barley malt extract, vitamins: niacin - pantothenic acid (B5) - riboflavin (B2) - vitamin B6 - thiamin (B1) - folic acid (B9) - vitamin D - vitamin B12, ferric diphosphate.
May contain traces of peanuts, nuts, milk products, soya-based products and sesame seeds.
(13/05)F08: ''thiamine (B1) ''remplacé par ''thiamin (B1)'' selon commentaire du coordinateur PF
(08/07) F08: ''thiamin (B1)'' remplacé par ''thiamine (B1)'' pour harmoniser avec autres références
@ les deux orthographes sont ok.
TRADEN 01
AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITION
FR7839039
11
NL7654996
01
ES7658150
01
IT7650105
01
PL7648919
01
EN7649484
01
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR7839040Nutriscore C 01NL7654997Nutriscore C 01ES7658151Es importante tener una alimentación variada y equilibrada y un estilo de vida saludable.
El efecto beneficioso se obtiene consumiendo la porción de 30 g.
La vitamina D contribuye a la absorción y utilización normal del calcio y el fósforo.
09/04/21-NSF MR
SUR LE PDF, TVN:
1. Mettre "/" entre "de los cuales azúcares" et "di cui zuccheri"
2. Verifier le bon ordre des langues sur le lignes "Vitamine / Vitamina / Witamina / Vitamina / vitamin B6" et "Vitamine / Vitamina / Witamina / Vitamina / vitamin 12", en ES (Vitamina)
TRADES 01
IT7650106Nutriscore CMD 08/04: Remplacer "Tiammina" par "Tiamina" sur le tableau. Sur le PDF rmplacer ''azúcares di'' par ''azúcares / di''TRADIT 01PL7648920Nutriscore C 01EN7649485Nutriscore C 01
AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITION
FR7839041Verse tes céréales dans un bol. Pour apprécier le croustillant de tes céréales, nous te conseillons d'utiliser du lait froid. 11NL7654998Giet de ontbijtgranen in een kom. Om de ontbijtgranen lekker knapperig te houden, raden wij u aan om koude melk toe te voegen.TRADNL 01ES7658152Verter los cereales en un bol. Para disfrutar del crujiente de los cereales, se recomienda usar leche fría.TRADES 01IT7650107Versa i tuoi cereali in una ciotola. Per apprezzare la croccantezza dei tuoi cereali, ti consigliamo di utilizzare del latte freddo.TRADIT 01PL7648921Wsyp płatki do miski. Aby cieszyć się kruchością płatków, zalecamy stosowanie zimnego mleka.TRADPL 01EN7649486Pour your cereal into a bowl. We recommend you use cold milk to keep your cereal crunchy. TRADEN 01AL_PREPA1111UTILISATIONSECTION UTILISATIONFR7839042À conserver à l'abri de la chaleur et de l'humidité. Bien refermer le sachet intérieur après chaque utilisation. À consommer de préférence avant le : voir la date indiquée sur le dessus du paquet. 11NL7654999Fris en droog bewaren. De binnenzak na elk gebruik goed sluiten. Ten minste houdbaar tot: zie datum bovenzijde pak.TRADNL 01ES7658153Conservar protegido del calor y de la humedad. Cerrar bien la bolsa interior después de cada uso. Consumir preferentemente antes del: ver fecha indicada en la parte superior del paquete.TRADES 01IT7650108Conservare lontano da fonti di calore e umidità. Chiudere bene il sacchetto interno dopo ogni utilizzo. Da consumarsi preferibilmente entro il: vedere la data indicata sopra la confezione.TRADIT 01PL7648922Przechowywać w suchym i chłodnym miejscu. Po każdym użyciu należy szczelnie zamknąć wewnętrzną torebkę. Najlepiej spożyć przed: patrz data na górze opakowania.TRADPL 01EN7649487Store in a cool, dry place. Close inner bag well after each use.
Best before: see date on top of pack.
TRADEN 01
AL_CONSERV1212UTILISATIONSECTION UTILISATION
FR7839043
11
NL7655000
01
ES7658154
01
IT7650109
01
PL7648923
01
EN7649488
01
AL_PRECAUTION1313UTILISATIONSECTION UTILISATION
FR7839044
11
NL7655001
01
ES7658155
01
IT7650110
01
PL7648924
01
EN7649489
01
AL_IDEE_RECET1414UTILISATIONSECTION UTILISATION
FR7839045Ecoemballage 11NL7655002Ecoemballage

TRADNL 01
ES7658156Ecoemballage

TRADES 01
IT7650111Ecoemballage 01PL7648925Ecoemballage 01EN7649490Ecoemballage 01
AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGE
FR7839046375[GR] 10NL7655003
TRADNL 00
ES7658157
TRADES 00
IT7650112
TRADIT 00
PL7648926
TRADPL 00
EN7649491
TRADEN 00
AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCE
FR7839047
10
NL7655004
00
ES7658158
00
IT7650113
00
PL7648927
00
EN7649492
00
AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCE
FR7839048
10
NL7655005
00
ES7658159
00
IT7650114
00
PL7648928
00
EN7649493
00
AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCE
FR7839049500g e 11NL7655006500g e

TRADNL 01
ES7658160500g e 01IT7650115500g e 01PL7648929500 g eTRADPL 01EN7649494500g e 01
AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCE
FR7839050
11
NL7655007
01
ES7658161
01
IT7650116
01
PL7648930
01
EN7649495
01
AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETE
FR7839051Interdis - TSA 91431 - 91343 MASSY Cedex - France. 11NL7655008Interdis - TSA 91431 - 91343 MASSY Cedex - France.

TRADNL 01
ES7658162Interdis - TSA 91431 - 91343 MASSY Cedex - France. 01IT7650117Interdis - TSA 91431 - 91343 MASSY Cedex - France. 01PL7648931Interdis – TSA 91431 – 91343 MASSY Cedex – France.TRADPL 01EN7649496Interdis - TSA 91431 - 91343 MASSY Cedex - France. 01
AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR7839052
11
NL7655009
01
ES7658163
01
IT7650118
01
PL7648932
01
EN7649497
01
AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR7839053
11
NL7655010
01
ES7658164
01
IT7650119
01
PL7648933
01
EN7649498
01
AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR78390548431876331110 01NL76550118431876331110 01ES76581658431876331110 01IT76501208431876331110 01PL76489348431876331110 01EN76494998431876331110 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR7839055TROUVE LE CHEMIN POUR QUE LE YÉTI
FASSE UN TOTAL DE 16 POINTS
11
NL7655012VIND DE WEG VOOR DE YETI
ZODAT HIJ IN TOTAAL 16 PUNTEN VERZAMELT
LRE 09/04: Sur le pdf R1: merci de suivre la TT et remplacer "VERZAMELD" par "VERZAMELT" TRADNL 01
ES7658166ENCUENTRA EL CAMINO PARA QUE EL YETI HAGA UN TOTAL DE 16 PUNTOS09/04/21-NSF MR
SUR LE PDF: Traduction ES d' "ARRIVÉE" est "META"
TRADES 01
IT7650121TROVA LA STRADA AFFINCHE' LO YETI POSSA FARE UN TOTALE DI 16 PUNTIMD 08/04: La traduction de "Arrivée" est "Arrivo"TRADIT 01PL7648935ZNAJDŹ DROGĘ, ABY YETI MÓGŁ ZDOBYĆ WSZYSTKIE 16 PUNKTÓWTRADPL 01EN7649500FIND A PATH FOR THE YETI SO THAT HE
MAKES A TOTAL OF 16 POINTS
TRADEN 01
AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETIN
FR7839056
11
NL7655013
01
ES7658167
01
IT7650122
01
PL7648936
01
EN7649501
01
AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
FR7839057À consommer de préférence avant le / N° de lot : 11NL7655014Ten minste houdbaar tot:23/04 KVA
Sur le pdf: merci de remplacer "to" par "tot"(ok sur le pdf R1)
LRE 09/04: TT NL màj à la demande de cpp: supprimé "/ Lotnr." (TT FR pas màj)
TRADNL 01
ES7658168Consumir preferentemente antes del / Nº de lote:TRADES 01IT7650123Da consumarsi preferibilmente entro il :MD 08/04: "N° di lotto" a été supprimé. Merci de màj le PDFTRADIT 01PL7648937Najlepiej spożyć przed:R1: "Nr partii" supprimé comme demandéTRADPL 01EN7649502Best before: (8/04) F27: ''/ Batch no.'' à la demande de CPPTRADEN 01
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
12874TT 500G PETALE MAIS SUCRE ESPALISTD14505
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/14505_8431876331110_valNut.xml b/t/inputs/import_convert_carrefour_france/14505_8431876331110_valNut.xml new file mode 100644 index 0000000000000..d772fc1f61baf --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/14505_8431876331110_valNut.xml @@ -0,0 +1 @@ +gGR100,00grammeVALENERLABELFRVALENERLABELNLVALENERLABELESVALENERLABELITVALENERLABELPLVALENERLABELENgGR0,00grammeVALENERLABELFRPORTIONFRPORTIONSOITFRVALENERLABELNLPORTIONNLPORTIONSOITNLVALENERLABELESPORTIONESPORTIONSOITESVALENERLABELITPORTIONITPORTIONSOITITVALENERLABELPLPORTIONPLPORTIONSOITPLVALENERLABELENPORTIONENPORTIONSOITEN ARCOLFRARCOLNLARCOLESARCOLITARCOLPLARCOLENFR7182700NL7182700ES7182700IT7182700PL7182700EN7182700ENERKJ1EnergieENER kJKJO100,00Kilojoule161919kJKJO0,00Kilojoule00FR7182701NL7182701ES7182701IT7182701PL7182701EN7182701ENERKC2EnergieENER kcalE14100,00kilocalorie38119kcalE140,00kilocalorie00FR7182702NL7182702ES7182702IT7182702PL7182702EN7182702FAT3NutrimentsNUT gGR100,00gramme0,81FR7182703NL7182703ES7182703IT7182703PL7182703EN7182703FASAT4NutrimentsNUT gGR100,00gramme0,32FR7182706NL7182706ES7182706IT7182706PL7182706EN7182706CHOAVL7NutrimentsNUT gGR100,00gramme8633FR7182707NL7182707ES7182707IT7182707PL7182707EN7182707SUGAR8NutrimentsNUT gGR100,00gramme3033FR7182710NL7182710ES7182710IT7182710PL7182710EN7182710FIBTG11NutrimentsNUT gGR100,00gramme2,50FR7182711NL7182711ES7182711IT7182711PL7182711EN7182711PRO12NutrimentsNUT gGR100,00gramme6,112FR7182713NL7182713ES7182713IT7182713PL7182713EN7182713SALTEQ14NutrimentsNUT gGR100,00gramme0,6311FR7182721NL7182721ES7182721IT7182721PL7182721EN7182721VITD22VitaminesVIT µgMC100,00microgramme5,0100FR7182725NL7182725ES7182725IT7182725PL7182725EN7182725THIA26VitaminesVIT mgME100,00milligramme1,1100FR7182726NL7182726ES7182726IT7182726PL7182726EN7182726RIBF27VitaminesVIT mgME100,00milligramme1,4100FR7182727NL7182727ES7182727IT7182727PL7182727EN7182727NIA28VitaminesVIT mgME100,00milligramme16100FR7182728NL7182728ES7182728IT7182728PL7182728EN7182728VITB629VitaminesVIT mgME100,00milligramme1,4100FR7182729NL7182729ES7182729IT7182729PL7182729EN7182729FOLDFE30VitaminesVIT µgMC100,00microgramme10050FR7182730NL7182730ES7182730IT7182730PL7182730EN7182730VITB1231VitaminesVIT µgMC100,00microgramme2,5100FR7182732NL7182732ES7182732IT7182732PL7182732EN7182732PANTAC33VitaminesVIT mgME100,00milligramme6,0100FR7182735NL7182735ES7182735IT7182735PL7182735EN7182735FE36MinérauxMIN mgME100,00milligramme7,050FR616067NL646681PHRASETOPNL646682NL646683PHRASEBOTTOM9059TVN 500G PETALE MAIS SUCRE ESPTABNUTSTDVITMIN 14505 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/17049_3245414671133_text.xml b/t/inputs/import_convert_carrefour_france/17049_3245414671133_text.xml new file mode 100644 index 0000000000000..40fa227bf7c79 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/17049_3245414671133_text.xml @@ -0,0 +1 @@ +FR6399515Cheeseburgers 11NL5930290Cheeseburgers 01ES5918482Cheeseburgers

TRADES 01
IT5925181Cheeseburgers 01PL5923540CheeseburgeryTRADPL 01RO5923235Cheeseburger-iTRADRO 01
AL_DENOCOM0101FACINGSECTION FACING
FR6399516Préparation de viande de boeuf hachée cuite assaisonnée contenant des protéines de soja 11NL5930291Gekruide en gegaarde vleesbereiding van gehakt rundvlees met soja-eiwitten

AVA 07/10: TT NL màj selon TT FR: Ajouté 'Gekruide en gegaarde vleesbereiding van gehakt rundvlees met soja-eiwitten' TRADNL 01
ES5918483Preparado de carne de vacuno picada cocida sazonada que contiene proteínas de soja06/10/20_NSF_FD
Ajouté "Preparado de carne de vacuno picada cocida sazonada que contiene proteínas de soja" selon TT FR
TRADES 01
IT5925182Preparazione alimentare di carne macinata di manzo cotta, condita, contenente proteine di soiaMD 07/10: Mise a jour selon le TT FR. Merci de màj le pdf.TRADIT 01PL5923541Przygotowane z mielonego, gotowanego i przyprawionego wyrobu z mięsa wołowego zawierającego białko sojowe. TRADPL 01RO5923236Preparat pe bază de carne de vită tocată gătită, condimentată, cu adaos de proteine din soiaF02 NSF RO -MAJ TT - rajouté le traduction.TRADRO 01
AL_BENEF_CONS0202FACINGSECTION FACING
FR6399517x6
-PictoVBF
- surgelé
-Pictomicro ondes 1min 40
11
NL5930292x6
-PictoVBF
- diepvries
-Pictomicro ondes 1min 40


TRADNL 01
ES5918484x6
-PictoVBF
- surgelé
-Pictomicro ondes 1min 40
01
IT5925183x6
-PictoVBF
- surgelato
-Pictomicro ondes 1min 40
TRADIT 01
PL5923542x6
-Piktogram VBF
-mrożony
-Piktogram kuchenka mikrofalowa 1 min 40 sek.
TRADPL 01
RO5923237x6
- PictoVBF
- congelat rapid
- Pictomicro ondes 1 min 40
TRADRO 01
AL_TXT_LIB_FACE0303FACINGSECTION FACING
FR6399518 11NL5930293 01ES5918485 01IT5925184 01PL5923543 01RO5923238 01AL_SPE_BIO0404FACINGSECTION FACINGFR6399519 11NL5930294 01ES5918486 01IT5925185 01PL5923544 01RO5923239 01AL_ALCO_VOL0505FACINGSECTION FACINGFR6399520Suggestion de présentation 11NL5930295ServeertipTRADNL 01ES5918487Sugerencia de presentaciónTRADES 01IT5925186L'immagine ha il solo scopo di presentare il prodotto TRADIT 01PL5923545Propozycja podaniaTRADPL 01RO5923240Sugestie de prezentareF06 NSF RO, le 20/10/2020 - R1 PDF - Rajoutez svp "Sugestie de prezentare" sur le PDF à côté des autres languesTRADRO 01AL_PRESENTATION0606FACINGSECTION FACINGFR6399521Préparations composées de pain spécial, de préparation de viande de bœuf hachée cuite assaisonnée contenant des protéines de soja, de sauce et de fromage fondu - Surgelé 11NL5930296Bereidingen samengesteld uit speciaal brood, gekruide en gegaarde vleesbereiding van gehakt rundvlees met soja-eiwitten, saus en smeltkaas - Diepvries
TRADNL 01
ES5918488Preparación compuesta de pan especial, preparado de carne picada cocida sazonada que contiene proteínas de soja, de salsa y queso fundido - UltracongeladoTRADES 01IT5925187Preparazione a base di pane, preparazione alimentare di carne macinata di manzo cotta condita, contenente proteine di soia, salsa e formaggio fuso - SurgelatoYD 07/10: Le TT IT a ètè mise à jour. Merci de maj le pdf.TRADIT 01PL5923546Przetwory składające się ze specjalnego chleba, mielonego, gotowanego i przyprawionego wyrobu z mięsa wołowego zawierającego białko sojowe, sos i ser topiony – MrożoneTRADPL 01RO5923241Preparate compuse din pâine specială, preparat din carne de vită tocată gătită, condimentată, cu adaos de proteine din soia, sos și brânză topită - Congelate rapid.TRADRO 01
AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITION
FR6399522Pain spécial 44% (farine de blé, eau, huile de colza, dextrose, levure, gluten de blé, graines de sésame 0,5%, sel, émulsifiant : mono et diglycérides d'acides gras, farine de fève, agent de traitement de la farine : acide ascorbique), viande de boeuf 19%, sauce 14% (eau, moutarde [eau, vinaigre d'alcool, graines de moutarde, sel, acidifiant : acide citrique, sucre, curcuma, antioxydant : disulfite de potassium, arômes naturels], concentré de tomates, sucre, huile de colza, oignons, cornichons [cornichons, sulfites, affermissant : E509], amidon modifié de maïs, vinaigre d'alcool, sel), fromage fondu 10% (fromage, eau, beurre, amidon modifié de pomme de terre, protéines de lait, sels de fonte : citrates de sodium, sel, colorants : caroténoïdes et extrait de paprika), protéines de soja réhydratées 7.7%, eau, protéines de soja 0.6%, fibres de pomme de terre, sel, arômes. Viande bovine origine France.

Ce cheeseburger contient 32% de préparation de viande de boeuf hachée cuite assaisonnée contenant des protéines de soja.
11
ES5918489Pan especial 44% (harina de trigo, agua, aceite de colza, dextrosa, levadura, gluten de trigo, semillas de sésamo 0,5%, sal, emulgente: monoglicéridos y diglicéridos de ácidos grasos, harina de habas, agente de tratamiento de la harina: ácido ascórbico), carne de vacuno 19%, salsa 14% (agua, mostaza [agua, vinagre de alcohol, semillas de mostaza, sal, acidulante: ácido cítrico, azúcar, cúrcuma, antioxidante: metabisulfito potásico, aromas naturales], concentrado de tomate, azúcar, aceite de colza, cebollas, pepinillos [pepinillos, sulfitos, endurecedor: E509], almidón modificado de maíz, vinagre de alcohol, sal), queso fundido 10% (queso, agua, mantequilla, almidón modificado de patata, proteínas de la leche, sales de fundido: citratos de sodio, sal, colorantes: carotenos y extracto de pimentón), proteínas de soja rehidratadas 7,7%, agua, proteínas de soja 0,6%, fibras de patata, sal, aromas. Carne de vacuno origen Francia.

Este cheeseburger contiene 32% de preparación de carne molida cocida sazonada que contiene proteínas de soja.
06/10/20_NSF_FD
Remplacé "carne de ternera" par "carne de vacuno" et "Esta hamburguesa con queso" par "Este cheeseburger"
TRADES 01
NL5930297Speciaal brood 44% (tarweboem, water, koolzaadolie, dextrose, gist, tarwegluten, sesamzaad 0,5%, zout, emulgator: mono- en diglyceriden van vetzuren, bonenmeel, meelverbeteraar: ascorbinezuur), rundvlees 19%, saus 14% (water, mosterd [water, alcoholazijn, mosterdzaad, zout, voedingszuur: citroenzuur, suiker, kurkuma, antioxidant: kaliumdisulfiet, natuurlijke aroma's], tomatenconcentraat, suiker, koolzaadolie, uien, augurken [augurken, verstevigingsmiddel: calciumchloride], gemodificeerd maïszetmeel, alcoholazijn, zout), smeltkaas 10% (kaas, water, boter, gemodificeerd aardappelzetmeel, melkeiwitten, smeltzouten: natriumcitraten, zout, kleurstoffen: carotenen en paprika-extract), gerehydrateerde soja-eiwitten 7,7%, water, soja-eiwitten 0,6%, aardappelvezels, zout, aroma's.
Rundvlees van Franse oorsprong.

Deze cheesburger bevat 32% gekruide en gegaarde vleesbereiding van gehakt rundvlees met soja-eiwitten.


CDS 19/10: Echange e-mail RQ Céline Coroado le 19/10/2020: La liste d'ingrédients sur ce produit est donc :
Pain spécial 44% (farine de blé, eau, huile de colza, dextrose, levure, gluten de blé, graines de sésame 0,5%, sel, émulsifiant : mono et diglycérides d'acides gras, farine de fève, agent de traitement de la farine : acide ascorbique), viande de boeuf 19%, sauce 14% (eau, moutarde [eau, vinaigre d'alcool, graines de moutarde, sel, acidifiant : acide citrique, sucre, curcuma, antioxydant : disulfite de potassium, arômes naturels], concentré de tomates, sucre, huile de colza, oignons, cornichons (cornichons, affermissant : chlorure de calcium), amidon modifié de maïs, vinaigre d'alcool, sel), fromage fondu 10% (fromage, eau, beurre, amidon modifié de pomme de terre, protéines de lait, sels de fonte : citrates de sodium, sel, colorants : caroténoïdes et extrait de paprika), protéines de soja réhydratées 7.7%, eau, protéines de soja 0.6%, fibres de pomme de terre, sel, arômes.

LRE 19/08: 1/ Suggestion: E509 = Calciumchloride / Chlorure de calcium. Remplacer "E509" par "chlorure de calcium" comme pour tous les autres additifs.
2/ Il suffit de souligner uniquement "blé" dans "gluten de blé" (TT NL màj).
3/ Merci de vérifier si "sulfites" ne doit pas être souligné et donc le produit contient moins de 10 ppm de sulfite?
TRADNL 01
IT5925188Pane 44% (farina di frumento, acqua, olio di colza, destrosio, lievito, glutine di frumento, semi di sesamo 0,5%, sale, emulsionante: mono- e digliceridi degli acidi grassi, farina di fave, agente di trattamento della farina: acido ascorbico), carne di manzo 19%, salsa 14% (acqua, senape [acqua, aceto di alcool, semi di senape, sale, acidificante: acido citrico, zucchero, curcuma, antiossidante: disolfito di potassio, aromi naturali], concentrato di pomodoro, zucchero, olio di colza, cipolle, cetriolini [cetriolini, solfiti, agente di resistenza: E509], amido modificato di mais, aceto di alcool, sale), formaggio fuso 10% (formaggio, acqua, burro, amido modificato di patata, proteine del latte, sali di fusione: citrati di sodio, sale, coloranti: caroteni ed estratto di paprica), proteine di soia reidratate 7,7%, acqua, proteine di soia 0,6%, fibre di patata, sale, aromi. Carne bovina origine Francia.

Questi cheeseburgers contengono il 32% di preparazione di carne macinata di manzo cotta condita, contenente proteine di soia.
YD 07/10: "Pane speciale" a été remplacé par "Pane" et "Questi cheeseburgers contengono il 32% di preparato di carne m macinata cotta condita contenente proteine di soia." par "Questi cheeseburgers contengono il 32% di preparazione di carne macinata di manzo cotta condita, con proteine di soia". Merci de màj le pdf.TRADIT 01
PL5923547Specjalny chleb 44% (mąka pszenna, woda, olej rzepakowy, dekstroza, drożdże, gluten pszenny, nasiona sezamu 0,5%, sól, emulgator: mono- i diglicerydy kwasów tłuszczowych, mąka fasolowa, środek do przetwarzania mąki: kwas askorbinowy), mięso wołowe 19%, sos 14% (woda, musztarda [woda, ocet spirytusowy, nasiona gorczycy, sól, substancja zakwaszająca: kwas cytrynowy, cukier, kurkuma, przeciwutleniacz: disiarczyn potasu, aromaty naturalne], koncentrat pomidorowy, cukier, olej rzepakowy, cebula, korniszony [korniszony, siarczyny, substancja wiążąca: E509], modyfikowana skrobia kukurydziana, ocet spirytusowy, sól), ser topiony 10% (ser, woda, masło, modyfikowana skrobia ziemniaczana, białko mleka, sole emulgujące: cytryniany sodu, sól, barwniki: karotenoidy i wyciąg z papryki), uwodnione białko sojowe 7,7%, woda, białko sojowe 0,6%, błonnik ziemniaczany, sól, aromaty. Mięso wołowe pochodzące z Francji.

Cheeseburger zawiera 32% mielonego, gotowanego i przyprawionego wyrobu z mięsa wołowego zawierającego białko sojowe.
TRADPL 01
RO5923242Pâine specială 44% (făină de grâu, apă, ulei de rapiță, dextroză, drojdie, gluten din grâu, semințe de susan 0,5%, sare, emulsifiant: mono- și digliceride ale acizilor grași, făină de fasole, agent de tratare a făinii: acid ascorbic), carne de vită 19%, sos 14% (apă, muștar [apă, oțet de alcool, semințe de muștar, sare, acidifiant: acid citric, zahăr, curcuma, antioxidant: metabisulfit de potasiu, arome naturale], pastă de tomate, zahăr, ulei de rapiță, ceapă, castraveți cornișon [castraveți cornișon, agent de întărire: clorură de calciu], amidon modificat din porumb, oțet de alcool, sare), brânză topită 10% (brânză, apă, unt, amidon modificat din cartofi, proteine din lapte, săruri de topire: citrați de sodiu, sare, coloranți: caroteni și extract de ardei roșu), proteine din soia rehidratată 7,7%, apă, proteine din soia 0,6%, fibre din cartofi, sare, arome. Carnea de vită are origine Franța.
Acești cheeseburger-i conțin 32% preparat din carne de vită tocată gătită, condimentată, cu adaos de proteine din soia.

F08 NSF RO 20/10/2020 - MAJ TT - Mettre à jour aussi le PDF.
- Changez svp sur pdf ``;` avec ``,`` - ``...acizilor grași, făină de fasole,...„
- Changez svp „ (apă, muștar [apă,...„ par „(apă, muștar [apă,...„
- Changez svp „turmeric„ par „curcuma„
- Correction traduction : castraveți cornișon [castraveți cornișon, agent de întărire: clorură de calciu], ...- Mettre à jour aussi sur le PDF.
- MAJ ponctuation: Remplacé "," avec traduction pour "et" "și": coloranți: caroteni și extract de ardei roșu), ...
TRADRO 01
AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITION
FR6399523 11NL5930298 01ES5918490 01IT5925189 01PL5923548 01RO5923243 01AL_RUB_ORIGINE0909ORIGINESECTION ORIGINEFR6399524Nutriscore D
01
NL5930299Nutriscore D 01ES5918491Nutriscore D 01IT5925190Nutriscore D 01PL5923549Nutriscore D 01RO5923244Nutriscore D 01
AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITION
FR6399525Au four à micro-ondes : Après avoir retiré le cheeseburger de son sachet, placez-le encore surgelé sur une assiette. Faites-le chauffer 1min.30 à 1min. 40 selon la puissance de votre four à micro-ondes. Laissez reposer 1 min. et dégustez. 11NL5930300In de microgolfoven: Haal de cheeseburger uit het zakje en leg hem nog diepgevroren op een bord. Verwarm 1min30 à 1min40, naargelang het vermogen van uw microgolfoven. Laat 1 min rusten en eet smakelijk.


TRADNL 01
ES5918492En el microondas: Después de sacar el cheeseburger de su bolsa, colocarlo aún ultracongelado en un plato. Calentarlo durante 1 minuto 30 a 1 minuto 40 dependiendo de la potencia del microondas. Dejar reposar 1 minuto y disfrutar.06/10/20_NSF_FD
Remplacé "Una vez el cheeseburger retirado de su bolsa," par "Después de sacar el cheeseburger de su bolsa"
TRADES 01
IT5925191Al microonde: Dopo aver estratto il cheeseburger dal suo sacchetto, posizionatelo ancora congelato su un piatto. Fatelo scaldare 1 min.30-1 min.40 a seconda della potenza del vostro forno a microonde. Lasciate riposare 1 min. e gustate.TRADIT 01PL5923550Kuchenka mikrofalowa: po wyjęciu cheeseburgera z opakowania położyć go na talerzu. Podgrzewać przez 1 min 30 sek. – 1 min 40 sek. w zależności od mocy kuchenki mikrofalowej. Odczekać minutę.TRADPL 01RO5923245În cuptorul cu microunde: După ce scoateți cheeseburger-ul din ambalaj, așezați-l congelat pe o farfurie. Încălziți-l timp de 1 min. 30 până la 1 min. 40 în funcție de puterea cuptorului cu microunde. Lăsați-l să se răcească timp de 1 min. și degustați-l.TRADRO 01
AL_PREPA1111UTILISATIONSECTION UTILISATION
FR6399526À conserver dans un congélateur *** (ou ****) à -18°C. Attention, ne pas recongeler après décongélation.
Pour une dégustation optimale, à consommer de préférence avant la date indiquée sur le côté de la boîte.
ne pas traduire la mention 'pour une dégustation optimale' dans les langues autres que FR 11
NL5930301Te bewaren in een diepvriezer*** (of ****) op -18°C. Na ontdooiing niet opnieuw invriezen.
Ten minste houdbaar tot de datum vermeld op de zijkant van de doos.

CDS 19/10: Suggestion: mettre la mention "Attention, ne pas recongeler après décongélation." en évidence dans toutes les languesTRADNL 01
ES5918493Conservar en un congelador*** (o ****) a -18 ºC. Atención, no volver a congelar una vez descongelado.
Consumir preferentemente antes de la fecha indicada en el lateral del envase.
TRADES 01
IT5925192Conservare in congelatore *** (o ****) a -18°C.
Attenzione, non ricongelare dopo lo scongelamento.
Da consumarsi preferibilmente entro la data indicata sul lato della confezione.
TRADIT 01
PL5923551Przechowywać w zamrażalniku *** (lub ****) w temperaturze -18°C. Uwaga, nie zamrażać ponownie po rozmrożeniu. Najlepiej spożyć przed datą wskazaną na boku pudełka.TRADPL 01RO5923246A se păstra la congelator *** (sau ****) la max. -18 °C. Atenție, a nu se recongela după decongelare.
A se consuma de preferință înainte de data indicată pe partea laterală a cutiei.
F12 NSF RO 20/10/2020 - MAJ TT - Mettre à jour aussi le PDF.
- Rajouté la lettre "n": Atenție, a nu se recongela ...
- Supprimé "Pour une dégustation optimale"
TRADRO 01
AL_CONSERV1212UTILISATIONSECTION UTILISATION
FR6399527 11NL5930302 01ES5918494 01IT5925193 01PL5923552 01RO5923247 01AL_PRECAUTION1313UTILISATIONSECTION UTILISATIONFR6399528 11NL5930303 01ES5918495 01IT5925194 01PL5923553 01RO5923248 01AL_IDEE_RECET1414UTILISATIONSECTION UTILISATIONFR6399529Triman Ecoemballage 11NL5930304Triman Ecoemballage 01ES5918496Triman Ecoemballage

TRADES 01
IT5925195Triman Ecoemballage 01PL5923554Triman Ecoemballage 01RO5923249Triman Ecoemballage 01
AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGE
FR6399530 10NL5930305 00ES5918497 00IT5925196 00PL5923555 00RO5923250 00AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCEFR6399531 10NL5930306 00ES5918498 00IT5925197 00PL5923556 00RO5923251 00AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCEFR6399532 10NL5930307 00ES5918499 00IT5925198 00PL5923557 00RO5923252 00AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCEFR6399533Poids net 750g (6x125g) 11NL5930308Nettogewicht 750g (6x125g)AVA 07/10: TT NL màj selon TT FR: Ajouté 'Nettogewicht' TRADNL 01ES5918500750g (6x125g)

TRADES 01
IT5925199Peso netto 750g (6x125g)YD 07/10: Mise à jour selon le TT FR. Merci de màj le pdf.TRADIT 01PL5923558750g (6x125g) 01RO5923253Cantitate netă 750 g (6x125 g)F19 NSF RO 20/10/2020 - MAJ TT
- rajouté la traduction pour "Poids net" = Cantitate netă
TRADRO 01
AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCE
FR6399534 11NL5930309 01ES5918501 01IT5925200 01PL5923559 01RO5923254 01AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETEFR6399535Interdis - TSA 91431 - 91343 MASSY Cedex - France 11NL5930310Interdis - TSA 91431 - 91343 MASSY Cedex - France 01ES5918502Interdis - TSA 91431 - 91343 MASSY Cedex - France

TRADES 01
IT5925201Interdis - TSA 91431 - 91343 MASSY Cedex - France 01PL5923560Interdis – TSA 91431 – 91343 MASSY Cedex – FranceTRADPL 01RO5923255Interdis - TSA 91431 - 91343 MASSY Cedex - FranceF21, NSF, le 20.10.2020, MAJ TT Franța = FranceTRADRO 01
AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR6399536 11NL5930311 01ES5918503 01IT5925202 01PL5923561 01RO5923256 01AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR6399537FR 03.315.001 CE 11NL5930312FR 03.315.001 CE 01ES5918504FR 03.315.001 CE

TRADES 01
IT5925203FR 03.315.001 CE 01PL5923562FR 03.315.001 CE 01RO5923257FR 03.315.001 CE

TRADRO 01
AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR63995383245414671133 01NL59303133245414671133 01ES59185053245414671133 01IT59252043245414671133 01PL59235633245414671133 01RO59232583245414671133 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR6399539 11NL5930314 01ES5918506 01IT5925205 01PL5923564 01RO5923259 01AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETINFR6399540 11NL5930315 01ES5918507 01IT5925206 01PL5923565 01RO5923260 01AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMENFR6399541À consommer de préférence avant le : / Produit congelé le : / N° de lot : 11NL5930316Ingevroren op: / Lotnr.: / Ten minste houdbaar tot:AVA 07/10: TT NL màj, comme demandé par le CPP: remplacé 'Ten minste houdbaar tot: / Ingevroren op: / Lotnr.: ' par 'Ingevroren op: / Lotnr.: / Ten minste houdbaar tot:' (TT FR pas màj) TRADNL 01ES5918508Consumir preferentemente antes del: / Fecha de congelación: / Nº de lote:

06/10/20_NSF_FD
Remplacé "Consumir preferentemente antes del: / Nº de lote:" par "Consumir preferentemente antes del: / Fecha de congelación: / Nº de lote:" selon TT FR
TRADES 01
IT5925207Da consumarsi preferibilmente entro il : / Prodotto congelato il : / N° di lotto:TRADIT 01PL5923566Najlepiej spożyć przed końcem:/ Produkt zamrożony dnia:/ Nr partii: TRADPL 01RO5923261A se consuma de preferință înainte de : / Congelat la : / Nr. lot:F27 NSF RO 20/10/2020 - MAJ TT
- Remplacé Produs congelat la : par Congelat la:
Mettre à jour aussi le PDF.
TRADRO 01
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
15811cheeseburger x6 surg SimplALISTD17049
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/17049_3245414671133_valNut.xml b/t/inputs/import_convert_carrefour_france/17049_3245414671133_valNut.xml new file mode 100644 index 0000000000000..fdbcfb4afd123 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/17049_3245414671133_valNut.xml @@ -0,0 +1 @@ +gGR100,00grammeVALENERLABELFRVALENERLABELNLVALENERLABELESVALENERLABELITVALENERLABELPLVALENERLABELROgGR0,00grammeVALENERLABELFRPORTIONFRPORTIONSOITFRVALENERLABELNLPORTIONNLPORTIONSOITNLVALENERLABELESPORTIONESPORTIONSOITESVALENERLABELITPORTIONITPORTIONSOITITVALENERLABELPLPORTIONPLPORTIONSOITPLVALENERLABELROPORTIONROPORTIONSOITRO˜ ARCOLFRARCOLNLARCOLESARCOLITARCOLPLARCOLROFR6075150NL6075150ES6075150IT6075150PL6075150RO6075150ENERKJ1EnergieENER Chef ProduitkJKJO100,00Kilojoule108013kJKJO0,00Kilojoule00FR6075151NL6075151ES6075151IT6075151PL6075151RO6075151ENERKC2EnergieENER Chef ProduitkcalE14100,00kilocalorie25813kcalE140,00kilocalorie00FR6075152NL6075152ES6075152IT6075152PL6075152RO6075152FAT3NutrimentsNUT Chef ProduitgGR100,00gramme1318FR6075153NL6075153ES6075153IT6075153PL6075153RO6075153FASAT4NutrimentsNUT Chef ProduitgGR100,00gramme5,226FR6075156NL6075156ES6075156IT6075156PL6075156RO6075156CHOAVL7NutrimentsNUT Chef ProduitgGR100,00gramme229FR6075157NL6075157ES6075157IT6075157PL6075157RO6075157SUGAR8NutrimentsNUT Chef ProduitgGR100,00gramme3,24FR6075160NL6075160ES6075160IT6075160PL6075160RO6075160FIBTG11NutrimentsNUT Chef ProduitgGR100,00gramme2,0FR6075161NL6075161ES6075161IT6075161PL6075161RO6075161PRO12NutrimentsNUT Chef ProduitgGR100,00gramme1225FR6075163NL6075163ES6075163IT6075163PL6075163RO6075163SALTEQ14NutrimentsNUT Chef ProduitgGR100,00gramme1,322FR526075PHRASETOPFR526076FR526077PHRASEBOTTOM10887cheeseburger x6 surg SimplTABNUTSTD 17049 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/17290_8431876180701_text.xml b/t/inputs/import_convert_carrefour_france/17290_8431876180701_text.xml new file mode 100644 index 0000000000000..16053c73fee8a --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/17290_8431876180701_text.xml @@ -0,0 +1 @@ +FR8361063Copa con Nata y Cacao 10ES7999754Copa con Nata y Cacao 01AL_DENOCOM0101FACINGSECTION FACINGFR8361064Saveur chocolat 10ES7999755Sabor chocolateTRADES 01AL_BENEF_CONS0202FACINGSECTION FACINGFR8361065Picto X4 yaourt 10ES7999756Picto X4 yaourt 01AL_TXT_LIB_FACE0303FACINGSECTION FACINGFR8361066
10
ES7999757
01
AL_SPE_BIO0404FACINGSECTION FACING
FR8361067
10
ES7999758
01
AL_ALCO_VOL0505FACINGSECTION FACING
FR8361068
10
ES7999759
01
AL_PRESENTATION0606FACINGSECTION FACING
FR8361069Dessert lacté à la crème et au cacao. Saveur chocolat. 10ES7999760Postre lácteo con nata y cacao. Sabor chocolate.29/03/21_NSF_FD
Comme déjà demandé, remplacer "Postre lácteo con nata y al cacao" par "Postre lácteo con nata y cacao"

05/02/21_NSF_FD
Remplacé "Postre lácteo con nata y al cacao" par "Postre lácteo con nata y cacao"
TRADES 01
AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITION
FR8361070Lait écrémé 64,1%, crème pasteurisée 20,5%, sucre, lactose, amidon modifié de maïs, cacao en poudre 0,7%, épaississants: carraghénanes et gomme guar; gélatine bovine, protéines de lait, cacao maigre en poudre 0,1%, émulsifiants: esters lactiques des mono- et diglycérides d'acides gras, arôme, arôme naturel de vanille, lactose et minéraux du lait.
Peut contenir des traces de soja.
10
ES7999761Leche desnatada 64,1%, nata pasteurizada 20,5%, azúcar, lactosa, almidón modificado de maíz, cacao en polvo 0,7%, espesantes: carragenanos y goma guar, gelatina de vacuno, proteínas de la leche, cacao magro en polvo 0,1%, emulgentes: ésteres lácticos de monoglicéridos y diglicéridos de ácidos grasos, aroma, aroma natural de vainilla, lactosa y minerales de la leche.
Puede contener trazas de soja.




TRADES 01
AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITION
FR8361071
10
ES7999762
01
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR8361072Nutriscore C 00ES7999763Nutriscore C 01AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITIONFR8361073
10
ES7999764
01
AL_PREPA1111UTILISATIONSECTION UTILISATION
FR8361074À conserver entre +1°C et +8°C.
À consommer jusqu'au : voir la date figurant sur le dessus de l'emballage.
10
ES7999765Conservar entre +1°C y +8°C.
Fecha de caducidad: ver la fecha indicada en la parte superior del envase.
01
AL_CONSERV1212UTILISATIONSECTION UTILISATION
FR8361075
10
ES7999766
01
AL_PRECAUTION1313UTILISATIONSECTION UTILISATION
FR8361076
10
ES7999767
01
AL_IDEE_RECET1414UTILISATIONSECTION UTILISATION
FR8361077ecoemballage 10ES7999768ecoemballage 01AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGEFR8361078
10
ES7999769
00
AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCE
FR8361079
10
ES7999770
00
AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCE
FR8361080
10
ES7999771
00
AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCE
FR8361081460g
2 x (2 x 115g) e
10
ES7999772460g
2 x (2 x 115g) e
01
AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCE
FR8361082
10
ES7999773
01
AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETE
FR8361083Interdis - TSA 91431 - 91343 MASSY Cedex - France 10ES7999774Interdis - TSA 91431 - 91343 MASSY Cedex - France 01AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR8361084
10
ES7999775
01
AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR8361085FR 62.853.030 CE 10ES7999776FR 62.853.030 CE 01AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR83610868431876180701 00ES79997778431876180701 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR8361087
10
ES7999778
01
AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETIN
FR8361088Ces 4 pots ne peuvent être vendus séparément. 10ES7999779Estos 4 envases no pueden venderse por separado. 01AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMENFR8361089A conserver entre 1°C et +8°C
A consommer jusqu'au :
10
ES7999780Conservar entre +1°C y +8°C.
Fecha de caducidad:
01
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
17711copa sabor chocolate y nataALISTD17290
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/17290_8431876180701_valNut.xml b/t/inputs/import_convert_carrefour_france/17290_8431876180701_valNut.xml new file mode 100644 index 0000000000000..d91b2357be37a --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/17290_8431876180701_valNut.xml @@ -0,0 +1 @@ +gGR100,00grammeVALENERLABELESgGR0,00grammeVALENERLABELESPORTIONESPORTIONSOITES ARCOLESES7998980ENERKJ1EnergieENER Chef ProduitkJKJO100,00Kilojoule5877kJKJO0,00Kilojoule00ES7998981ENERKC2EnergieENER Chef ProduitkcalE14100,00kilocalorie1407kcalE140,00kilocalorie00ES7998982FAT3NutrimentsNUT Chef ProduitgGR100,00gramme6,59ES7998983FASAT4NutrimentsNUT Chef ProduitgGR100,00gramme4,221ES7998986CHOAVL7NutrimentsNUT Chef ProduitgGR100,00gramme177ES7998987SUGAR8NutrimentsNUT Chef ProduitgGR100,00gramme1517ES7998990FIBTG11NutrimentsNUT gGR100,00gramme< 0,50ES7998991PRO12NutrimentsNUT gGR100,00gramme3,06ES7998993SALTEQ14NutrimentsNUT gGR100,00gramme0,132FR676992PHRASETOPFR676993FR676994PHRASEBOTTOM12579copa sabor chocolate y nataTABNUTSTD 17290 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/17984_3560071198954_text.xml b/t/inputs/import_convert_carrefour_france/17984_3560071198954_text.xml new file mode 100644 index 0000000000000..e130319ca1ba9 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/17984_3560071198954_text.xml @@ -0,0 +1 @@ +FR8433397Liquide Vaisselle 10ES9135732LavavajillasTRADES 01IT9135756Detersivo per stoviglieTRADIT 01DD_DENOCOM0101FACINGSECTION FACINGFR84333980% perfume / colorants
100% actives of vegetal origin
Sensitive Skin / Tolerance tested*
Ecolabel



JLT 01/09 TT
LOGO Ecolabel + bandeau "EU Ecolabel : BE/019/002" (cf archive 8643)
10
ES91357330% perfume / colorantes
100% vegetal origin actives
Sensitive Skin / Tolerance tested*
Ecolabel






19/05/21-NSF MR
Supprimé "50% recycled plastic" selon TT FR

27/04/21_NSF_FD
Remplacé "Pieles sensibles / Tolerance tested*" par "Sensitive Skin / Tolerance tested*"
TRADES 01
IT91357570% profumo / coloranti
100% vegetal origin actives
Pelli sensibili / Tolerance tested*
Ecolabel

FRN (20/05) F02: 1) IT TT màj selon FR TT. Merci de màj le PDF. La phrase "50% recycled plastic" a été supprimée. 2) Il n'y a pas la IT TT sur le PDF.TRADIT 01
DD_BENEF_CONS0202FACINGSECTION FACING
FR8433399500mL[ZEMETRO]

5187461
10
ES9135734500mL

5187461

27/04/21_NSF_FD
Ajouté "5187461" selon modifs TT FR et commentaires Coord
TRADES 01
IT9135758500mL

5187461
FRN (26/04) F03: IT TT màj selon FR TT. Merci de màj le PDF.TRADIT 01
DD_TXT_LIB_FACE0303FACINGSECTION FACING
FR8433400
00
ES9135735
01
IT9135759
01
DD_PARF_SYNT0404FACINGSECTION FACING
FR8433401Liquide vaisselle ECOplanet sans parfum 10ES9135736Lavavajillas ECOplanet sin perfume TRADES 01IT9135760Detersivo per stoviglie ECOplanet senza profumoTRADIT 01DD_DENOLEGAL0505DENOMINATIONSECTION DENOMINATIONFR8433402Liquide vaisselle aux actifs d'origine végétale, sans parfum et sans colorant, idéal pour les peaux sensibles.
"*Tolérance testée sous contrôle dermatologique"
JLT 01/09 TT
Si pas de place pour texte marketing, écrire "*Tolérance testée sous contrôle dermatologique" à la suite du champ F05
10
ES9135737Lavavajillas con activos de origen vegetal, sin perfume y sin colorante, ideal para pieles sensibles.
"*Tolerancia testada bajo control dermatológico"
TRADES 01
IT9135761Detersivo per stoviglie con ingredienti attivi di origine vegetale, senza profumo e senza coloranti, ideale per le pelli sensibili.
"*Tollerabilità testata sotto controllo dermatologico"
TRADIT 01
DD_INFOPROD0606AUT_MENT_MARKTSECTION AUTRES MENTIONS MARKETIN
FR84334035187462 10ES9135738518746227/04/21_NSF_FD
Remplacé "Recto = 5180964
Verso = 5180965" par "5187462" selon commentaires Coord
TRADES 01
IT91357625187462FRN (26/04) F07: IT TT màj selon FR TT. Merci de màj le PDF.TRADIT 01
DD_TXT_LIB_DOS0707AUT_MENT_MARKTSECTION AUTRES MENTIONS MARKETIN
FR8433404Contient entre autres composants : 5% ou plus mais moins de 15%:agents de surface anioniques, moins de 5%:agents de surface amphotères, agents de surface non ioniques Également:conservateur (lactic acid) 10ES9135739Contiene entre otros componentes: igual o superior al 5% pero inferior al 15%: tensioactivos aniónicos inferior al 5%: tensioactivos anfotéricos, tensioactivos no iónicos También: agente conservante (lactic acid)

27/04/21_NSF_FD
Rajouter une virgule après "aniónicos et anionici" selon commentaires Coord
TRADES 01
IT9135763Contiene tra altri componenti: uguale o superiore al 5% ma inferiore al 15%:tensioattivi anionici inferiore al 5%:tensioattivi anfoteri, tensioattivi non ionici Anche:conservante (lactic acid)FRN (26/04) F08:
1/Merci de ajouter une virgul entre "anionici" et "inferiore". "...tensioattivi anionici, inferiore al 5%...".
2/ merci de remplacer ", tensioattivi non onici" par "tensioattivi non ionici" sur le PDF
TRADIT 01
DD_COMPO0808COMPOSITIONSECTION COMPOSITION
FR8433405INGREDIENTS: www.info-detergent.com 00ES9135740INGREDIENTS: www.info-detergent.com 01IT9135764INGREDIENTS: www.info-detergent.com 01DD_INFODETERG0909COMPOSITIONSECTION COMPOSITIONFR8433406Immergez la vaisselle dans l'eau tiède au lieu de la laver au jet du robinet, et respectez les doses recommandées. Un lavage efficace ne nécessite pas une quantité de mousse importante. Laver et rincer à l’eau potable.Dosage recommandé pour 5L d’eau :Vaisselle peu sale : 2,5 ml (1/2 cuillère à café)Vaisselle sale : 5 ml (1 cuillère à café) 10ES9135741Sumergir la vajilla en agua tibia en lugar de lavarla dejando correr el agua, y respetar las dosis recomendadas. No se necesita mucha espuma para lograr un resultado óptimo. Lavar y aclarar con agua potable. Dosis recomendada para 5L de agua: Vajilla poco sucia: 2,5 ml (1/2 cucharilla). Vajilla sucia: 5 ml (1 cucharilla).



19/05/21-NSF MR
Remplacé "cucharadita de café" par "cucharilla"
SUR LE PDF: Remplacer "Consejos de uso" par "Modo de empleo"
TRADES 01
IT9135765Si consiglia di non utilizzare acqua corrente ma di immergere le stoviglie nell'acqua tiepida e di utilizzare il prodotto secondo la dose raccomandata. Per un lavaggio ottimale delle stoviglie non occorre una quantità eccessiva di schiuma. Lavare e risciacquare con acqua potabile. Dosaggio raccomandato per 5L d'acqua: Stoviglie poco sporche: 2,5 ml(1/2cucchiaino).
Stoviglie sporche:5ml (1cucchiaino).
TRADIT 01
DD_CONS_UTILI1010UTILISATIONSECTION UTILISATION
FR8433407
10
ES9135742
01
IT9135766
01
DD_CONS_CONSERV1111CONSERVATIONSECTION CONSERVATION
FR8433408ATTENTION Provoque une sévère irritation des yeux. Tenir hors de portée des enfants. EN CAS DE CONTACT AVEC LES YEUX : Rincer avec précaution à l’eau pendant plusieurs minutes. Enlever les lentilles de contact si la victime en porte et si elles peuvent être facilement enlevées. Continuer à rincer. Si l’irritation oculaire persiste : consulter un médecin. En cas de consultation d’un médecin, garder à disposition le récipient ou l’étiquette. Centre antipoison Paris : 01.40.05.48.48. / Belgique : 070/245 245. 10ES9135743ATENCIÓN Provoca irritación ocular grave. Mantener fuera del alcance de los niños. EN CASO DE CONTACTO CON LOS OJOS: Enjuagar con agua cuidadosamente durante varios minutos. Quitar las lentes de contacto cuando estén presentes y pueda hacerse con facilidad. Proseguir con el lavado. Si persiste la irritación ocular: Consultar a un médico. Si se necesita consejo médico, tener a mano el envase o la etiqueta. No ingerir. En caso de accidente, consultar al Servicio Médico de Información Toxicológica, teléfono 91 562 04 20.

TRADES 01
IT9135767ATTENZIONE Provoca grave irritazione oculare. Tenere fuori dalla portata dei bambini. IN CASO DI CONTATTO CON GLI OCCHI: sciacquare accuratamente per parecchi minuti. Togliere le eventuali lenti a contatto se è agevole farlo. Continuare a sciacquare. Se l’irritazione degli occhi persiste, consultare un medico. In caso di consultazione di un medico, tenere a disposizione il contenitore o l’etichetta del prodotto. NULL 01
DD_PRECAUTION1212PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOI
FR8433409[DSGH07] 00ES9135744 01IT9135768 01DD_PICTO_DANG1313PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOIFR8433410
00
ES9135745
01
IT9135769
01
DD_PICTO_DIV1414PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOI
FR8433411
00
ES9135746
01
IT9135770
01
DD_PICTO_AISE1515PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOI
FR8433412[ZPOINTVERT] 00ES9135747 01IT9135771 01DD_LOGO_RECY1616EMBALLAGESECTION EMBALLAGEFR8433413
00
ES9135748
01
IT9135772
01
DD_LOGO_DIV1717EMBALLAGESECTION EMBALLAGE
FR8433414500mL[ZEMETRO] 10ES9135749500mL

TRADES 01
IT9135773500mL 01
DD_POIDS_VOL1818POIDS_CONTENANCESECTION CONTENANCE
FR8433415
10
ES9135750
01
IT9135774
01
DD_INFO_EMB1919POUR_LA_PLANETESECTION POUR LA PLANETE
FR8433416Interdis - TSA 91431 - 91343 MASSY Cedex - France 00ES9135751Interdis - TSA 91431 - 91343 MASSY Cedex - France 01IT9135775Interdis - TSA 91431 - 91343 MASSY Cedex - France 01DD_PAVE_SC2020AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR8433417NIF:A58060179

UFI: 5UT1-F6UY-5N0Q-44JW
00
ES9135752NIF:A58060179

UFI: 5UT1-F6UY-5N0Q-44JW

27/04/21_NSF_FD
Ajouté le code "UFI:UFI: 5UT1-F6UY-5N0Q-44JW" selon commentaires Coord
TRADES 01
IT9135776NIF:A58060179

UFI: 5UT1-F6UY-5N0Q-44JW
FRN (26/04) F21: IT TT màj selon FR TT. Merci de màj le PDF.TRADIT 01
DD_CODE_EMB2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR8433418Fabriqué en Belgique par NIF: A58060179 pour Interdis 10ES9135753Fabricado en Bélgica por NIF: A58060179 para Interdis

TRADES 01
IT9135777Prodotto in Belgio da NIF: A58060179 per Interdis. 01
DD_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR84334193560071199333 00ES91357543560071199333 01IT91357783560071199333 01DD_CODE_EAN2323CODE_EANSECTION CODE EANFR8433420
00
ES9135755
01
IT9135779
01
DD_MARQ_CE2424AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
17489LIQUIDE VAISSELLE ECOPLANET SANS PARFUM SUD 500MLDPHDET17984
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/17984_3560071198954_valNut.xml b/t/inputs/import_convert_carrefour_france/17984_3560071198954_valNut.xml new file mode 100644 index 0000000000000..8a3f33d09f2f5 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/17984_3560071198954_valNut.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/1913_3270190174387_text.xml b/t/inputs/import_convert_carrefour_france/1913_3270190174387_text.xml new file mode 100644 index 0000000000000..7ac26aa5a4415 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/1913_3270190174387_text.xml @@ -0,0 +1 @@ +FR691364CLASSIC 11NL693849CLASSIC 01ES693802CLASSIC 01IT693825CLASSIC 01DH_DENOCOM0101FACINGSECTION FACINGFR691365 11NL693861TRADNL 01ES693796TRADES 01IT693838TRADIT 01DH_BENEF_CONS0202FACINGSECTION FACINGFR691366X160 11NL693863TRADNL 01ES693809X160 01IT693829X160 01DH_TXT_LIB_FACE0303FACINGSECTION FACINGFR691367 01NL693859 01ES693807 01IT693832 01DH_PARF_SYNT0404FACINGSECTION FACINGFR691368 01NL693847 01ES693811 01IT693823 01DH_ILLUSTRATION0505FACINGSECTION FACINGFR691369Bâtonnets ouatés 11NL693842WattenstaafjesTRADNL 01ES693813Bastoncillos de algodónTRADES 01IT693821Bastoncini cotonatiTRADIT 01DH_DENOLEGAL0606DENOMINATIONSECTION DENOMINATIONFR691370 11NL693855 01ES693815 01IT693827 01DH_INFOPROD0707AUT_MENT_MARKTSECTION AUTRES MENTIONS MARKETINFR691371 11NL693844 01ES693800 01IT693840 01DH_TXT_LIB_DOS0808AUT_MENT_MARKTSECTION AUTRES MENTIONS MARKETINFR691372Embouts 100% coton. Tiges en polypropylène.CB le 17/07/2017: Réduire la police du texte "Embouts 100% coton. Tiges en polypropylène." à la même typologie que celle utilisée dans les précautions d'emploi. La taille de la déno légale de vente ne doit pas être diminuée. 11NL693853Embouts 100% coton. Tiges en polypropylène.TRADNL 01ES693817Embouts 100% coton. Tiges en polypropylène.TRADES 01IT693836Embouts 100% coton. Tiges en polypropylène.TRADIT 01DH_COMPO0909COMPOSITIONSECTION COMPOSITIONFR691373 11NL693851 01ES693804 01IT693819 01DH_CONS_UTILI1010UTILISATIONSECTION UTILISATIONFR691374 11NL693857 01ES693798 01IT693834 01DH_CONS_CONSERV1111CONSERVATIONSECTION CONSERVATIONFR691375Ne pas introduire dans le conduit auditif ou nasal. Ne pas laisser à la portée des enfants. Ne pas jeter dans les toilettes.CB le 17/07/2017 :Supprimer "précautions d'emploi" dans les 4 langues.
Ceci permettra d'ajouter la phrase "Ne pas jeter dans les toilettes. / Niet in het toilet gooien. / No tirar al inodoro. / Non gettare nel WC." dans les 4 langues.
01
NL693846Niet in de gehoorgang of neusgang brengen. Buiten het bereik van kinderen houden. Niet in het toilet gooien.TRADNL 01ES693806No introducir en el conducto auditivo o nasal. Mantener fuera del alcance de los niños. No tirar al WC.TRADES 01IT693831Non introdurre nel condotto uditivo o nelle cavità nasali. Non lasciare alla portata dei bambini. Non gettare nel WC.OK "Non gettare nel WC:"TRADIT 01
DH_PRECAUTION1212PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOI
FR691376. 11NL693850TRADNL 01ES693803TRADES 01IT693826TRADIT 01DH_PREC1313PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOIFR691377[ZNOWC2]CB le 17/07/2017
Supprimer le Tydiman (celui qui jette dans la poubelle et le remplacer par le logo "ne pas jeter dans les toilettes)
01
NL693862 01ES693797 01IT693839 01
DH_PICTO_DIV1414PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOI
FR691378[ZRECYCLE1] [ZPOINTVERT] 01NL693864 01ES693810 01IT693830 01DH_LOGO_RECY1515EMBALLAGESECTION EMBALLAGEFR691379 01NL693860 01ES693808 01IT693833 01DH_LOGO_DIV1616EMBALLAGESECTION EMBALLAGEFR691380 11NL693848 01ES693812 01IT693824 01DH_POIDS_VOL1717POIDS_CONTENANCESECTION CONTENANCEFR691381 11NL693843 01ES693814 01IT693822 01DH_INFO_EMB1818POUR_LA_PLANETESECTION POUR LA PLANETEFR691382Interdis - TSA 91431 - 91343 MASSY Cedex - FranceCB le 17/07/2017 : Réduire la police du texte du pavé consommateur à la même typologie que celle utilisée dans les précautions d'emploi. 01NL693856Interdis - TSA 91431 - 91343 MASSY Cedex - France 01ES693816Interdis - TSA 91431 - 91343 MASSY Cedex - France 01IT693828Interdis - TSA 91431 - 91343 MASSY Cedex - France 01DH_PAVE_SC1919AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR69138361070D 01NL69384561070D 01ES69380161070D 01IT69384161070D 01DH_CODE_EMB2020AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR691384Fabriqué en UE pour Interdis 11NL693854Geproduceerd in UE voor InterdisTRADNL 01ES693818Fabricado en UE para Interdis 01IT693837Prodotto in UE per Interdis 01DH_ADRESSFRN2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR6913853270190174387 01NL6938523270190174387 01ES6938053270190174387 01IT6938203270190174387 01DH_CODE_EAN2222CODE_EANSECTION CODE EANFR691386 01NL693858 01ES693799 01IT693835 01DH_MARQ_CE2323AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
760BATONNET BOITE 160 CRF LEMOINEDPHHYG1913
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/1913_3270190174387_valNut.xml b/t/inputs/import_convert_carrefour_france/1913_3270190174387_valNut.xml new file mode 100644 index 0000000000000..e1de50b64c337 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/1913_3270190174387_valNut.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/19683_3560071228491_text.xml b/t/inputs/import_convert_carrefour_france/19683_3560071228491_text.xml new file mode 100644 index 0000000000000..0923f77941a04 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/19683_3560071228491_text.xml @@ -0,0 +1 @@ +FR8587227Liquide Vaisselle
Bali
11
NL9141984Afwasmiddel
Bali
TRADNL 01
ALL9142008Geschirrspülmittel
Bali
TRADALL 01
DD_DENOCOM0101FACINGSECTION FACING
FR8587228Exotique*
Dégraissant
11
NL9141985Exotisch
Ontvettend
23/06 KVA
TT màj, supprimé l'astérisque après "Exotisch"
TRADNL 01
ALL9142009Exotisch*
Entfettet
TRADALL 01
DD_BENEF_CONS0202FACINGSECTION FACING
FR8587229
11
NL9141986
01
ALL9142010
01
DD_TXT_LIB_FACE0303FACINGSECTION FACING
FR8587230Parfum de synthèse 01NL9141987Synthetische geur 01ALL9142011Synthetischer Duftstoff 01DD_PARF_SYNT0404FACINGSECTION FACINGFR8587231Liquide Vaisselle Bali 11NL9141988Afwasmiddel BaliTRADNL 01ALL9142012Geschirrspülmittel BaliTRADALL 01DD_DENOLEGAL0505DENOMINATIONSECTION DENOMINATIONFR8587232
11
NL9141989
01
ALL9142013
01
DD_INFOPROD0606AUT_MENT_MARKTSECTION AUTRES MENTIONS MARKETIN
FR8587233code sleeve: 5188932
UFI: X3K9-A6XN-8N0Y-V7QX

11
NL9141990code sleeve: 5188932
UFI: X3K9-A6XN-8N0Y-V7QX
23/06 KVA
TT màj à la demande de CPP, modifié codes
TRADNL 01
ALL9142014code sleeve: 5188932
UFI: X3K9-A6XN-8N0Y-V7QX
24/06 CMÖ: TT DE adapté selon TT FRTRADALL 01
DD_TXT_LIB_DOS0707AUT_MENT_MARKTSECTION AUTRES MENTIONS MARKETIN
FR8587234Contient entre autres composants : 5% ou plus mais moins de 15%:agents de surface anioniques moins de 5%:agents de surface amphotères, agents de surface non ioniques Également:conservateur (lactic acid), parfums 11NL9141991Bevat onder andere componenten: 5% of meer, maar minder dan 15%:anionogene oppervlakteactieve stoffen minder dan 5%:amfotere oppervlakteactieve stoffen, niet-ionogene oppervlakteactieve stoffen Ook:conserveermiddel (lactic acid), parfums23/06 KVA
Sur le pdf: merci de remplacer "minder an" par "minder dan"
TRADNL 01
ALL9142015Enthält neben anderen Inhaltsstoffen: 5% und darüber, jedoch weniger als 15%:anionische Tenside unter 5%:amphotere Tenside, nichtionische Tenside Ebenfalls:Konservierungsmittel (Lactic acid), Duftstoffe 01
DD_COMPO0808COMPOSITIONSECTION COMPOSITION
FR8587235INGREDIENTS:www.info-detergent.com 01NL9141992INGREDIENTS:www.info-detergent.com 01ALL9142016INGREDIENTS:www.info-detergent.com 01DD_INFODETERG0909COMPOSITIONSECTION COMPOSITIONFR85872361 à 2 pressions suffisent pour une vaisselle normalement sale.
Laver et rincer à l’eau potable.
11
NL91419931 à 2 keer drukken is voldoende voor een normaal bevuilde vaat.
Afwassen en spoelen met drinkwater.
01
ALL91420171 bis 2 Sprühstöße reichen aus für normal verschmutztes Geschirr.
Mit Leitungswasser waschen und abspülen.
TRADALL 01
DD_CONS_UTILI1010UTILISATIONSECTION UTILISATION
FR8587237
11
NL9141994
01
ALL9142018
01
DD_CONS_CONSERV1111CONSERVATIONSECTION CONSERVATION
FR8587238DANGER. Contient SODIUM LAURETH SULFATE, COCAMIDOPROPYLAMINE OXIDE, COCAMIDOPROPYL BETAINE. Provoque de graves lésions des yeux. Tenir hors de portée des enfants. Porter un équipement de protection des yeux. Appeler immédiatement un CENTRE ANTIPOISON ou un médecin. En cas de consultation d’un médecin, garder à disposition le récipient ou l’étiquette.EN CAS DE CONTACT AVEC LES YEUX : Rincer avec précaution à l’eau pendant plusieurs minutes. Enlever les lentilles de contact si la victime en porte et si elles peuvent être facilement enlevées. Continuer à rincer. Centre antipoison Paris : 01.40.05.48.48. / Belgique : 070/245 245. 11NL9141995GEVAAR. Bevat SODIUM LAURETH SULFATE, COCAMIDOPROPYLAMINE OXIDE, COCAMIDOPROPYL BETAINE. Veroorzaakt ernstig oogletsel. Buiten het bereik van kinderen houden. Oogbescherming dragen. Onmiddellijk een ANTIGIFCENTRUM of een arts raadplegen. Bij het inwinnen van medisch advies, de verpakking of het etiket ter beschikking houden.BIJ CONTACT MET DE OGEN: voorzichtig afspoelen met water gedurende een aantal minuten; contactlenzen verwijderen, indien mogelijk; blijven spoelen. Antigifcentrum: 070/245 245.TRADNL 01ALL9142019GEFAHR. Enthält SODIUM LAURETH SULFATE, COCAMIDOPROPYLAMINE OXIDE, COCAMIDOPROPYL BETAINE. Verursacht schwere Augenschäden. Darf nicht in die Hände von Kindern gelangen. Augenschutz tragen. Sofort GIFTINFORMATIONSZENTRUM oder Arzt anrufen. Ist ärztlicher Rat erforderlich, Verpackung oder Kennzeichnungsetikett bereithalten.BEI KONTAKT MIT DEN AUGEN: Einige Minuten lang behutsam mit Wasser spülen. Eventuell vorhandene Kontaktlinsen nach Möglichkeit entfernen. Weiter spülen. Giftinformationszentrum: 070/245 245. 01DD_PRECAUTION1212PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOIFR8587239
[DSGH05]
01
NL9141996
01
ALL9142020
01
DD_PICTO_DANG1313PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOI
FR8587240
01
NL9141997
01
ALL9142021
01
DD_PICTO_DIV1414PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOI
FR8587241
[ZSECU5] [ZSECU1] [ZSECU2]
01
NL9141998
01
ALL9142022
01
DD_PICTO_AISE1515PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOI
FR8587242Triman + picto de tri 01NL9141999Triman + picto de tri 01ALL9142023Triman + picto de tri 01DD_LOGO_RECY1616EMBALLAGESECTION EMBALLAGEFR8587243
01
NL9142000
01
ALL9142024
01
DD_LOGO_DIV1717EMBALLAGESECTION EMBALLAGE
FR8587244750ml[ZEMETRO] 11NL9142001750ml 01ALL9142025750ml 01DD_POIDS_VOL1818POIDS_CONTENANCESECTION CONTENANCEFR8587245
11
NL9142002
01
ALL9142026
01
DD_INFO_EMB1919POUR_LA_PLANETESECTION POUR LA PLANETE
FR8587246Interdis - TSA 91431 - 91343 MASSY Cedex - France 01NL9142003Interdis - TSA 91431 - 91343 MASSY Cedex - France 01ALL9142027Interdis - TSA 91431 - 91343 MASSY Cedex - France 01DD_PAVE_SC2020AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR8587247EMB B 00432 01NL9142004EMB B 00432 01ALL9142028EMB B 00432 01DD_CODE_EMB2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR8587248Fabriqué en Belgique par EMB B-00432 pour Interdis 11NL9142005Geproduceerd in België door EMB B-00432 voor Interdis 01ALL9142029Hergestellt in Belgien von EMB B-00432 für InterdisTRADALL 01DD_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR85872493560071228491 01NL91420063560071228491 01ALL91420303560071228491 01DD_CODE_EAN2323CODE_EANSECTION CODE EANFR8587250
01
NL9142007
01
ALL9142031
01
DD_MARQ_CE2424AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
18796Liquide vaisselle BaliDPHDET19683
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/19683_3560071228491_valNut.xml b/t/inputs/import_convert_carrefour_france/19683_3560071228491_valNut.xml new file mode 100644 index 0000000000000..9c2485e27c13c --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/19683_3560071228491_valNut.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/20297_3270190020165_text.xml b/t/inputs/import_convert_carrefour_france/20297_3270190020165_text.xml new file mode 100644 index 0000000000000..57eeb6403ba72 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/20297_3270190020165_text.xml @@ -0,0 +1 @@ +FR8157573CAMEMBERT 11NL8448233CAMEMBERT

TRADNL 01
AL_DENOCOM0101FACINGSECTION FACING
FR8157574Onctueux 11NL8448234SmeuïgTRADNL 01AL_BENEF_CONS0202FACINGSECTION FACINGFR8157575Picto lait français 11NL8448235Picto Franse melkTRADNL 01AL_TXT_LIB_FACE0303FACINGSECTION FACINGFR8157576
11
NL8448236
01
AL_SPE_BIO0404FACINGSECTION FACING
FR8157577
11
NL8448237
01
AL_ALCO_VOL0505FACINGSECTION FACING
FR8157578
11
NL8448238
01
AL_PRESENTATION0606FACINGSECTION FACING
FR8157579Camembert - Fromage à pâte molle au lait pasteurisé de vache. 11NL8448239Camembert - Zachte kaas van gepasteuriseerde koemelk.TRADNL 01AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITIONFR8157580Lait pasteurisé de vache, sel, ferments lactiques et d'affinage (contiennent lait), coagulant microbien.
Lait origine France.
11
NL8448240Gepasteuriseerde koemelk, zout, melk- en rijpingsfermenten (bevatten melk), microbieel stremmiddel.
Melk oorsprong Frankrijk.
TRADNL 01
AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITION
FR8157581
11
NL8448241
01
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR8157582OUI Nutriscore D 01NL8448242
TRADNL 01
AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITION
FR8157583Vous aimez votre Camembert : Jeune, délicat avec une texture légèrement ferme à cœur : consommez-le au moins 25 jours avant la date indiquée sur la boîte. Moelleux avec un goût franc : consommez-le entre le 15ème et le 25ème jour avant la date indiquée sur la boîte. Affiné à cœur, avec une pâte souple et fondante et une saveur plus typée : consommez-le dans les 15 derniers jours précédant la date indiquée sur la boîte. Afin d'apprécier au mieux votre Camembert Carrefour, nous vous conseillons de le sortir du réfrigérateur dès le début du repas. 11NL8448243U houdt van uw Camembert: Jong, delicaat met een licht stevige textuur tot in de kern: consumeer minstens 25 dagen voor de datum vermeld op de doos. Zacht met een verfijnde smaak: consumeer tussen de 15de en 25ste dag voor de datum vermeld op de doos. Verfijnd tot in de kern, met een zachte en smeuïge textuur en een meer uitgesproken smaak: consumeer in de laatste 15 dagen voorafgaand de datum vermeld op de doos. Om ten volle van uw Camembert van Carrefour te kunnen genieten, raden wij u aan de kaas bij aanvang van de maaltijd uit de koelkast te halen.



TRADNL 01
AL_PREPA1111UTILISATIONSECTION UTILISATION
FR8157584À consommer de préférence avant le / N° de lot : voir la date indiquée sur le côté de la boîte. À conserver entre +4°C et +6°C. Votre Camembert Carrefour se conservera idéalement dans son papier d'emballage. 11NL8448244Ten minste houdbaar tot / Lotnr.: zie datum op zijkant doos. Te bewaren tussen +4°C en +6°C. Uw Camembert van Carrefour bewaart het best in het verpakkingspapier.TRADNL 01AL_CONSERV1212UTILISATIONSECTION UTILISATIONFR8157585
11
NL8448245
01
AL_PRECAUTION1313UTILISATIONSECTION UTILISATION
FR8157586
11
NL8448246
01
AL_IDEE_RECET1414UTILISATIONSECTION UTILISATION
FR8157587Triman 11NL8448247Triman

TRADNL 01
AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGE
FR8157588Poids net à l'emballage 250[GR] 10NL8448248
TRADNL 00
AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCE
FR8157589
10
NL8448249
00
AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCE
FR8157590
10
NL8448250
00
AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCE
FR8157591Poids net à l'emballage : 250 g e Produit soumis à dessiccation. 11NL8448251Nettogewicht bij verpakking: 250 g e Product onderhevig aan uitdroging.TRADNL 01AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCEFR8157592
11
NL8448252
01
AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETE
FR8157593Interdis - TSA 91431 - 91343 MASSY Cedex - France 11NL8448253Interdis - TSA 91431 - 91343 MASSY Cedex - France

TRADNL 01
AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR8157594
11
NL8448254
01
AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR8157595FR 50.168.001 CE 11NL8448255FR 50.168.001 CE

TRADNL 01
AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR81575963270190020165 01NL84482563270190020165 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR8157597
11
NL8448257
01
AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETIN
FR8157598
11
NL8448258
01
AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
FR8157599
11
NL8448259
01
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
21431Trame 1ALISTD20297
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/20297_3270190020165_valNut.xml b/t/inputs/import_convert_carrefour_france/20297_3270190020165_valNut.xml new file mode 100644 index 0000000000000..f174b581c1cf3 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/20297_3270190020165_valNut.xml @@ -0,0 +1 @@ +gGR100,00grammeVALENERLABELFRVALENERLABELNLgGRgrammeVALENERLABELFRPORTIONFRPORTIONSOITFRVALENERLABELNLPORTIONNLPORTIONSOITNL ARCOLFRARCOLNLFR8308038NL8308038ENERKJ1EnergieENER kJKJO100,00Kilojoule113414kJKJOKilojoule00FR8308039NL8308039ENERKC2EnergieENER kcalE14100,00kilocalorie27314kcalE14kilocalorie00FR8308040NL8308040FAT3NutrimentsNUT gGR100,00gramme2130FR8308041NL8308041FASAT4NutrimentsNUT gGR100,00gramme1574FR8308044NL8308044CHOAVL7NutrimentsNUT gGR100,00gramme1,0< 1FR8308049NL8308049PRO12NutrimentsNUT gGR100,00gramme2040FR8308051NL8308051SALTEQ14NutrimentsNUT Chef ProduitgGR100,00gramme1,423FR506874FR506874FR506874NL506874NL506874NL506874QTENEG1506874FR701772PHRASETOPFR701773FR701774PHRASEBOTTOM14894Tableau de ValNut 1TABNUTSTDVITMIN 20297 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/20300_3270190020165_text.xml b/t/inputs/import_convert_carrefour_france/20300_3270190020165_text.xml new file mode 100644 index 0000000000000..ab26997bc7d2d --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/20300_3270190020165_text.xml @@ -0,0 +1 @@ +FR8708428CAMEMBERT 10ES8690713CAMEMBERT 01IT8677246CAMEMBERT 01AL_DENOCOM0101FACINGSECTION FACINGFR8708429Onctueux 10ES8690714UntuosoTRADES 01IT8677247Cremoso
TRADIT 01
AL_BENEF_CONS0202FACINGSECTION FACING
FR8708430Picto lait français 10ES8690715Picto lait français 20/08/21-NSF PP
Si besoin, la traduction de "lait français" est "leche francesa"
TRADES 01
IT8677248Picto lait français VDS 6/10: il n'y a pas la mention sur le PDF.TRADIT 01
AL_TXT_LIB_FACE0303FACINGSECTION FACING
FR8708431
10
ES8690716
01
IT8677249
01
AL_SPE_BIO0404FACINGSECTION FACING
FR8708432
10
ES8690717
01
IT8677250
01
AL_ALCO_VOL0505FACINGSECTION FACING
FR8708433
10
ES8690718
01
IT8677251
01
AL_PRESENTATION0606FACINGSECTION FACING
FR8708434Camembert. Fromage à pâte molle au lait pasteurisé de vache. 10ES8690719Camembert. Queso de pasta blanda elaborado con leche pasteurizada de vaca.


23/09/21-NSF PP
Cette mention n'est pas sur les PDFs.
TRADES 01
IT8677252Camembert. Formaggio a pasta molle di latte vaccino pastorizzato.VDS 22/09: la mention n'est pas sur les PDFs.TRADIT 01
AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITION
FR8708435Lait de vache pasteurisé, sel, ferments lactiques et d'affinage, présule animale ou coagulant microbien. Lait origine France. 10ES8690720Leche de vaca pasteurizada, sal, fermentos lácticos y de maduración, cuajo animal o coagulante de leche microbiano. Origen de la leche: Francia.23/09/21-NSF PP
Cette mention n'est pas sur les PDFs.
TRADES 01
IT8677253Latte vaccino pastorizzato, sale, fermenti lattici e di affinamento, caglio animale o caglio microbico. Origine del latte FranciaVDS 22/09: la mention n'est pas sur les PDFs.
FN 14/07: Selon l'Annexe VII.7 du Reg. UE 1169/2011, "Ingrédients similaires et substituables entre eux, susceptibles d’être utilisés dans la fabrication ou la préparationd’une denrée alimentaire sans en altérer la composition,la nature ou la valeur perçue, et pour autant qu’ils interviennent pour moins de 2 % dans le produit fini, peuvent être désignés dans la liste des ingrédientsà l'aide de l'affirmation «contient … et/ou …», dans lecas où l'un au moins, parmi deux ingrédients au plus, est présent dans le produit fini." Merci de confirmer que c'est le cas.
TRADIT 01
AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITION
FR8708436
10
ES8690721
01
IT8677254
01
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR8708437OUI Nutriscore D 00ES8690722/TRADES 01IT8677255OUITRADIT 01AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITIONFR8708438
10
ES8690723
01
IT8677256
01
AL_PREPA1111UTILISATIONSECTION UTILISATION
FR8708439À consommer de préférence avant le :voir la date sur le côté de l'emballage. À conserver entre +4°C et +8°C
Votre Camembert Carrefour se conservera idéalement dans son papier d'emballage.
10
ES8690724Consumir preferentemente antes del: ver la fecha en el lateral del envase. Conservar entre +4ºC y +8ºC.
El Camembert Carrefour se conservará idealmente en su envoltorio.







23/09/21-NSF PP
Cette mention n'est pas sur les PDFs.
TRADES 01
IT8677257Da consumarsi preferibilmente entro il: vedere la data sul lato della confezione. Conservare tra +4°C e +8°C.
Il tuo Camembert Carrefour si conserverà perfettamente nella sua carta da imballaggio.
VDS 22/09: la mention n'est pas sur les PDFs.TRADIT 01
AL_CONSERV1212UTILISATIONSECTION UTILISATION
FR8708440
10
ES8690725
01
IT8677258
01
AL_PRECAUTION1313UTILISATIONSECTION UTILISATION
FR8708441
10
ES8690726
01
IT8677259
01
AL_IDEE_RECET1414UTILISATIONSECTION UTILISATION
FR8708442Ecoemballage 10ES8690727EcoemballageTRADES 01IT8677260Ecoemballage TrimanVDS 22/09: la mention n'est pas sur les PDFs.TRADIT 01AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGEFR8708443
10
ES8690728
00
IT8677261
00
AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCE
FR8708444
10
ES8690729
00
IT8677262
00
AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCE
FR8708445
10
ES8690730
00
IT8677263
00
AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCE
FR8708446Poids net à l'emballage : 250g e Produit soumis à dessiccation. 10ES8690731Peso neto del envase: 250g e Producto sujeto a desecación.23/09/21-NSF PP
Cette mention n'est pas sur les PDFs.
TRADES 01
IT8677264Peso netto all'imballaggio: 250g e Prodotto soggetto a calo di peso.FN 22/10: Pour la traduction de ce champ voir e-mail du 22/10 s'il vous plaît (sujet : 20300 - CAMEMBERT).

VDS 22/09: la mention n'est pas sur les PDFs.
TRADIT 01
AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCE
FR8708447
10
ES8690732
01
IT8677265
01
AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETE
FR8708448Interdis - TSA 91431 - 91343 MASSY Cedex - France 10ES8690733Interdis - TSA 91431 - 91343 MASSY Cedex - France23/09/21-NSF PP
Cette mention n'est pas sur les PDFs.
TRADES 01
IT8677266Interdis - TSA 91431 - 91343 MASSY Cedex - FranceVDS 22/09: la mention n'est pas sur les PDFs.TRADIT 01
AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR8708449
10
ES8690734
01
IT8677267
01
AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR8708450A FR 61.145.001 CE
C FR 50.453.001 CE
La lettre située à côté de la DLUO indique le lieu de conditionnement sur le fond de boîte
10
ES8690735A FR 61.145.001 CE
C FR 50.453.001 CE
La letra situada al lado del DLUO indica el lugar de envasado en el fondo del envase.



23/09/21-NSF PP
Cette mention n'est pas sur les PDFs.
TRADES 01
IT8677268A FR 61.145.001 CE
C FR 50.453.001 CE
La lettera accanto al termine minimo di conservazione indica il luogo di confezionamento sul fondo della confezione.
VDS 22/09: la mention n'est pas sur les PDFs.
FN 14/07: Nous suggerons de placer "sur le fond de boîte" aprés "de la DLUO".
TRADIT 01
AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR87084513560071113599 00ES86907363560071113599 01IT86772693560071113599VDS 22/09: la mention n'est pas sur les PDFs.TRADIT 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR8708452
10
ES8690737
01
IT8677270
01
AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETIN
FR8708453
10
ES8690738
01
IT8677271
01
AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
FR8708454
10
ES8690739
01
IT8677272
01
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
21812Trame 1ALISTD20300
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/20300_3270190020165_valNut.xml b/t/inputs/import_convert_carrefour_france/20300_3270190020165_valNut.xml new file mode 100644 index 0000000000000..5209ceeaddf1a --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/20300_3270190020165_valNut.xml @@ -0,0 +1 @@ +gGR100,00grammeVALENERLABELESVALENERLABELITgGR0,00grammeVALENERLABELESPORTIONESPORTIONSOITESVALENERLABELITPORTIONITPORTIONSOITIT ARCOLESARCOLITES8243350IT8243350ENERKJ1EnergieENER kJKJO100,00Kilojoule110013kJKJO0,00Kilojoule00ES8243351IT8243351ENERKC2EnergieENER kcalE14100,00kilocalorie26513kcalE140,00kilocalorie00ES8243352IT8243352FAT3NutrimentsNUT gGR100,00gramme2130ES8243353IT8243353FASAT4NutrimentsNUT gGR100,00gramme1575ES8243361IT8243361PRO12NutrimentsNUT gGR100,00gramme1938ES8243363IT8243363SALTEQ14NutrimentsNUT gGR100,00gramme1,322ES505426ES505426ES505426ES505426IT505426IT505426IT505426IT505426QTENEG150542615165Tableau de ValNut 1TABNUTSTDVITMIN 20300 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/20671_3270190124924_text.xml b/t/inputs/import_convert_carrefour_france/20671_3270190124924_text.xml new file mode 100644 index 0000000000000..bf3fb2f569350 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/20671_3270190124924_text.xml @@ -0,0 +1 @@ +FR8433289MOUTARDE DE
DIJON
10
ES8202006MOSTAZA DE
DIJON
TRADES 01
AL_DENOCOM0101FACINGSECTION FACING
FR8433290FINE & FORTE 10ES8202007FINA & FUERTE

TRADES 01
AL_BENEF_CONS0202FACINGSECTION FACING
FR8433291
10
ES8202008
01
AL_TXT_LIB_FACE0303FACINGSECTION FACING
FR8433292
10
ES8202009
01
AL_SPE_BIO0404FACINGSECTION FACING
FR8433293
10
ES8202010
01
AL_ALCO_VOL0505FACINGSECTION FACING
FR8433294
10
ES8202011
01
AL_PRESENTATION0606FACINGSECTION FACING
FR8433295Moutarde de Dijon. 10ES8202012 Mostaza de Dijon.TRADES 01AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITIONFR8433296Ingrédients : Eau, graines de moutarde, vinaigre d'alcool, sel, antioxydant : disulfite de potassium, acidifiant : acide citrique. 10ES8202013Ingredientes: Agua, semillas de mostaza, vinagre de alcohol, sal, antioxidante: metabisulfito potásico, acidulante: ácido cítrico.TRADES 01AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITIONFR8433297
10
ES8202014
01
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR8433298Nutrition : Nutriscore C 00ES8202015Nutrition : Nutriscore C07/07/21-NSF MR
SUR LE PDF: Remplacer "Valeurs moyennes pour :" par "Valores medios por:"
TRADES 01
AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITION
FR8433299
10
ES8202016
01
AL_PREPA1111UTILISATIONSECTION UTILISATION
FR8433300Conservation : Avant ouverture, à conserver à température ambiante. Pour une dégustation optimale, à consommer de préférence avant le / N° de lot : voir la date indiquée sur le bocal. Après ouverture, à conserver au réfrigérateur et à consommer dans les 6 mois. 10ES8202017Conservación: Antes de abrir, conservar a temperatura ambiente. Consumir preferentemente antes del / Nº de lote: ver fecha indicada en el envase. Una vez abierto, conservar en el frigorífico y consumir en 6 meses.TRADES 01AL_CONSERV1212UTILISATIONSECTION UTILISATIONFR8433301
10
ES8202018
01
AL_PRECAUTION1313UTILISATIONSECTION UTILISATION
FR8433302
10
ES8202019
01
AL_IDEE_RECET1414UTILISATIONSECTION UTILISATION
FR8433303Ecoemballage 10ES8202020Ecoemballage

07/07/21-NSF MR
Remplacé "Triman" par "Ecoemballage" selon TT FR
TRADES 01
AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGE
FR8433304370[GR] 10ES8202021
TRADES 00
AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCE
FR8433305
10
ES8202022
00
AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCE
FR8433306
10
ES8202023
00
AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCE
FR8433307200 g e
10
ES8202024200 g e

TRADES 01
AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCE
FR8433308
10
ES8202025
01
AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETE
FR8433309Interdis - TSA 91431 - 91343 MASSY Cedex - France 10ES8202026Interdis - TSA 91431 - 91343 MASSY Cedex - France

TRADES 01
AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR8433310
10
ES8202027
01
AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR8433311
10
ES8202028
01
AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR84333123560071422073 00ES82020293560071422073 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR8433313
10
ES8202030
01
AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETIN
FR8433314
10
ES8202031
01
AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
FR8433315
10
ES8202032
01
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
19947MOUTARDE DIJON BOCAL VERRE 370G_2020ALISTD20671
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/20671_3270190124924_valNut.xml b/t/inputs/import_convert_carrefour_france/20671_3270190124924_valNut.xml new file mode 100644 index 0000000000000..daef1d87fdd76 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/20671_3270190124924_valNut.xml @@ -0,0 +1 @@ +gGR100,00grammeVALENERLABELESgGR0,00grammeVALENERLABELESPORTIONESPORTIONSOITES˜ ARCOLESES7985532ENERKJ1EnergieENER FournisseurkJKJO100,00Kilojoule6197kJKJO0,00Kilojoule00ES7985533ENERKC2EnergieENER FournisseurkcalE14100,00kilocalorie1497kcalE140,00kilocalorie00ES7985534FAT3NutrimentsNUT FournisseurgGR100,00gramme1216ES7985535FASAT4NutrimentsNUT FournisseurgGR100,00gramme0,84ES7985538CHOAVL7NutrimentsNUT FournisseurgGR100,00gramme3,21ES7985539SUGAR8NutrimentsNUT FournisseurgGR100,00gramme2,73ES7985542FIBTG11NutrimentsNUT FournisseurgGR100,00gramme2,1ES7985543PRO12NutrimentsNUT FournisseurgGR100,00gramme7,214ES7985545SALTEQ14NutrimentsNUT FournisseurgGR100,00gramme6,5108FR676068PHRASETOPFR676069FR676070PHRASEBOTTOM13907MOUTARDE DE DIJONTABNUTSTD 20671 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/23652_3560070687145_text.xml b/t/inputs/import_convert_carrefour_france/23652_3560070687145_text.xml new file mode 100644 index 0000000000000..83ec1682f1717 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/23652_3560070687145_text.xml @@ -0,0 +1 @@ +FR9172971Allumettes 11NL9202884Allumettes 01ES9204883Patatas FinasTRADES 01IT9202526Patate fritte a fiammifero 01AL_DENOCOM0101FACINGSECTION FACINGFR9172972À l'huile de tournesol 11NL9202885Met zonnebloemolieTRADNL 01ES9204884Con aceite de girasol 01IT9202527Con olio di semi di girasole 01AL_BENEF_CONS0202FACINGSECTION FACINGFR9172973Picto friteuse 4-6 min
SURGELÉ
1kg e
11
NL9202886Picto friteuse 4-6 min
DIEPVRIES
1kg e
TRADNL 01
ES9204885Picto friteuse 4-6 min
ULTRACONGELADO
1kg e




TRADES 01
IT9202528Picto friteuse 4-6 min
SURGELATO
1kg e
01
AL_TXT_LIB_FACE0303FACINGSECTION FACING
FR9172974
11
NL9202887
01
ES9204886
01
IT9202529
01
AL_SPE_BIO0404FACINGSECTION FACING
FR9172975
11
NL9202888
01
ES9204887
01
IT9202530
01
AL_ALCO_VOL0505FACINGSECTION FACING
FR9172976
11
NL9202889
01
ES9204888
01
IT9202531
01
AL_PRESENTATION0606FACINGSECTION FACING
FR9172977Pommes de terre allumettes préfrites surgelées. 11NL9202890Voorgebakken allumettes aardappelen, diepvries.27/01 CDW: TT NL màj: ajouté une virgule après aardappelen. Merci de modifier le pdf R1. TRADNL 01ES9204889Patatas finas prefritas ultracongeladas. 01IT9202532Patate a fiammifero prefritte surgelate.
TRADIT 01
AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITION
FR9172978Pommes de terre 96%, huile de tournesol 4%, dextrose. 11NL9202891Aardappelen 96%, zonnebloemolie 4%, dextrose.TRADNL 01ES9204890Patatas 96%, aceite de girasol 4%, dextrosa. 01IT9202533Patate 96%, olio di semi girasole 4%, destrosio. 01AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITIONFR9172979
11
NL9202892
01
ES9204891
01
IT9202534
01
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR9172980Nutriscore A 01NL9202893Nutriscore A 01ES9204892Porción 125 g27/01/22-NSF PP
Sur le PDF, on recommende remplacer "Contiene cantidad insignificante de azúcares" par "Contiene cantidades insignificantes de azúcares".
Selon commentaire du Coord, Dans le tableau des vnut, corriger les Valeur énergétique : 564 kJ/134kcal..
TRADES 01
IT9202535Porzione 125 gVDS 27/01: Dans le tableau des vnut, corriger les Valeur énergétique: 564 kJ/ 134 kcal.TRADIT 01
AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITION
FR9172981À la friteuse : Plongez les frites encore surgelées par petites quantités dans de l'huile préchauffée à 175°C et laissez dorer pendant 4 à 6 minutes. Pour limiter le surplus de matière grasse, laissez reposer les frites sur du papier absorbant. Pensez à renouveler le bain d'huile après 10 à 12 fritures. 11NL9202894In de friteuse: Doe de nog diepgevroren frieten, in kleine hoeveelheden, in voorverwarmde olie op 175°C en laat ze 4 à 6 minuten goudgeel bakken. Leg ze op een vel keukenpapier om het overtollige vet te absorberen. Vervang de olie na 10 à 12 bakbeurten.TRADNL 01ES9204893En la freidora: Sumergir las patatas aún ultracongeladas en pequeñas cantidades en aceite caliente a 175ºC y dejar dorar durante 4-6 minutos. Para eliminar el exceso de grasa, reposar las patatas fritas sobre un papel absorbente. Renovar el aceite de la freidora después de 10-12 frituras.




TRADES 01
IT9202536Nella friggitrice: Versate piccole quantità per volta di patatine ancora surgelate nell'olio preriscaldato a 175°C e lasciate dorare per 4 - 6 minuti. Per limitare l'eccesso di olio, lasciate riposare le patate fritte su della carta assorbente per fritti. Ricordate di rinnovare l'olio dopo 10 - 12 fritture.TRADIT 01
AL_PREPA1111UTILISATIONSECTION UTILISATION
FR9172982À consommer de préférence avant la date indiquée ci-dessous. À conserver 24 heures dans un réfrigérateur, 3 jours dans le compartiment à glace du réfrigérateur et jusqu'à la date de durabilité minimale dans un congélateur*** à -18°C. 11NL9202895Ten minste houdbaar tot de hieronder vermelde datum. Bewaart 24 uur in de koelkast, 3 dagen in het vriesvak van de koelkast en tot aan de datum van minimale houdbaarheid in een diepvriezer*** op -18°C.TRADNL 01ES9204894Consumir preferentemente antes de la fecha indicada más abajo. Conservar 24 horas en el frigorífico, 3 días en el congelador del frigorífico y hasta la fecha de durabilidad mínima en un congelador *** a -18ºC.






TRADES 01
IT9202537Da consumarsi preferibilmente entro la data indicata sotto. Conservare 24 ore nel frigorifero, 3 giorni nello scomparto del ghiaccio del frigorifero e fino al termine minimo di conservazione in un congelatore*** a -18°C.

01
AL_CONSERV1212UTILISATIONSECTION UTILISATION
FR9172983ATTENTION, NE PAS RECONGELER APRÈS DÉCONGÉLATION. 11NL9202896NA ONTDOOIING NIET OPNIEUW INVRIEZEN.TRADNL 01ES9204895ATENCIÓN, NO VOLVER A CONGELAR UNA VEZ DESCONGELADO. 01IT9202538ATTENZIONE, NON RICONGELARE DOPO LO SCONGELAMENTO. 01AL_PRECAUTION1313UTILISATIONSECTION UTILISATIONFR9172984
11
NL9202897
01
ES9204896
01
IT9202539
01
AL_IDEE_RECET1414UTILISATIONSECTION UTILISATION
FR9172985Écoemballage
39A
11
NL9202898Écoemballage
39A
27/01 CDW: Decision Crf FR, pour le moment pas de changement au niveau picto TRI pour la Belgique. Le sujet est en cours de mise au point entre CRF Belgique et CRF France.TRADNL 01
ES9204897Écoemballage
39A
01
IT9202540Ecoemballage
39A
TRADIT 01
AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGE
FR91729861[KG] 10NL9202899
TRADNL 00
ES9204898
TRADES 00
IT9202541
TRADIT 00
AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCE
FR9172987
10
NL9202900
00
ES9204899
00
IT9202542
00
AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCE
FR9172988
10
NL9202901
00
ES9204900
00
IT9202543
00
AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCE
FR91729891kg e 11NL92029021kg e 01ES92049011kg e 01IT92025441kg e 01AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCEFR9172990
11
NL9202903
01
ES9204902
01
IT9202545
01
AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETE
FR9172991Interdis - TSA 91431 - 91343 MASSY Cedex - France. 11NL9202904Interdis - TSA 91431 - 91343 MASSY Cedex - France. 01ES9204903Interdis - TSA 91431 - 91343 MASSY Cedex - France. 01IT9202546Interdis - TSA 91431 - 91343 MASSY Cedex - France 01AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR9172992
11
NL9202905
01
ES9204904
01
IT9202547
01
AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR9172993
11
NL9202906
01
ES9204905
01
IT9202548
01
AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR91729943560070687145 01NL92029073560070687145 01ES92049063560070687145 01IT92025493560070687145 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR9172995
11
NL9202908
01
ES9204907
01
IT9202550
01
AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETIN
FR9172996
11
NL9202909
01
ES9204908
01
IT9202551
01
AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
FR9172997Meilleur avant - À consommer de préférence avant le / N° de lot : 11NL9202910Ten minste houdbaar tot / Lotnr.:TRADNL 01ES9204909Consumir preferentemente antes del / Nº de lote: 01IT9202552Da consumarsi preferibilmente entro il / N° di lotto:TRADIT 01AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
23373FRITE ALLUMETTE 1KG CRFALISTD23652
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/23652_3560070687145_valNut.xml b/t/inputs/import_convert_carrefour_france/23652_3560070687145_valNut.xml new file mode 100644 index 0000000000000..0dee6b3bcd391 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/23652_3560070687145_valNut.xml @@ -0,0 +1 @@ +gGR100,00grammeVALENERLABELFRVALENERLABELNLVALENERLABELESVALENERLABELITgGR0,00grammeVALENERLABELFRPORTIONFRPORTIONSOITFRVALENERLABELNLPORTIONNLPORTIONSOITNLVALENERLABELESPORTIONESPORTIONSOITESVALENERLABELITPORTIONITPORTIONSOITIT Non PréparéARCOLFRARCOLNLARCOLESARCOLITFR8874917NL8874917ES8874917IT8874917ENERKJ1EnergieENER FournisseurkJKJO100,00Kilojoule5607kJKJO0,00Kilojoule00FR8874918NL8874918ES8874918IT8874918ENERKC2EnergieENER FournisseurkcalE14100,00kilocalorie1337kcalE140,00kilocalorie00FR8874919NL8874919ES8874919IT8874919FAT3NutrimentsNUT FournisseurgGR100,00gramme3,25FR8874920NL8874920ES8874920IT8874920FASAT4NutrimentsNUT FournisseurgGR100,00gramme0,42FR8874923NL8874923ES8874923IT8874923CHOAVL7NutrimentsNUT FournisseurgGR100,00gramme239FR8874927NL8874927ES8874927IT8874927FIBTG11NutrimentsNUT FournisseurgGR100,00gramme1,7FR8874928NL8874928ES8874928IT8874928PRO12NutrimentsNUT gGR100,00gramme2,24FR8874930NL8874930ES8874930IT8874930SALTEQ14NutrimentsNUT FournisseurgGR100,00gramme0,203FR518236FR518236FR518236FR518236FR518236NL518236NL518236NL518236NL518236NL518236ES518236ES518236ES518236ES518236ES518236IT518236IT518236IT518236IT518236IT518236QTENEG1518236FR518237FR518237FR518237FR518237FR518237NL518237NL518237NL518237NL518237NL518237ES518237ES518237ES518237ES518237ES518237IT518237IT518237IT518237IT518237IT518237SEL012518237FR734427NL730585PHRASETOPFR734428FR734429NL730586NL730587PHRASEBOTTOM16234Frites allumettesTABNUTSTD 23652 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/7934_3560071193102_text.xml b/t/inputs/import_convert_carrefour_france/7934_3560071193102_text.xml new file mode 100644 index 0000000000000..a9e75cd9ea44b --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/7934_3560071193102_text.xml @@ -0,0 +1 @@ +FR2845701YOURS
Avec Bière sans alcool
Saveur Agrumes
11
NL2829842YOURS
Met alcoholvrij Bier
Citrusvruchtensmaak
TRADNL 01
AL_DENOCOM0101FACINGSECTION FACING
FR2845702 11NL2829843 01AL_BENEF_CONS0202FACINGSECTION FACINGFR284570333cl [ZEMETRO]CV 20/09/18: Pour rappel, hauteur min de 4mm pour le "33" et 3mm pour le "e" 11NL282984433cl TRADNL 01AL_TXT_LIB_FACE0303FACINGSECTION FACINGFR2845704 11NL2829845 01AL_SPE_BIO0404FACINGSECTION FACINGFR2845705alc. 0,0% vol. 11NL2829846alc. 0,0% vol. 01AL_ALCO_VOL0505FACINGSECTION FACINGFR2845706 11NL2829847 01AL_PRESENTATION0606FACINGSECTION FACINGFR2845707 11NL2829848 01AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITIONFR2845708 11NL2829849 01AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITIONFR2845709 11NL2829850 01AL_RUB_ORIGINE0909ORIGINESECTION ORIGINEFR2845710 01NL2829851 01AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITIONFR2845711 11NL2829852 01AL_PREPA1111UTILISATIONSECTION UTILISATIONFR2845712 11NL2829853 01AL_CONSERV1212UTILISATIONSECTION UTILISATIONFR2845713 11NL2829854 01AL_PRECAUTION1313UTILISATIONSECTION UTILISATIONFR2845714 11NL2829855 01AL_IDEE_RECET1414UTILISATIONSECTION UTILISATIONFR2845715 11NL2829856 01AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGEFR2845716 10NL2829857 00AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCEFR2845717 10NL2829858 00AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCEFR2845718 10NL2829859 00AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCEFR2845719 11NL2829860 01AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCEFR2845720 11NL2829861 01AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETEFR2845721 11NL2829862 01AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR2845722 11NL2829863 01AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR2845723 11NL2829864 01AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR28457243560071193102 01NL28298653560071193102 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR2845725 11NL2829866 01AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETINFR2845726 11NL2829867 01AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMENFR2845727 11NL2829868 01AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
6836Bière 0,0% Agrume Bouteille 33cl EtiquetteALISTD7934
FR2845728 11NL2830479 01AL_DENOCOM0101FACINGSECTION FACINGFR2845729YOURS
Saveur Agrumes
11
NL2830480YOURS
Citrusvruchtensmaak
TRADNL 01
AL_BENEF_CONS0202FACINGSECTION FACING
FR2845730 11NL2830481 01AL_TXT_LIB_FACE0303FACINGSECTION FACINGFR2845731 11NL2830482 01AL_SPE_BIO0404FACINGSECTION FACINGFR2845732 11NL2830483 01AL_ALCO_VOL0505FACINGSECTION FACINGFR2845733 11NL2830484 01AL_PRESENTATION0606FACINGSECTION FACINGFR2845734Boisson rafraîchissante aromatisée saveur pamplemousse rose, avec bière sans alcool.CV: Déno légale de vente, volume et volume d'alcool dans le même champ visuel. 11NL2830485Gearomatiseerde frisdrank rozepompelmoessmaak, met alcoholvrij bier.TRADNL 01AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITIONFR2845735Eau, bière sans alcool 11,88% (eau, malt d'orge, extrait de houblon, dioxyde de carbone), sucre, jus de pamplemousse rose à base de concentré 1%, extrait de malt d'orge houblonné, dioxyde de carbone, jus de baies de sureau à base de concentré, acidifiant: acide citrique, stabilisants: gomme arabique et esters glycériques de résine de bois, arôme naturel de pamplemousse rose avec autres arômes naturels.
CV 22/10/18 (R1): Merci de mettre à jour la liste des ingrédients sur le pdf (français + traduction NL) --> Dioxyde de carbone à placer devant jus de baies de sureau ..
+ Sur le pdf pour la traduction NL merci de respecter le "11,88%" dans la liste des ingrédients.
11
NL2830486Water, alcoholvrij bier 11,88% (water, gerstemout, hopextract, koolstofdioxide), suiker, rozepompelmoessap uit sapconcentraat 1%, gehopt gerstemoutextract, koolstofdioxide, vlierbessensap uit sapconcentraat, voedingszuur: citroenzuur, stabilisatoren: arabische gom en glycerolesters van houthars, natuurlijk rozepompelmoesaroma met andere natuurlijke aroma's.



TRADNL 01
AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITION
FR2845736 11NL2830487 01AL_RUB_ORIGINE0909ORIGINESECTION ORIGINEFR2845737 01NL2830488 01AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITIONFR2845738Servir frais. 11NL2830489Koel schenken.CDS 03/10: remplacer "Bereiding" par "Gebruik"TRADNL 01AL_PREPA1111UTILISATIONSECTION UTILISATIONFR2845739A conserver dans un endroit propre, sec et frais à l'abri de la lumière.
A consommer de préférence avant le / N° de lot : voir sur le col de bouteille.
11
NL2830490Op een schone, droge, frisse en donkere plaats bewaren.
Ten minste houdbaar tot / Lotnr.: zie flessenhals
TRADNL 01
AL_CONSERV1212UTILISATIONSECTION UTILISATION
FR2845740Dépôt de particules possible n'affectant pas la qualité. En cas de dépôt, remuer doucement la bouteille avant de consommer.CV 22/10/18 (R1): Merci de rajouter un "s" à particules sur le pdf. 11NL2830491Er kan bezinksel voorkomen maar dit heeft geen invloed op de kwaliteit. In geval van bezinksel, de fles voorzichtig omroeren alvorens te consumeren.CDS 03/10: remplacer "Het voorkomen van depot is mogelijk en heeft geen invloed op de kwaliteit. In geval van depot, de fles voorzichtig omroeren alvorens te consumeren." par "Er kan bezinksel voorkomen maar dit heeft geen invloed op de kwaliteit. In geval van bezinksel, de fles voorzichtig omroeren alvorens te consumeren."TRADNL 01AL_PRECAUTION1313UTILISATIONSECTION UTILISATIONFR2845741 11NL2830492 01AL_IDEE_RECET1414UTILISATIONSECTION UTILISATIONFR2845742Triman
Ecoemballage
Picto de tri
11
NL2830493Triman
Ecoemballage
Picto de tri
TRADNL 01
AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGE
FR2845743 10NL2830494 00AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCEFR2845744 10NL2830495 00AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCEFR2845745 10NL2830496 00AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCEFR284574633cl [ZEMETRO]Minimum 4mm pour le 33cl et 3mm pour le "e". 11NL283049733cl TRADNL 01AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCEFR2845747 11NL2830498 01AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETEFR2845748Interdis - TSA 91431 - 91343 MASSY Cedex - France 11NL2830499Carrefour Product info PB 2000 Evere 3 - 1140 BRUSSELS Tél: 0800/9.10.11

TRADNL 01
AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR2845749Fabriqué en France par EMB 67437 pour Interdis. 11NL2830500Geproduceerd in Frankrijk door EMB67437 voor Interdis.TRADNL 01AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR2845750 11NL2830501 01AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR28457513560071193102 01NL28305023560071193102 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR2845752 11NL2830503 01AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETINFR2845753 11NL2830504 01AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMENFR2845754 11NL2830505 01AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
6837Bière 0,0% Agrume Bouteille 33cl Contre EtiquetteALISTD7934
FR2845755YOURS 11NL2830506YOURSTRADNL 01AL_DENOCOM0101FACINGSECTION FACINGFR2845756 11NL2830507 01AL_BENEF_CONS0202FACINGSECTION FACINGFR2845757Saveur Agrumes 11NL2830508CitrusvruchtensmaakTRADNL 01AL_TXT_LIB_FACE0303FACINGSECTION FACINGFR2845758 11NL2830509 01AL_SPE_BIO0404FACINGSECTION FACINGFR2845759 11NL2830510 01AL_ALCO_VOL0505FACINGSECTION FACINGFR2845760 11NL2830511 01AL_PRESENTATION0606FACINGSECTION FACINGFR2845761 11NL2830512 01AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITIONFR2845762 11NL2830513 01AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITIONFR2845763 11NL2830514 01AL_RUB_ORIGINE0909ORIGINESECTION ORIGINEFR2845764 01NL2830515 01AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITIONFR2845765 11NL2830516 01AL_PREPA1111UTILISATIONSECTION UTILISATIONFR2845766 11NL2830517 01AL_CONSERV1212UTILISATIONSECTION UTILISATIONFR2845767 11NL2830518 01AL_PRECAUTION1313UTILISATIONSECTION UTILISATIONFR2845768 11NL2830519 01AL_IDEE_RECET1414UTILISATIONSECTION UTILISATIONFR2845769 11NL2830520 01AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGEFR2845770 10NL2830521 00AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCEFR2845771 10NL2830522 00AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCEFR2845772 10NL2830523 00AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCEFR2845773 11NL2830524 01AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCEFR2845774 11NL2830525 01AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETEFR2845775 11NL2830526 01AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR2845776 11NL2830527 01AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR2845777 11NL2830528 01AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR28457783560071193102 01NL28305293560071193102 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR2845779 11NL2830530 01AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETINFR2845780 11NL2830531 01AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMENFR2845781 11NL2830532 01AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE6838Bière 0,0% Agrume Bouteille 33cl ColleretteALISTD7934
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/7934_3560071193102_valNut.xml b/t/inputs/import_convert_carrefour_france/7934_3560071193102_valNut.xml new file mode 100644 index 0000000000000..2199bfcdb00c5 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/7934_3560071193102_valNut.xml @@ -0,0 +1 @@ +mlML100,00millilitreVALENERLABELFRVALENERLABELNLmlML330,00millilitreVALENERLABELFRPORTIONFRPORTIONSOITFRVALENERLABELNLPORTIONNLPORTIONSOITNL 1bouteilleARCOLFRARCOLNLFR3570025NL3570025ENERKJ1EnergieENER FournisseurkJKJO100,00Kilojoule1141kJKJO330,00Kilojoule3754FR3570026NL3570026ENERKC2EnergieENER FournisseurkcalE14100,00kilocalorie271kcalE14330,00kilocalorie884FR3570027NL3570027FAT3NutrimentsNUT FournisseurgGR100,00gramme< 0,50< 1gGR330,00gramme< 0,50< 1FR3570028NL3570028FASAT4NutrimentsNUT FournisseurgGR100,00gramme< 0,10< 1gGR330,00gramme0,21FR3570031NL3570031CHOAVL7NutrimentsNUT FournisseurgGR100,00gramme6,32gGR330,00gramme218FR3570032NL3570032SUGAR8NutrimentsNUT FournisseurgGR100,00gramme5,86gGR330,00gramme1921FR3570040NL3570040ACL16NutrimentsNUT FournisseurgGR100,00gramme0gGR330,00gramme0FR285673FR285673FR285673NL285673NL285673NL285673QTENEG1285673FR285676FR285676FR285676NL285676NL285676NL285676SEL012285676FR285674FR285674FR285674NL285674NL285674NL285674AR013285674FR285675FR285675FR285675NL285675NL285675NL285675VARIEZ015285675FR290775PHRASETOPFR290776FR290777PHRASEBOTTOM4854Tableau VN 0,0% AgrumeTABNUTSTD 7934 \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/8643_3560071198954_text.xml b/t/inputs/import_convert_carrefour_france/8643_3560071198954_text.xml new file mode 100644 index 0000000000000..e7ef4840a997c --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/8643_3560071198954_text.xml @@ -0,0 +1 @@ +FR3118730Liquide Vaisselle 11NL2860621AfwasmiddelTRADNL 01ALL2860645GeschirrspülmittelTRADALL 01DD_DENOCOM0101FACINGSECTION FACINGFR31187310% parfum
Peaux sensibles
Aux actifs d'origine végétale
Tolerance tested*
Ecolabel

LOGO Ecolabel + bandeau "EU Ecolabel : BE/019/002" 11
NL28606220% parfum
Gevoelige huid
Met plantaardige werkzame stoffen
Tolerance tested*
Ecolabel



TRADNL 01
ALL28606460% Duftstoffe
Sensible Haut
Mit pflanzlichen Wirkstoffen
Tolerance tested*
Ecolabel
TRADALL 01
DD_BENEF_CONS0202FACINGSECTION FACING
FR3118732500mL + e-metrologique 11NL2860623500mL + e-metrologique 01ALL2860647500mL 01DD_TXT_LIB_FACE0303FACINGSECTION FACINGFR3118733 01NL2860624 01ALL2860648 01DD_PARF_SYNT0404FACINGSECTION FACINGFR3118734Liquide vaisselle ECOplanet sans parfum 11NL2860625Afwasmiddel ECOplanet zonder parfumTRADNL 01ALL2860649Geschirrspülmittel ECOplanet ohne DuftstoffeTRADALL 01DD_DENOLEGAL0505DENOMINATIONSECTION DENOMINATIONFR3118735Liquide vaisselle aux actifs d'origine végétale, sans parfum et sans colorant, idéal pour les peaux sensibles. *Tolérance testée sous contrôle dermatologique.Si pas de place pour texte marketing, écrire "*Tolérance testée sous contrôle dermatologique" à la suite du champ F05 11NL2860626Afwasmiddel met plantaardige werkzame stoffen, zonder parfum en zonder kleurstof, ideaal voor de gevoelige huid.
*Tolerantie getest onder dermatologisch toezicht.
TRADNL 01
ALL2860650Geschirrspülmittel mit pflanzlichen Wirkstoffen ohne Duft- und Farbstoffe, ideal für die sensible Haut.
*Verträglichkeit unter dermatologischer Aufsicht getestet.
TRADALL 01
DD_INFOPROD0606AUT_MENT_MARKTSECTION AUTRES MENTIONS MARKETIN
FR3118736Recto = 5180921
Verso = 5180922
11
NL2860627Recto = 5180921
Verso = 5180922
01
ALL2860651Recto = 5180921
Verso = 5180922
01
DD_TXT_LIB_DOS0707AUT_MENT_MARKTSECTION AUTRES MENTIONS MARKETIN
FR3118737Contient entre autres composants : 5% ou plus mais moins de 15%:agents de surface anioniques moins de 5%:agents de surface amphotères, agents de surface non ioniques Également:conservateur (lactic acid);CPP 16/10 :
En ALL : Mettre une majuscule à Acid => "Lactic Acid"
11
NL2860628Bevat onder andere componenten: 5% of meer, maar minder dan 15%:anionogene oppervlakteactieve stoffen minder dan 5%:amfotere oppervlakteactieve stoffen, niet-ionogene oppervlakteactieve stoffen Ook:conserveermiddel (lactic acid);CDS 09/10: remplacer "amfotere oppervlakteactie stoffen" par "amfotere oppervlakteactieve stoffen"TRADNL 01ALL2860652Enthält neben anderen Inhaltsstoffen: 5% und darüber, jedoch weniger als 15%:anionische Tenside unter 5%:amphotere Tenside, nichtionische Tenside Ebenfalls:Konservierungsmittel (Lactic acid);TRAD ALL : on devrait avoir : Lactic Acid au lieu de Lactic acidTRADALL 01
DD_COMPO0808COMPOSITIONSECTION COMPOSITION
FR3118738www.info-detergent.comAjouter "INGREDIENTS :" devant "www.info-detergent.com" 01NL2860629www.info-detergent.com 01ALL2860653www.info-detergent.com 01DD_INFODETERG0909COMPOSITIONSECTION COMPOSITIONFR3118739Immerger la vaisselle dans l'eau au lieu de la laver au jet du robinet. Rincer à l'eau potable. Respecter le dosage recommandé.
Dosage recommandé pour 5L d’eau tiède, quelle que soit la dureté de l'eau:
Vaisselle peu sale : 2,5 ml (1/2 cuillère à café)
Vaisselle sale : 5 ml (1 cuillère à café)
CPP 16/10 :
>En ALL : remplacer
- "5 L Wasser tiède, quelle que soit la dureté de l’eau " par "5L lauwarmes Wasser egal die Wasserhärten"
- "Utilisation" par "Anwendung"
>En NL, remplacer
- "5 L water tiède, quelle que soit la dureté de l’eau" par "5L lauw water, ongeacht welke waterhardheid"
- "licht bevuilde vaat: 5 ml" par "normaal bevuilde vaat: 5 ml"
11
NL2860630In plaats van onder stromend water af te wassen, de vaat in lauw water onderdompelen. Afspoelen met drinkwater. De aanbevolen hoeveelheid respecteren.
Aanbevolen dosering voor 5 L lauw water, ongeacht welke waterhardheid:
Licht bevuilde vaat : 2,5 ml (1/2 koffielepel)
Normaal bevuilde vaat : 5 ml (1 koffielepel)


CDS 09/10: 1/ "Dosage recommandé pour 5 L d’eau tiède, quelle que soit la dureté de l'eau" = "Aanbevolen dosering voor 5 L lauw water, ongeacht de waterhardheid"
2/ sur le pdf: remplacer "licht bevuilde vaat: 5 ml (1 koffielepel)." par "normaal bevuilde vaat: 5 ml (1 koffielepel)."
TRADNL 01
ALL2860654Anwendung: Reinigen und mit Leitungswasser abspülen.

Empfohlene Dosierung für 5L lauwarmes Wasser, unabhängig von der Wasserhärte:

wenig verschmutztes Geschirr: 2,5 ml (1/2 TL), schmutziges Geschirr: 5 ml (1 TL)
Remplacer : "5 L Wasser tiède, quelle que soit la dureté de l’eau " par "5L lauwarmes Wasser, unabhängig von der Wasserhärte"TRADALL 01
DD_CONS_UTILI1010UTILISATIONSECTION UTILISATION
FR3118740 11NL2860631 01ALL2860655 01DD_CONS_CONSERV1111CONSERVATIONSECTION CONSERVATIONFR3118741ATTENTION Provoque une sévère irritation des yeux. Tenir hors de portée des enfants. EN CAS DE CONTACT AVEC LES YEUX : Rincer avec précaution à l’eau pendant plusieurs minutes. Enlever les lentilles de contact si la victime en porte et si elles peuvent être facilement enlevées. Continuer à rincer. Si l’irritation oculaire persiste : consulter un médecin. En cas de consultation d’un médecin, garder à disposition le récipient ou l’étiquette. Centre antipoison Paris : 01.40.05.48.48. / Belgique : 070/245 245.CPP 16/10 :
- Supprimer la phrase P264 : "Se laver les mains soigneusement après manipulation." / Na het werken met dit product de handen grondig wassen." / "Nach Gebrauch die Hände gründlich waschen."
- En D, ajouter "aus" dans les phrases "...mit Wasser ausspülen." et "Weiter ausspülen."
11
NL2860632WAARSCHUWING Veroorzaakt ernstige oogirritatie. Buiten het bereik van kinderen houden. BIJ CONTACT MET DE OGEN: voorzichtig afspoelen met water gedurende een aantal minuten; contactlenzen verwijderen, indien mogelijk; blijven spoelen. Bij aanhoudende oogirritatie: een arts raadplegen. Bij het inwinnen van medisch advies, de verpakking of het etiket ter beschikking houden. Antigifcentrum: 070/245 245.CDS 10/09: "les mains" = "de handen"TRADNL 01ALL2860656ACHTUNG Verursacht schwere Augenreizung. Darf nicht in die Hände von Kindern gelangen. Nach Gebrauch … gründlich waschen. BEI KONTAKT MIT DEN AUGEN: Einige Minuten lang behutsam mit Wasser spülen. Eventuell vorhandene Kontaktlinsen nach Möglichkeit entfernen. Weiter spülen. Bei anhaltender Augenreizung: Ärztlichen Rat einholen/ärztliche Hilfe hinzuziehen. Ist ärztlicher Rat erforderlich, Verpackung oder Kennzeichnungsetikett bereithalten. Giftinformationszentrum: 070/245 245.TRADALL 01
DD_PRECAUTION1212PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOI
FR3118742[DSGH07] 01NL2860633 01ALL2860657 01DD_PICTO_DANG1313PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOIFR3118743 01NL2860634 01ALL2860658 01DD_PICTO_DIV1414PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOIFR3118744[ZSECU1] [ZSECU2] [ZSECU5]Pas de place pour les pictos AISE. Nous ne les avons pas sur les réf. Ecolabel actuelles. 01NL2860635 01ALL2860659 01DD_PICTO_AISE1515PREC_D_EMPLOISECTION PRECAUCTIONS D'EMPLOIFR3118745[ZPOINTVERT]+TRIMAN et consigne de tri (obligatoire pour l'Ecolabel) 01NL2860636 01ALL2860660 01DD_LOGO_RECY1616EMBALLAGESECTION EMBALLAGEFR3118746 01NL2860637 01ALL2860661 01DD_LOGO_DIV1717EMBALLAGESECTION EMBALLAGEFR3118747500mL[ZEMETRO]CPP 16/10 :
>Ajouter le e metrologique après 500mL.
11
NL2860638500mL TRADNL 01ALL2860662500mL 01
DD_POIDS_VOL1818POIDS_CONTENANCESECTION CONTENANCE
FR3118748 11NL2860639 01ALL2860663 01DD_INFO_EMB1919POUR_LA_PLANETESECTION POUR LA PLANETEFR3118749Interdis - TSA 91431 - 91343 MASSY Cedex - France 01NL2860640Interdis - TSA 91431 - 91343 MASSY Cedex - France 01ALL2860664Interdis - TSA 91431 - 91343 MASSY Cedex - France 01DD_PAVE_SC2020AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR3118750EMB B 00432 01NL2860641EMB B 00432 01ALL2860665EMB B 00432 01DD_CODE_EMB2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR3118751Fabriqué en Belgique par EMB B0432 pour Interdis 11NL2860642Geproduceerd in België door EMB B00432 voor InterdisTRADNL 01ALL2860666Hergestellt in Belgien von EMB B0432 für InterdisTRADALL 01DD_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOSFR31187523560071198954 01NL28606433560071198954 01ALL28606673560071198954 01DD_CODE_EAN2323CODE_EANSECTION CODE EANFR3118753 01NL2860644 01ALL2860668 01DD_MARQ_CE2424AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
7549LIQUIDE VAISSELLE ECOPLANET SANS PARFUM NORD 500MLDPHDET8643
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/8643_3560071198954_valNut.xml b/t/inputs/import_convert_carrefour_france/8643_3560071198954_valNut.xml new file mode 100644 index 0000000000000..f34c9c8b7f423 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/8643_3560071198954_valNut.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/9572_8714800018920_text.xml b/t/inputs/import_convert_carrefour_france/9572_8714800018920_text.xml new file mode 100644 index 0000000000000..88b6dde768dcf --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/9572_8714800018920_text.xml @@ -0,0 +1 @@ +FR3734197Energy DRINK*
Light**
10
ES3707880Energy DRINK*
Light**
01
AL_DENOCOM0101FACINGSECTION FACING
FR3734198Taurine, vitamines, caféine
*Boisson énergisante
ML 03/09/19 R1 : ordre des 3 ingrédients modifié afin de respecter l'ordre décroissant pondéral de mise en oeuvre 10
ES3707881Taurina, vitaminas, cafeína
*Bebida energética
09.09.19_SLK: Texte mis à jour.TRADES 01
AL_BENEF_CONS0202FACINGSECTION FACING
FR3734199**Réduction d'au moins 30% de la teneur en glucides par rapport à un produit similaire à base de sucres

25 cl e
ML 03/09/19 R1 : Merci d'écrire "cl" en minuscules 10
ES3707882**Reducción de al menos 30% del contenido de hidratos de carbono en comparación con un producto similar a base de azúcares.

25 cl e


TRADES 01
AL_TXT_LIB_FACE0303FACINGSECTION FACING
FR3734200
10
ES3707883 01
AL_SPE_BIO0404FACINGSECTION FACING
FR3734201
10
ES3707884 01
AL_ALCO_VOL0505FACINGSECTION FACING
FR3734202
10
ES3707885 01
AL_PRESENTATION0606FACINGSECTION FACING
FR3734203Boisson énergisante gazéifiée avec édulcorants, taurine, caféine et vitamines. 10ES3707886Bebida energética con gas, con edulcorantes, taurina, cafeína y vitaminas.TRADES 01AL_DENOLEGAL0707COMPOSITIONSECTION COMPOSITIONFR3734204Eau gazéifiée, acidifiant : acide citrique, correcteur d'acidité : citrates de sodium, glucuronolactone, arôme, taurine 0,025%, édulcorants : acésulfame-K et sucralose, inositol, caféine 0,017%, colorants : caramel de sulfite caustique et riboflavines, vitamines : niacine - B6 - B12.ML 03/09/19 R1 :
- Retirer le pourcentage après glucuronolactone
- Merci de respecter la formulation de la trame texte "colorants : caramel de sulfite caustique et riboflavines, vitamines : niacine - B6 - B12". (dans la relecture, la riboflavines se trouve dans les vitamines, ce n'est pas correct).
- Merci de respecter la formulation en mettant des tirets entre les vitamines
- Ne pas tenir compte du commentaire du fournisseur pour la teneur en caféine : 0,017% est bien l'arrondi validé dans le CDC

10
ES3707887Agua carbonatada, acidulante: ácido cítrico, corrector de acidez: citratos de sodio, glucuronolactona, aroma, taurina 0,025%, edulcorantes: acesulfamo K y sucralosa, inositol, cafeína 0,017%, colorantes: caramelo de sulfito cáustico y riboflavina, vitaminas: niacina - B6 - B12.



09.09.19_SLK: Texte mis à jour.
23/08/19_SLK: 1) supprimer les parenthèse pour le %de "glucuronolactona" pour cohérence avec le reste des ingrédients avec %.
2) remplacer "colorantes: caramelo de sulfito cáustico, vitaminas: riboflavina" par colorantes: caramelo de sulfito cáustico, riboflavina, vitaminas:...". Texte mis à jour.
TRADES 01
AL_INGREDIENT0808COMPOSITIONSECTION COMPOSITION
FR3734205
10
ES3707888 01
AL_RUB_ORIGINE0909ORIGINESECTION ORIGINE
FR3734206
niacina (%IR) 8,7 mg / 100 ml (54%) 22 mg / 250 ml (136%)
vitamina B6 (%IR) 2 mg / 100 ml (143%) 5 mg / 250 ml (357%)
vitamina B12 (%IR) 2 µg / 100 ml (80%) 5 µg / 250 ml (200%)

ML 03/09/19 R1 :
- Ne pas prendre en compte les commentaires du fournisseur.
- Merci de faire apparaître la ligne "dont sucres" dans le tableau des VN conformément à l'onglet nutrition
- Merci de modifier la phrase sous le tableau des VN pour "Quantités négligeables de matières grasses, d'acides gras saturés et de protéines" conformément à l'onglet nutrition.
00
ES370788909.09.19_SLK: Texte mis à jour.
23/08/19_SLK:
1) remplacer "%AR" par "%IR" (x3) après le nom de chaque vitamine.
2) ajouter les valeurs pour les %AR des vitamines par 100 g.
TRADES 01
AL_NUTRI_N_AR1010NUTRITIONSECTION NUTRITION
FR3734207Servir frais. 10ES3707890Servir frío.TRADES 01AL_PREPA1111UTILISATIONSECTION UTILISATIONFR3734208Avant ouverture, conservez votre canette dans un endroit propre, frais et sec à l'abri de la lumière. A consommer de préférence avant fin : voir au bas de la canette. 10ES3707891Antes de abrir, conservar el envase en un lugar limpio, fresco y seco, resguardado de la luz. Consumir preferentemente antes del fin de: ver en la base de la lata.12/08/19: Texte mis à jour (remplacer "ver en la base del envase" par "ver en la base de la lata.")TRADES 01AL_CONSERV1212UTILISATIONSECTION UTILISATIONFR3734209Teneur élevée en caféine (17 mg/ 100ml). Boisson non recommandée aux enfants, aux personnes diabétiques ou sensibles à la caféine et aux femmes enceintes. A consommer avec modération, maximum une canette par jour. Il est déconseillé de consommer cette boisson avec de l'alcool. Il est déconseillé de consommer cette boisson dans la cadre d'une pratique sportive.

10
ES3707892Contenido elevado de cafeína (17 mg/ 100 ml). Bebida no recomendada para niños, personas diabéticas, personas sensibles a la cafeína y mujeres embarazadas. Consumir con moderación, máximo una lata al día. No se recomienda el consumo de esta bebida con alcohol. No se recomienda el consumo de esta bebida en el marco de una actividad deportiva.





12/08/19_SLK: Texte mis à jour
01/08/19_SLK: Nous vous rappelons que la mention «Contenido elevado de cafeína: No recomendado para niños ni mujeres embarazadas o en período de lactancia» doit figurer dans le même champ visuel que la dénomination de la boisson, suivie, entre parenthèses et conformément aux dispositions de l’article 13, paragraphe 1, du présent règlement, d’une référence à la teneur en caféine exprimée en mg pour 100 ml.
TRADES 01
AL_PRECAUTION1313UTILISATIONSECTION UTILISATION
FR3734210
10
ES3707893 01
AL_IDEE_RECET1414UTILISATIONSECTION UTILISATION
FR3734211logo ecoemballage + picto de tri
10
ES3707894 01
AL_LOGO_ECO1515EMBALLAGESECTION EMBALLAGE
FR3734212
10
ES3707895 00
AL_POIDS_NET1616POIDS_CONTENANCESECTION CONTENANCE
FR3734213
10
ES3707896 00
AL_POIDS_EGOUTTE1717POIDS_CONTENANCESECTION CONTENANCE
FR3734214
10
ES3707897 00
AL_CONTENANCE1818POIDS_CONTENANCESECTION CONTENANCE
FR373421525 cl eML 03/09/19 R1 : Merci d'écrire "cl" en minuscules 10ES370789825 cl eTRADES 01AL_POIDS_TOTAL1919POIDS_CONTENANCESECTION CONTENANCEFR3734216
10
ES3707899 01
AL_INFO_EMB2020POUR_LA_PLANETESECTION POUR LA PLANETE
FR3734217Interdis - TSA 91431 - 91343 MASSY Cedex - France 10ES3707900Interdis - TSA 91431 - 91343 MASSY Cedex - France
Centros Comerciales Carrefour, S.A.
C/ Campezo, 16 - 28022 MADRID - España
Tel.: 914 908 900
TRADES 01
AL_PAVE_SC2121AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR3734218
10
ES3707901 01
AL_ADRESSFRN2222AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR3734219
10
ES3707902 01
AL_EST_SANITAIRE2323AUTRE_INFO_CONSOSECTION AUTRES INFOS CONSOS
FR37342208714800018920 00ES37079038714800018920 01AL_CODE_EAN2424CODE_EANSECTION CODE EANFR3734221
10
ES3707904 01
AL_TXT_LIB_DOS2525AUT_MENT_MARKT_ASECTION AUTRES MENTIONS MARKETIN
FR3734222
10
ES3707905 01
AL_TXT_LIB_REG2626AUTRE_MENT_REGSECTION AUTRES MENTIONS REGLEMEN
FR3734223
10
ES3707906 01
AL_INFO_CONSERV2727PAVE_DATAGESECTION DATAGE
8421BOISSON ENERGISANTE LIGHT 25CLALISTD9572
\ No newline at end of file diff --git a/t/inputs/import_convert_carrefour_france/9572_8714800018920_valNut.xml b/t/inputs/import_convert_carrefour_france/9572_8714800018920_valNut.xml new file mode 100644 index 0000000000000..25fff5560bbc6 --- /dev/null +++ b/t/inputs/import_convert_carrefour_france/9572_8714800018920_valNut.xml @@ -0,0 +1 @@ +mlML100,00millilitreVALENERLABELESPREPAREDESmlML250,00millilitreVALENERLABELESPREPAREDESPORTIONESPORTIONSOITES 1cannetteARCOLESES4355875ENERKJ1EnergieENER kJKJO100,00Kilojoule27< 1kJKJO250,00Kilojoule68< 1ES4355876ENERKC2EnergieENER kcalE14100,00kilocalorie6< 1kcalE14250,00kilocalorie16< 1ES4355879FAMSCIS5NutrimentsNUT Chef ProduitgGR100,00gramme0gGR250,00gramme0ES4355880FAPUCIS6NutrimentsNUT Chef ProduitgGR100,00gramme0gGR250,00gramme0ES4355881CHOAVL7NutrimentsNUT Chef ProduitgGR100,00gramme1,0< 1gGR250,00gramme2,5< 1ES4355882SUGAR8NutrimentsNUT Chef ProduitgGR100,00gramme00gGR250,00gramme00ES4355883POLYL9NutrimentsNUT Chef ProduitgGR100,00gramme0gGR250,00gramme0ES4355884STARCH10NutrimentsNUT Chef ProduitgGR100,00gramme0gGR250,00gramme0ES4355885FIBTG11NutrimentsNUT Chef ProduitgGR100,00gramme0gGR250,00gramme0ES4355888SALTEQ14NutrimentsNUT Responsable QualitégGR100,00gramme0,153gGR250,00gramme0,386ES4355890ACL16NutrimentsNUT Chef ProduitgGR100,00gramme0gGR250,00gramme0ES4355892CHO18NutrimentsNUT Chef ProduitgGR100,00gramme0gGR250,00gramme0ES4355893AGO19NutrimentsNUT Chef ProduitgGR100,00gramme0gGR250,00gramme0ES4355894LACS20NutrimentsNUT Chef ProduitgGR100,00gramme0,00gGR250,00gramme0,00ES4355895VITA21VitaminesVIT Chef ProduitµgMC100,00microgramme00µgMC250,00microgramme00ES4355896VITD22VitaminesVIT Chef ProduitµgMC100,00microgramme00µgMC250,00microgramme00ES4355897VITE23VitaminesVIT Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355898VITK24VitaminesVIT Chef ProduitµgMC100,00microgramme00µgMC250,00microgramme00ES4355899VITC25VitaminesVIT Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355900THIA26VitaminesVIT Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355901RIBF27VitaminesVIT Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355902NIA28VitaminesVIT Chef ProduitmgME100,00milligramme8,754mgME250,00milligramme22136ES4355903VITB629VitaminesVIT Chef ProduitmgME100,00milligramme2,0143mgME250,00milligramme5,0357ES4355904FOLDFE30VitaminesVIT Chef ProduitµgMC100,00microgramme00µgMC250,00microgramme00ES4355905VITB1231VitaminesVIT Chef ProduitµgMC100,00microgramme2,080µgMC250,00microgramme5,0200ES4355906BIOT32VitaminesVIT Chef ProduitµgMC100,00microgramme00µgMC250,00microgramme00ES4355907PANTAC33VitaminesVIT Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355908CA34MinérauxMIN Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355909P35MinérauxMIN Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355910FE36MinérauxMIN Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355911MG37MinérauxMIN Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355912ZN38MinérauxMIN Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355913ID39MinérauxMIN Chef ProduitµgMC100,00microgramme00µgMC250,00microgramme00ES4355914K40MinérauxMIN Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355915CLD41MinérauxMIN Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355916CU42MinérauxMIN Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355917MN43MinérauxMIN Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355918FD44MinérauxMIN Chef ProduitmgME100,00milligramme00mgME250,00milligramme00ES4355919SE45MinérauxMIN Chef ProduitµgMC100,00microgramme00µgMC250,00microgramme00ES4355920CR46MinérauxMIN Chef ProduitµgMC100,00microgramme00µgMC250,00microgramme00ES4355921MO47MinérauxMIN Chef ProduitµgMC100,00microgramme00µgMC250,00microgramme00ES358903ES358903ES358903QTENEG1358903ES358904ES358904ES358904AR013358904COMPO4358905ES358906ES358906ES358906VARIEZ015358906FR366041PHRASETOPFR366042FR366043PHRASEBOTTOM7018BOISSON ENERGISANTE LIGHT 25CLTABNUTSTDVITMIN 9572 \ No newline at end of file