Salah seorang rekan menanyakan apakah bisa seluruh produk yg telah dipublish di web woocommercenya diekstrak dan disimpan dalam sebuah file? Mengingat kalo mau dibuka satu per satu di browser dan copy url nya tentu tidak mungkin karena ada sekitar 10 ribu produk lebih.
OK, jadi ada cara cepat untuk keperluan di atas, hanya butuh hitungan menit maka semua produk akan tercopy url nya dalam sebuah file. Yaitu menggunakan sebuah script. Supaya bash script ini dapat dijalankan, kita perlu tahu dulu dua hal yaitu:
- Consumer key
- Consumer secret
Untuk mendapatkannya bisa login admin dahulu ke dashboard web woocommerce yg ingin di-fetching semua url produknya. Tepatnya di bagian Woocommerce > Settings > Advance > Rest API. Kalo belum ada langsung add key saja. Isikan yg perlu diisi lalu klik generate. Nanti key dan secret akan tertera dan bisa dicopy untuk dimasukkan saat mengeksekusi bash script di bawah ini.
#!/bin/bash
# Prompt for WooCommerce store details
read -p "Enter WooCommerce store URL (e.g., https://servers.id): " STORE_URL
read -p "Enter WooCommerce Consumer Key: " CONSUMER_KEY
read -p "Enter WooCommerce Consumer Secret: " CONSUMER_SECRET
# File to save the product URLs
OUTPUT_FILE="product_urls.txt"
# Function to fetch products
fetch_product_urls() {
page=1
per_page=100
> "$OUTPUT_FILE" # Clear the output file if it exists
while true; do
response=$(curl -s -X GET "$STORE_URL/wp-json/wc/v3/products?page=$page&per_page=$per_page" \
-u "$CONSUMER_KEY:$CONSUMER_SECRET")
products=$(echo "$response" | jq '. | length')
if [[ $products -eq 0 ]]; then
break
fi
echo "$response" | jq -r '.[] | .permalink' >> "$OUTPUT_FILE"
((page++))
done
}
# Fetch and save product URLs
fetch_product_urls
echo "Product URLs have been saved to $OUTPUT_FILE"
Save file tsb misalnya saja di /usr/bin/wooproduk
kemudian chmod +x
file tsb. Kalo udah maka bisa segera dijalankan dengan mengetik command wooproduk. Selanjutnya script ini akan meminta anda untuk mengisi URL woocommerce, consumer key dan secret sebelum diproses.
File outputnya nanti adalah product_urls.txt
dan bisa diliat dengan command cat atau didownload ke komputer dan lain sebagainya.