WooCommerce: Rabaty parytetu siły nabywczej (PPP)

Opublikowany: 2022-08-03

Od… dzisiaj kursy online Business Bloomer są dostępne dla każdego .

To niefortunne, że produkty cyfrowe (takie jak nasze kursy online WooCommerce) są wyceniane w dolarach USD, ale nie ma korekty dla krajów mniej uprzywilejowanych.

Szkoda, ponieważ treści powinny być dostępne dla WSZYSTKICH programistów WooCommerce na całym świecie, bez względu na ich poziom dochodów. Otrzymuję dziesiątki e-maili miesięcznie od niesamowitych ludzi, których tak naprawdę nie stać na kurs za 397 USD , ponieważ zarabiają tyle pieniędzy w 4 miesiące, jeśli mają szczęście.

Więc zmieńmy to. Na ratunek przychodzi parytet siły nabywczej (PPP).

PPP to specjalny miernik, który mówi nam o rzeczywistej „sile nabywczej” danego kraju. Weź koszyk identycznych towarów, zapłać w lokalnej walucie we własnym kraju; kupować te same przedmioty w USD w Stanach Zjednoczonych. Porównaj tę różnicę z rzeczywistym kursem wymiany. Teraz naprawdę masz pojęcie, ile kraj może sobie pozwolić na zapłacenie za ten koszyk towarów.

Porozmawiajmy prostym angielskim. Czy jesteś z Indii ? Możesz uzyskać do 75% zniżki na nasze kursy online. Czy jesteś z Republiki Południowej Afryki ? Może 59% zniżki! Czy jesteś z Argentyny ? 61% zniżki średnio. Czy jesteś z Norwegii ? Brak rabatu, przepraszam (wydaje się, że radzisz sobie lepiej niż w USA). I tak dalej…

W tym poście przejdę przez krótki przykład matematyczny PPP, aby dać ci trochę kontekstu, a następnie opowiem, jak zaimplementowałem zniżki PPP na tej samej stronie WooCommerce.

Chcesz mi pomóc przetestować funkcję rabatu PPP, która jest obecnie w wersji beta? Dodaj kurs do koszyka, np. CustomizeWoo PRO, wybierz kraj rozliczenia przy kasie i zostaw komentarz poniżej z rabatem, który otrzymałeś, jeśli taki masz.

Cieszyć się!

Dzięki dostosowaniom PPP Business Bloomer od dzisiaj klienci z Afganistanu otrzymają do 75% zniżki na kursy online premium.

Parytet siły nabywczej – matematyka

Przykład: w Stanach Zjednoczonych mogę kupić książkę „ WHATEVER ” za 10 USD . W Indiach, przy dzisiejszym kursie wymiany (1 USD = 78 INR ), cena powinna wynosić 780 INR …. ale tak nie jest, ponieważ Indie nie mają takiej samej siły nabywczej jak Stany Zjednoczone .

Jeśli ta sama książka „ WHATEVER ” w Indiach jest wyceniana na 300 INR , PPP jest równe 300 INR / 10 USD = 30. Widać, że istnieje ogromna różnica między rzeczywistym kursem walut (78) a wyliczonym PPP ( 30). To znaczy, że Indie mogą średnio kupić ten sam przedmiot za mniej dolarów, ponieważ nie stać ich na zapłacenie dokładnie przeliczonej kwoty.

Możemy teraz wykorzystać te 2 liczby, aby dojść do następującego wniosku: w Indiach ten artykuł za 10 USD można kupić w lokalnej walucie za 300 INR ; biorąc pod uwagę obecny kurs wymiany 78, oznacza to, że przedmiot za 10 USD można tam kupić za 300/78 = 3,84 USD

Krótko mówiąc, jeśli Indie mogą sobie pozwolić tylko na 3,84 USD na 10, produkty sprzedawane w Indiach przez firmę amerykańską w USD powinny być przecenione o 61,6%, aby były „uczciwe” i zgodne z PPP . Kurs za 100 USD powinien być wyceniony na 38,4 USD w Indiach.

Implementacja parytetu siły nabywczej WooCommerce

Zdecydowałem się wykryć kraj bezpośrednio na stronie kasy, po wybraniu kraju rozliczenia. Nie używam geolokalizacji, ponieważ jest wolniejsza, a także dlatego, że dzięki technologii VPN możesz nie wiedzieć, skąd pochodzi użytkownik.

Oto PHP, którego używam do dynamicznego odczytu kraju rozliczenia (kod 2-literowy) po załadowaniu/odświeżeniu kasy:

/**
 * @snippet       Get Billing Country @ WooCommerce Checkout
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 6
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

add_action( 'woocommerce_checkout_update_order_review', 'bbloomer_ppp' );

function bbloomer_ppp( $post_data ) {
   parse_str( $post_data, $output );
   if ( $output['billing_country'] ) {
      $country_code_2 = $output['billing_country'];
      // THEN, DO SOMETHING WITH COUNTRY CODE
   }
}

Gdy uzyskam kraj rozliczenia, dzieje się wiele rzeczy:

  1. Upewniam się, że kraj nie jest USA, ponieważ jego wartość PPP wynosi 1 z definicji.
  2. Upewniam się, że koszyk zawiera kategorię „kursy online”, w przeciwnym razie wychodzę.
  3. Otrzymuję kod waluty kraju (z samego WooCommerce).
  4. Dzwonię do bezpłatnego interfejsu API kursów walut (exchangerate.host) i otrzymuję kurs wymiany walut w stosunku do USD.
  5. Obliczam 3-literowy kod kraju, który jest potrzebny do punktu 6 (w przeciwieństwie do wersji 2-literowej). Odbywa się to poprzez wywołanie API Worldbank.
  6. Dzwonię do bezpłatnego API PPP (Worldbank) i otrzymuję wartość PPP dla kraju (obliczoną jako średnia wartość z ostatnich 5 lat).
  7. Rabat obliczam na podstawie wartości PPP (max 75%)

Oto PHP, którego używam do uzyskania kodu waluty, kursu wymiany i wartości PPP dla danego kraju rozliczeniowego WooCommerce:

/**
 * @snippet       Get Currency, Ex Rate & PPP By Billing Country
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 6
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

// GET CURRENCY CODE
$locale_info = include WC()->plugin_path() . '/i18n/locale-info.php';	
$currency = $locale_info[$output['billing_country']]['currency_code'];

// GET EXCHANGE RATE
$req_url = 'https://api.exchangerate.host/latest/?base=USD&symbols=' . $currency;
$response_json = file_get_contents( $req_url );
$response = json_decode( $response_json );
if ( $response->success === true ) {
	$exchange_rate = $response->rates->{$currency};
}

// GET COUNTRY PPP VALUE (AVERAGE FOR PREVIOUS 5 YEARS)
$ppp_url = 'https://api.worldbank.org/v2/country/' . $country_code_3 . '/indicator/PA.NUS.PRVT.PP?date=' . date( "Y", strtotime( "-5 years" ) ) . ':' . date( "Y", strtotime( "-1 year" ) ) . '&format=json';
$ppp = json_decode( file_get_contents( $ppp_url ), true );
$values = array();
foreach ( $ppp[1] as $key => $val ) {
	if ( $val['date'] && $val['value'] ) {
		$values[$val['date']] = (float) $val['value'];
	}
}
$avg_ppp = array_sum( $values ) / count( $values );

Na tym etapie pojawia się powiadomienie o kasie :

  • Jeśli nie istnieje wartość PPP dla tego kraju (Worldbank nie posiada danych dla każdego kraju), zapraszam klientów do kontaktu, ponieważ nie chcę, aby ktokolwiek był wykluczony z potencjalnych rabatów.
  • Jeśli istnieje wartość PPP, a kraj ma mniejszą siłę nabywczą, wyświetlam powiadomienie o zamówieniu z przyciskiem „Zastosuj kupon” od 1% do 75% (po kliknięciu następuje ponowne załadowanie zamówienia i zastosowanie rabatu).

Oto kod PHP, który wyświetla powiadomienie o kasie, gdy PPP nie jest puste, a zniżka wynosi od 1 do 75% :

/**
 * @snippet       Show Notice @ WooCommerce Checkout
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 6
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

$message = 'Your country is eligible for a ' . $discount . '% discount on courses! Read more about Purchasing Power Parity <a href="/woocommerce-purchasing-power-parity-discounts" target="_blank">here</a>. <a href="' . esc_url( add_query_arg( 'ppp', $discount, wc_get_checkout_url() ) ) . '" class="button wc-forward">Apply Discount</a>';
if ( ! WC()->cart->has_discount( $discount ) ) {
	wc_add_notice( $message, 'success' );
}

Kupony parytetu siły nabywczej WooCommerce

Oczywiście musiałem również zastanowić się nad tworzeniem kodów kuponów, ponieważ zdecydowałem się zachować opcjonalne rabaty PPP, tj. klienci muszą kliknąć, aby zastosować swój rabat . To dobra strategia – uważam – bo ktoś może nie chcieć skorzystać z rabatu (np . może jestem amerykańskim deweloperem mieszkającym w Indiach, więc faktycznie mam jedną z najwyższych wartości siły nabywczej ).

Dlatego musiałem:

  • generuj zbiorczo kody kuponów, po jednym dla każdej kwoty rabatu (fragment PHP już wkrótce)
  • automatycznie zastosuj kupon po kliknięciu przycisku „Zastosuj kupon” (fragment PHP dostępny wkrótce)
  • ukryj kody kuponów przy kasie, aby uniknąć udostępniania/nadużywania kuponów

I to jest to.

WooCommerce PPP jest teraz w wersji beta, już działa na stronie kasy Business Bloomer i możesz ją przetestować, dodając kurs do koszyka (np. tutaj jest bezpośredni link do dodania CustomizeWoo PRO do koszyka), wybierając kraj rozliczenia i czytając kasę powiadomienie z kwotą rabatu.

Często zadawane pytania dotyczące parytetu siły nabywczej WooCommerce

Rodolfo, mój kraj ma 49% zniżki, a nie 74% jak Indie?

Obliczenia opierają się na danych publicznych dostępnych w Internecie, więc nie bierz tego do siebie! Zrobiłem co w mojej mocy, biorąc pod uwagę średnią wartość PPP z ostatnich 5 lat. Jeśli nadal uważasz, że obliczenia nie są sprawiedliwe, opublikuj komentarz poniżej i porozmawiajmy. Nadal jesteśmy w fazie beta.

Rodolfo, co z oszustwami i złymi ludźmi?

Będą one zawsze częścią handlu online. Prawdopodobnie zamierzam skłonić niektórych ludzi do wejścia do losowych krajów rozliczeniowych, aby uzyskać zniżkę – ale wierzę, że ich zamówienia nie powiodą się, ponieważ PayPal/Stripe nie rozpoznają tego kraju. Jeśli to sprawdzenie się nie powiedzie, nie ma problemu. Transakcje te będą zdecydowanie mniejsze niż liczba ludzi na całym świecie, których teraz stać na moje kursy.

Rodolfo, dlaczego tylko kursy online?

Ponieważ pozostałe produkty/subskrypcje są poniżej 99 USD i nie mogę ich zdyskontować. To samo co doradztwo/rozwój WooCommerce – niestety podatki tutaj we Włoszech są wysokie i muszę trzymać się swojej stawki godzinowej.

Rodolfo, czy mogę otrzymać pełny kod PPP WooCommerce?

Daj mi kilka dni/tygodni. Wkrótce zostanie on zapakowany w mini-wtyczkę, dzięki czemu możesz zastosować to samo we własnym sklepie WooCommerce.

Rodolfo, jestem studentem i X miesięcy temu zapłaciłem pełną cenę w USD…

Znam Twój ból, ale pamiętaj, że masz dożywotni dostęp do filmów, a także dożywotnie wsparcie dla sprawy WooCommerce. Jeśli to nadal nie wystarcza, rozumiem. Skontaktuj się, a zobaczę, czy mogę pomóc.