Podczas generowania kanałów XML dla Google, Facebook, Bing i Pinterest, 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 i Pinterest Catalogs. 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
- Zainstalowany i aktywny Product Feed Pro lub Product Feed Elite
- Zainstalowany i skonfigurowany WooCommerce z walutą Twojego sklepu
- Przynajmniej jeden kanał produktu skonfigurowany dla Google, Facebook, Bing lub Pinterest
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 i Pinterest 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 cztery platformy zgadzają 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 i Pinterest wymagają tego formatu
Podczas przesyłania kanałów produktów do Google Merchant Center, Facebook Catalog, Microsoft Bing Shopping lub Pinterest Catalogs, 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 i Pinterest odrzucają kanały, które nie są zgodne z ich wymaganym formatowaniem. Zobacz oficjalną dokumentację dla każdej platformy: Google, Facebook, Bing, Pinterest.
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 |
Uwaga: formaty regionalne w lewej kolumnie nie są same w sobie błędne. Są one doskonale poprawne w wielu krajach. Po prostu nie są akceptowane przez Google, Facebook, Bing i Pinterest, których parsery kanałów wymagają formatu kropka-dziesiętna pokazanego po prawej stronie.
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ą poprawne formatowanie dla wszystkich kanałów Google, Facebook, Bing i Pinterest. 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 PHP, aby nadpisać domyślne zachowanie.
Uwaga: Jest to dostosowanie na poziomie dewelopera. Pomoc techniczna nie jest dostępna w przypadku problemów wynikających z zastosowania tych fragmentów, dlatego postępuj ostrożnie, jeśli czujesz się komfortowo edytując plik functions.php swojego motywu lub używając wtyczki do fragmentów kodu, takiej jak WPCode.
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 pomocą wtyczki WPCode. Wymusza on na wszystkich Twoich kanałach i szablonach używanie preferowanych separatorów za pomocą filtra adt_product_feed_localize_price_args. Dla europejskiego formatowania regionalnego fragment musi ustawić 'decimal' => ',' i 'thousand' => '.':
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:
Na przykład, kompletny fragment do usunięcia wymaganego formatowania tylko dla kanałów Google:
Po dodaniu fragmentów odśwież swoje kanały. Wynik będzie odzwierciedlał Twoje preferencje dotyczące separatorów regionalnych:

Często zadawane pytania
Czy Product Feed Pro stosuje to formatowanie do wszystkich typów kanałów, czy tylko do Google, Facebook, Bing i Pinterest?
To formatowanie jest stosowane specjalnie do szablonów kanałów Google, Facebook, Bing i Pinterest, ponieważ te platformy wyraźnie tego wymagają. Inne typy kanałów są zgodne z ustawieniami waluty WooCommerce, chyba że skonfigurujesz dodatkowe nadpisy.
Mój kanał został odrzucony z powodu błędu formatowania ceny. Co powinienem sprawdzić najpierw?
Najpierw potwierdź, że Product Feed Pro generuje ceny z kropką jako separatorem dziesiętnym, bez separatora tysięcy i z trzyliterowym kodem waluty (np. 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.
Czy to formatowanie wpłynie na ceny wyświetlane na mojej stronie głównej?
Nie. To formatowanie dotyczy tylko wyników kanałów XML wysyłanych do Google, Facebook, Bing i Pinterest. Ceny na Twojej stronie głównej nadal będą wyświetlane przy użyciu ustawień formatowania waluty WooCommerce.
Używam waluty bez miejsc dziesiętnych (np. JPY). Jak jest to obsługiwane?
Dla kanałów Google, Facebook, Bing i Pinterest ceny są zawsze formatowane z dwoma miejscami dziesiętnymi, niezależnie od ustawień dziesiętnych WooCommerce. Cena 1500 jenów japońskich jest przesyłana jako 1500.00 JPY, a nie 1500 JPY. Jest to wymuszane przez wtyczkę, aby spełnić wymagania platformy.
Zastosowałem fragmenty separatorów regionalnych, ale mój kanał nadal pokazuje standardowy format. Dlaczego?
Upewnij się, że dodałeś oba fragmenty: pierwszy ustawia preferowane separatory za pomocą adt_product_feed_localize_price_args (z 'decimal' => ',' i 'thousand' => '.' dla europejskiego formatowania), a drugi usuwa konkretną platformę z listy egzekwowania 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.
Czy mogę zastosować regionalne separatory tylko do jednej platformy i zachować standardowy format dla pozostałych?
Tak. Filtr adt_pfp_localize_price_iso4217_feeds pozwala na niezależne usuwanie poszczególnych platform (Google, Facebook, Bing lub Pinterest) z listy egzekwowania. Po prostu dołącz fragment tylko dla platformy, którą chcesz nadpisać, a pozostałe pomiń.
Jak odświeżyć kanał po wprowadzeniu zmian?
Przejdź do Kanały produktów → Zarządzaj kanałami, zlokalizuj kanał, który chcesz wygenerować ponownie, i kliknij Odśwież kanał. Plik kanału zostanie odbudowany przy użyciu bieżących ustawień wtyczki i wszelkich aktywnych fragmentów.
Czy to ustawienie wpływa tak samo na ceny promocyjne i regularne?
Tak. Formatowanie jest stosowane konsekwentnie do wszystkich pól cenowych przesyłanych w kanale, w tym cen regularnych, cen promocyjnych i wszelkich niestandardowych atrybutów cenowych zmapowanych w szablonie kanału.
Co się stanie, jeśli WooCommerce będzie skonfigurowany do wyświetlania cen bez dziesiętnych?
Dla kanałów Google, Facebook, Bing i Pinterest wtyczka zawsze wyprowadza ceny z dwoma miejscami po przecinku. Ustawienia dziesiętne WooCommerce nie są stosowane do tych wymuszonych kanałów. Na przykład cena 1500 będzie wyglądać jako 1500.00 w kanale, niezależnie od tego, jak WooCommerce jest skonfigurowany do jej wyświetlania na Twojej stronie.
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.

