WooCommerce থেকে WhatsApp-এ অর্ডার আপডেট পাঠান
অর্ডার ইভেন্টের জন্য WooCommerce-এ একটি ওয়েবহুক তৈরি করুন, যা একটি রিসিভারে পাঠাবে, যেমন n8n ওয়ার্কফ্লো বা ছোট একটি PHP রুট। রিসিভার WooCommerce-এর সিগনেচার যাচাই করে, গ্রাহক WhatsApp মেসেজে সম্মতি দিয়েছেন কি না দেখে, এবং সংযুক্ত নম্বরের phone_number_id ও টোকেন দিয়ে Cloud API-র মাধ্যমে একটি অনুমোদিত টেমপ্লেট পাঠায়।
টানা পাঁচবারের বেশি ডেলিভারি ব্যর্থ হলে WooCommerce ওয়েবহুকটি নিষ্ক্রিয় করে দেয়।
পেলোডের base64 এনকোড করা HMAC-SHA256 বহনকারী হেডার, যা ওয়েবহুকের সিক্রেট দিয়ে তৈরি।
কাস্টমার সার্ভিস উইন্ডোর বাইরে শুধু আগে থেকে অনুমোদিত টেমপ্লেট মেসেজ পাঠানো যায়।
WooCommerce-এর অর্ডার কীভাবে WhatsApp মেসেজ চালু করে?
একটি WooCommerce ওয়েবহুক ও একটি রিসিভারের মাধ্যমে। WooCommerce-এ সেটিংস, অ্যাডভান্সড, ওয়েবহুক অংশে গিয়ে অর্ডার টপিকসহ একটি ওয়েবহুক যোগ করুন, যেমন order created বা order updated, সঙ্গে একটি ডেলিভারি URL ও একটি সিক্রেট। এরপর ইভেন্ট ঘটলেই WooCommerce অর্ডারটি JSON আকারে ওই URL-এ পোস্ট করে।
পেলোডের কাঠামো নির্দিষ্ট, তাই এটি সরাসরি Cloud API-তে পাঠানো যায় না। মাঝখানে একটি রিসিভার থাকে: n8n-এর ওয়েবহুক নোড, স্টোরের নিজস্ব PHP-র একটি রুট, বা যেকোনো ছোট সার্ভিস। এটি অর্ডার পড়ে, গ্রাহকের ফোন নম্বর ও মেসেজের জন্য দরকারি তথ্য বেছে নেয়, এবং সংযুক্ত নম্বরের জন্য Cloud API-র মেসেজ এন্ডপয়েন্টে একটি HTTPS রিকোয়েস্ট পাঠায়, যেখানে নম্বরের অ্যাক্সেস টোকেন বিয়ারার টোকেন হিসেবে থাকে।
order.updated টপিক কোনো একটি স্ট্যাটাসে সীমাবদ্ধ নয়, তাই রিসিভারের উচিত অর্ডারের `status` ফিল্ড পড়ে, যে পরিবর্তনগুলো দরকার তার প্রতিটির জন্য একবার করে মেসেজ পাঠানো। WooCommerce ডিফল্টভাবে wp-cron দিয়ে ব্যাকগ্রাউন্ডে ডেলিভারি করে, তাই অর্ডারের পর মেসেজ আসতে সামান্য দেরি হতে পারে।
রিসিভার কীভাবে বুঝবে রিকোয়েস্টটি স্টোর থেকেই এসেছে?
WooCommerce-এর সিগনেচার থেকে। প্রতিটি ডেলিভারিতে একটি X-WC-Webhook-Signature হেডার থাকে, যা ওয়েবহুকে আপনার দেওয়া সিক্রেট দিয়ে হিসাব করা মূল পেলোডের base64 এনকোড করা HMAC-SHA256। রিসিভার প্রাপ্ত বডির ওপর একই হ্যাশ হিসাব করে মেলায়, আর না মিললে বাতিল করে দেয়।
এটি স্টোরের নিজস্ব সিক্রেট, তাই WhatsApp-এ আসা মেসেজে Meta-র সিগনেচারের মতো নয়, এটি যাচাই করা যায়। নির্দিষ্ট-সময়ের (constant-time) তুলনা ব্যবহার করুন, এবং কোনো ফ্রেমওয়ার্ক পার্স করার আগেই মূল বডির হ্যাশ নিন, কারণ JSON নতুন করে এনকোড করলে হ্যাশ আলাদা হয়ে যায়।
দ্রুত 2xx দিয়ে সাড়া দিন। 2xx, 301 বা 302 ছাড়া যেকোনো প্রতিক্রিয়া WooCommerce ব্যর্থতা গণ্য করে, এবং টানা পাঁচবারের বেশি ব্যর্থ হলে ওয়েবহুক নিষ্ক্রিয় করে দেয়। ডিপ্লয়ের সময় রিসিভার বন্ধ থাকলে, বা উত্তর দেওয়ার আগে Meta-র জন্য অপেক্ষা করে ধীর হলে, কেউ টের না পেয়েই স্টোরের মেসেজ বন্ধ হয়ে যেতে পারে।
স্টোর কী পাঠাতে পারে, আর কখন?
স্টোর প্রথমে লিখলে প্রতিবার একটি অনুমোদিত টেমপ্লেট। Meta-র 24 ঘণ্টার কাস্টমার সার্ভিস উইন্ডো খোলে কেবল গ্রাহক নম্বরে মেসেজ করলে, তাই অর্ডার কনফার্মেশন বা শিপিং আপডেট ব্যবসার শুরু করা মেসেজ, আর ফ্রি টেক্সট প্রত্যাখ্যান করা হয়। প্রতিটি আপডেটের জন্য একটি ইউটিলিটি টেমপ্লেট তৈরি করুন, অনুমোদনের অপেক্ষা করুন, তারপর নাম ও ভাষা দিয়ে পাঠান, অর্ডার নম্বর ও অন্য তথ্য প্যারামিটার হিসেবে দিয়ে।
Meta অপ্ট-ইনও চায়: গ্রাহক নিজের নম্বর দিয়েছেন এবং এই ব্যবসার কাছ থেকে WhatsApp-এ মেসেজ পেতে সম্মত হয়েছেন। চেকআউটে অর্ডারে সংরক্ষিত একটি চেকবক্সই এর সবচেয়ে সহজ রেকর্ড, আর পাঠানোর আগে রিসিভারের তা যাচাই করা উচিত।
গ্রাহক উত্তর দিলে কথোপকথন সাধারণ Coexistence-এর মতোই চলে। উত্তরটি স্টোরের ফোনের WhatsApp Business অ্যাপে আসে, ফ্রি টেক্সটের জন্য উইন্ডো খোলা থাকে, এবং টিম আগের মতোই অ্যাপ থেকে উত্তর দেয়।
সাধারণ ভুলগুলো
- WooCommerce-কে সাড়া দেওয়ার আগে Cloud API কল করা। ধীর বা ব্যর্থ পাঠানো ওয়েবহুকের বিপক্ষে গণ্য হয়, আর পাঁচবারের বেশি ব্যর্থ হলে সেটি নিষ্ক্রিয় হয়ে যায়।
- মূল বডির বদলে পার্স করা JSON হ্যাশ করা। সিগনেচার কখনো মেলে না, আর প্রতিটি আসল ডেলিভারি বাতিল হয়ে যায়।
- প্রতিটি order.updated ডেলিভারিতে মেসেজ পাঠানো। টপিকটি একটি স্ট্যাটাসে সীমাবদ্ধ নয়, তাই কোন পরিবর্তনের মেসেজ আগেই গেছে তা ট্র্যাক না করলে গ্রাহকরা ডুপ্লিকেট মেসেজ পান।
easycoexistence.com-এ স্টোরের নম্বর সংযুক্ত করুন এবং ড্যাশবোর্ড থেকে রিসিভারকে এর phone_number_id ও টোকেন দিন। প্রতি নম্বরে মাসে US$ 9 থেকে শুরু, নম্বর যত বাড়বে US$ 1 পর্যন্ত নেমে আসে, প্রথম 3 দিন ফ্রি।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
এর জন্য কি WordPress প্লাগইন লাগবে?
না। WooCommerce-এর বিল্ট-ইন ওয়েবহুক আর একটি রিসিভারই যথেষ্ট, আর রিসিভার একই PHP অ্যাপ্লিকেশনের একটি রুটও হতে পারে।
অর্ডার মেসেজের খরচ কে দেয়?
Meta মেসেজিংয়ের বিল সরাসরি ব্যবসার নিজের WhatsApp Business অ্যাকাউন্টে করে, আর EasyCoexistence কখনো তাতে মার্কআপ যোগ করে না।
টিম কি এখনও ফোন ব্যবহার করতে পারবে?
হ্যাঁ। Coexistence স্টোরের নম্বরে WhatsApp Business অ্যাপ চালু রাখে, আর স্টোরের পাঠানো টেমপ্লেট থ্রেডে দেখা যায়।
ওয়েবহুক নিষ্ক্রিয় হয়ে গেলে কী করব?
রিসিভার ঠিক করুন, তারপর WooCommerce-এ ওয়েবহুকের স্ট্যাটাস আবার সক্রিয় করুন। বন্ধ থাকার সময় তৈরি হওয়া অর্ডারে মেসেজ যায়নি।
আরও পড়ুন
শুরু করতে প্রস্তুত?
মাস নয়, কয়েক মিনিটেই WhatsApp Coexistence সেট আপ করুন। ফোনে অ্যাপটি কাজ করতে থাকে।
ফ্রি ট্রায়াল শুরু করুনযাচাই করা হয়েছে