Podczas generowania kanałów XML dla Google, Facebook, Bing, Pinterest i TikTok, wartości walut muszą być poprawnie sformatowane, aby zapewnić ich przetwarzanie bez błędów. Te platformy wymagają, aby ceny używały kropki jako separatora dziesiętnego, bez separatorów tysięcy i trójliterowych kodów walut. Kody walut są zdefiniowane przez ISO 4217, podczas gdy zasady dotyczące separatorów pochodzą ze specyfikacji kanału każdej platformy.
Przesyłanie kanałów, które nie spełniają tych wymagań formatowania platformy, spowoduje odrzucenie kanału lub nieprawidłowe parsowanie cen w Google Merchant Center, Facebook Catalog, Microsoft Bing Shopping, Pinterest Catalogs i TikTok Product Catalog. Product Feed Pro i Product Feed Elite automatycznie obsługują to formatowanie dla wszystkich tych platform.
Jeśli potrzebujesz użyć regionalnych separatorów zamiast tego formatu, dostępna jest obejście na poziomie dewelopera przy użyciu fragmentów PHP. Zobacz sekcję Używanie regionalnych separatorów poniżej. Należy pamiętać, że to podejście nie jest wspierane.
Wymagania
| Wymaganie | Szczegóły |
|---|---|
| Wtyczka | Product Feed Pro lub Product Feed Elite zainstalowane i aktywne |
| WooCommerce | Zainstalowany i skonfigurowany z walutą sklepu |
| Kanał produktu | Przynajmniej jeden kanał skonfigurowany dla Google, Facebook, Bing, Pinterest lub TikTok |
Zrozumienie ISO 4217 i zasad formatowania kanałów
ISO 4217 to międzynarodowy standard kodów walut. Definiuje trójliterowe kody używane do identyfikacji walut w systemach finansowych i handlowych, takie jak USD dla dolara amerykańskiego, EUR dla euro i JPY dla japońskiego jena. Google, Facebook, Bing, Pinterest i TikTok wymagają tych kodów walut ISO 4217 w zgłoszeniach kanałów produktów.
Zasady dotyczące separatorów dziesiętnych i tysięcy nie są częścią ISO 4217. Pochodzą one z własnej specyfikacji kanału każdej platformy, chociaż wszystkie pięć platform zgadza się co do tych samych wymagań:
- Separator dziesiętny: Kropka (
.) musi być używana dla wartości dziesiętnych. - Separatory tysięcy: Nie używane. Pominięcie ich zapobiega błędom parsowania.
- Kody walut: Trójliterowy kod ISO 4217 (np.
USD,EUR,JPY) jest dodawany do wartości ceny.
Dlaczego Google, Facebook, Bing, Pinterest i TikTok wymagają tego formatu
Podczas przesyłania kanałów produktów do Google Merchant Center, Facebook Catalog, Microsoft Bing Shopping, Pinterest Catalogs lub TikTok Product Catalog, wartości walut muszą być zgodne z tymi zasadami formatowania, aby uniknąć błędów kanału. Te platformy egzekwują jednolity standard, ponieważ:
- Zapobiega błędnej interpretacji danych: Niektóre kraje używają przecinków (
,) jako separatorów dziesiętnych i kropek (.) dla tysięcy (np.1.000,50zamiast1,000.50). Bez standaryzacji prowadzi to do nieprawidłowego parsowania cen. - Zapewnia spójność: Wymagając tego samego formatu dziesiętnego (
.), platformy mogą dokładnie interpretować wartości cenowe niezależnie od różnic regionalnych. - Obowiązkowa zgodność kanału: Google, Facebook, Bing, Pinterest i TikTok odrzucają kanały, które nie są zgodne z wymaganym formatowaniem. Zobacz oficjalną dokumentację dla każdej platformy: Google, Facebook, Bing, Pinterest, TikTok.
Jak Product Feed Pro obsługuje to formatowanie
Product Feed Pro i Product Feed Elite automatycznie formatują ceny w kanałach XML, aby spełnić wymagania tych platform. Nie musisz nic konfigurować. Wtyczka obsługuje to domyślnie:
- Ceny są zawsze formatowane przy użyciu kropki (
.) jako separatora dziesiętnego. - Separatory tysięcy nie są uwzględniane, aby zapobiec problemom z parsowaniem.
- Poprawny trzyznakowy kod waluty (np.
USD,GBP,EUR) jest dodawany do wartości cenowych, odczytywany z ustawienia waluty sklepu WooCommerce (get_woocommerce_currency()).
Na przykład:
| Format regionalny (nieakceptowany przez te kanały) | Wymagany format kanału |
|---|---|
| 1.234,56 EUR | 1234,56 EUR |
| 10.500,99 USD | 10500,99 USD |
| 5.000,75 GBP | 5000,75 GBP |
Częste problemy i rozwiązania
Jeśli Twój kanał zostanie odrzucony z powodu błędów formatowania waluty, sprawdź:
- Nieprawidłowe separatory dziesiętne: użyj
.zamiast, - Użycie separatorów tysięcy: usuń je całkowicie
- Brak kodów walut: upewnij się, że ceny zawierają prawidłowy trzyznakowy kod
Używanie separatorów regionalnych zamiast wymaganego formatu
Domyślnie Product Feed Pro i Product Feed Elite wymuszają prawidłowe formatowanie dla wszystkich kanałów Google, Facebook, Bing, Pinterest i TikTok. Jednak jeśli Twój sklep używa regionalnego formatowania liczb (na przykład kropki jako separatora tysięcy i przecinka jako separatora dziesiętnego) i potrzebujesz, aby Twoje kanały to odzwierciedlały, możesz użyć poniższych fragmentów kodu PHP, aby nadpisać domyślne zachowanie.
Po pierwsze, upewnij się, że opcje waluty WooCommerce odpowiadają Twoim preferencjom. Przejdź do WooCommerce → Ustawienia → Ogólne i przewiń do sekcji Opcje waluty. Dla europejskiego formatowania regionalnego ustaw separator tysięcy na kropkę (.), a separator dziesiętny na przecinek (,).

Następnie dodaj następujący fragment do swojego pliku functions.php lub za pośrednictwem wtyczki WPCode. Wymusza on na wszystkich Twoich kanałach i szablonach używanie preferowanych separatorów za pomocą filtru adt_product_feed_localize_price_args. Dla europejskiego formatowania regionalnego fragment musi ustawić 'decimal_separator' => ',' i 'thousand_separator' => '.':
add_filter('adt_product_feed_localize_price_args', function($args) {
$args['decimal_separator'] = ',';
$args['thousand_separator'] = '.';
return $args;
});
Następnie dodaj jeden lub więcej z poniższych fragmentów, aby usunąć wymagane formatowanie dla określonych platform za pomocą filtra adt_pfp_localize_price_iso4217_feeds:
// Google feeds
add_filter('adt_pfp_localize_price_iso4217_feeds', function($feeds) {
return array_filter($feeds, function($feed) {
return strpos($feed, 'google_') !== 0;
});
});
// Facebook feeds
add_filter('adt_pfp_localize_price_iso4217_feeds', function($feeds) {
return array_filter($feeds, function($feed) {
return strpos($feed, 'facebook_') !== 0;
});
});
// Bing feeds
add_filter('adt_pfp_localize_price_iso4217_feeds', function($feeds) {
return array_filter($feeds, function($feed) {
return strpos($feed, 'bing_') !== 0;
});
});
// Pinterest feeds
add_filter('adt_pfp_localize_price_iso4217_feeds', function($feeds) {
return array_filter($feeds, function($feed) {
return $feed !== 'pinterest';
});
});
// TikTok feeds
add_filter('adt_pfp_localize_price_iso4217_feeds', function($feeds) {
return array_filter($feeds, function($feed) {
return $feed !== 'tiktok';
});
});
Na przykład, kompletny fragment do usunięcia wymaganego formatowania tylko dla kanałów Google:
add_filter('adt_product_feed_localize_price_args', function($args) {
$args['decimal_separator'] = ',';
$args['thousand_separator'] = '.';
return $args;
});
add_filter('adt_pfp_localize_price_iso4217_feeds', function($feeds) {
return array_filter($feeds, function($feed) {
return strpos($feed, 'google_') !== 0;
});
});
Po dodaniu fragmentów odśwież swoje kanały. Wynik będzie odzwierciedlał Twoje preferencje dotyczące separatorów regionalnych:

Często zadawane pytania
1234.56 USD). Jeśli kanał wygląda poprawnie, sprawdź, czy nie zastosowałeś żadnych fragmentów separatorów regionalnych, które mogłyby nadpisywać wynik. Zweryfikuj również, czy ustawienia waluty WooCommerce odpowiadają zamierzonemu wynikowi.1500.00 JPY, a nie 1500 JPY. Jest to wymuszane przez wtyczkę w celu spełnienia wymagań platformy.adt_product_feed_localize_price_args (z 'decimal_separator' => ',' i 'thousand_separator' => '.' dla formatowania europejskiego), a drugi usuwa konkretną platformę z listy wymuszania za pomocą adt_pfp_localize_price_iso4217_feeds. Upewnij się również, że odświeżyłeś dotknięty kanał po zapisaniu fragmentów, ponieważ kanały są buforowane i nie zostaną zaktualizowane, dopóki nie zostaną wygenerowane ponownie.adt_pfp_localize_price_iso4217_feeds pozwala na niezależne usunięcie poszczególnych platform (Google, Facebook, Bing, Pinterest lub TikTok) z listy wymuszania. Po prostu uwzględnij tylko blok filtru dla platformy, którą chcesz nadpisać, a pozostałe pomiń.1500.00 w kanale, niezależnie od tego, jak WooCommerce jest skonfigurowany do jej wyświetlania w Twoim sklepie.Pomoc i wsparcie
Jeśli potrzebujesz dalszej pomocy z formatowaniem waluty w kanałach produktów, skontaktuj się z zespołem wsparcia, otwierając zgłoszenie pomocy technicznej.
Należy pamiętać, że system zgłoszeń jest wyłącznie dla użytkowników Product Feed Elite.
Jeśli używasz tylko wtyczki Product Feed Pro, możesz otworzyć nowy temat na forum WordPress.org.

