{"id":331095,"date":"2026-06-27T13:51:45","date_gmt":"2026-06-27T13:51:45","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vietnam-commerce-kit-for-woocommerce\/"},"modified":"2026-09-27T15:19:50","modified_gmt":"2026-09-27T15:19:50","slug":"yoohw-vietnam-store-tools","status":"publish","type":"plugin","link":"https:\/\/en-au.wordpress.org\/plugins\/yoohw-vietnam-store-tools\/","author":21137534,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.1.2","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Vietnam Store Toolkit for WooCommerce","header_author":"YoOhw Studio","header_description":"Vietnam store toolkit for WooCommerce address fields, checkout UX, VAT invoice requests, VietQR bank transfer, and phone normalization.","assets_banners_color":"c62602","last_updated":"2026-09-27 15:19:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/vietnamstore.org\/","header_author_uri":"https:\/\/yoohw.com","rating":0,"author_block_rating":0,"active_installs":20,"downloads":965,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"yoohw","date":"2026-06-27 13:51:24","revision":3588146},"1.0.1":{"tag":"1.0.1","author":"yoohw","date":"2026-06-28 14:47:12","revision":3588898},"1.0.2":{"tag":"1.0.2","author":"yoohw","date":"2026-07-16 04:24:58","revision":3609672},"1.1.0":{"tag":"1.1.0","author":"yoohw","date":"2026-07-18 01:28:22","revision":3612120},"1.1.1":{"tag":"1.1.1","author":"yoohw","date":"2026-07-26 03:12:58","revision":3622959},"1.1.2":{"tag":"1.1.2","author":"yoohw","date":"2026-08-02 01:31:55","revision":3631413},"1.1.3":{"tag":"1.1.3","author":"yoohw","date":"2026-08-14 15:32:35","revision":3647637},"1.1.4":{"tag":"1.1.4","author":"yoohw","date":"2026-08-22 07:03:26","revision":3660088},"1.1.5":{"tag":"1.1.5","author":"yoohw","date":"2026-08-31 00:40:29","revision":3673257},"1.1.6":{"tag":"1.1.6","author":"yoohw","date":"2026-09-08 02:54:59","revision":3685807},"1.2.0":{"tag":"1.2.0","author":"yoohw","date":"2026-09-27 15:19:50","revision":3715657}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3660088,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3660088,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3660088,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3660088,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"yoohw-vietnam-store-tools\/order-tracking":{"apiVersion":3,"name":"yoohw-vietnam-store-tools\/order-tracking","version":"1.2.0","title":"Vietnam Order Tracking","category":"woocommerce","icon":"location-alt","description":"Order lookup by order number and customer email or phone number.","textdomain":"yoohw-vietnam-store-tools","editorScript":"file:.\/index.js","supports":{"html":false}}},"tagged_versions":["1.0.0","1.0.1","1.0.2","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[232945,3546,39081,200631,286],"plugin_category":[45],"plugin_contributors":[223813,223812],"plugin_business_model":[],"class_list":["post-331095","plugin","type-plugin","status-publish","hentry","plugin_tags-checkout-blocks","plugin_tags-shipping","plugin_tags-vietnam","plugin_tags-vietqr","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-baonguyen0310","plugin_contributors-yoohw","plugin_committers-yoohw"],"banners":{"banner":"https:\/\/ps.w.org\/yoohw-vietnam-store-tools\/assets\/banner-772x250.png?rev=3660088","banner_2x":"https:\/\/ps.w.org\/yoohw-vietnam-store-tools\/assets\/banner-1544x500.png?rev=3660088","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/yoohw-vietnam-store-tools\/assets\/icon-128x128.png?rev=3660088","icon_2x":"https:\/\/ps.w.org\/yoohw-vietnam-store-tools\/assets\/icon-256x256.png?rev=3660088","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Vietnam Store Toolkit for WooCommerce adds Vietnam-specific checkout and address fields, payment and invoice tools, shipping and tracking, order operations, and guided migration. It works with WooCommerce's checkout, orders, and shipping flows.<\/p>\n\n<p>Learn more about the plugin on the <a href=\"https:\/\/vietnamstore.org\/\">official Vietnam Store Toolkit website<\/a>.<\/p>\n\n<h4>Official Links<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/vietnamstore.org\/\">Vietnam Store Toolkit Website<\/a> \u2014 overview and features.<\/li>\n<li><a href=\"https:\/\/vietnamstore.org\/documentation\/\">Documentation<\/a> \u2014 system requirements, configuration, and examples.<\/li>\n<li><a href=\"https:\/\/vietnamstore.org\/support\/\">Support<\/a> \u2014 official support resources and instructions for submitting requests.<\/li>\n<li><a href=\"https:\/\/github.com\/yoohwz\/yoohw-vietnam-store-tools\">Source Code and Development on GitHub<\/a> \u2014 view the code, report issues, suggest features, and submit pull requests.<\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/yoohw-vietnam-store-tools\/\">WordPress.org Release<\/a> \u2014 the official public installation source.<\/li>\n<li><a href=\"https:\/\/vietnamstore.org\/dia-chi-viet-nam-woocommerce\/\">Vietnamese Addresses for WooCommerce<\/a><\/li>\n<li><a href=\"https:\/\/vietnamstore.org\/vietqr-woocommerce\/\">VietQR for WooCommerce<\/a><\/li>\n<li><a href=\"https:\/\/vietnamstore.org\/hoa-don-gtgt-woocommerce\/\">VAT Invoices for WooCommerce<\/a><\/li>\n<li><a href=\"https:\/\/vietnamstore.org\/tracking-don-hang-woocommerce\/\">WooCommerce Order Tracking<\/a><\/li>\n<li><a href=\"https:\/\/vietnamstore.org\/classic-checkout-vs-checkout-blocks\/\">Classic Checkout vs. Checkout Blocks<\/a><\/li>\n<li><a href=\"https:\/\/vietnamstore.org\/chuyen-du-lieu-dia-chi-woocommerce\/\">WooCommerce Address Data Migration Guide<\/a><\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li>Two-tier Province\/City and Ward\/Commune addresses in Classic Checkout, Cart, and Checkout Blocks, with Store API support.<\/li>\n<li>Ward-level restrictions in native WooCommerce Shipping Zones.<\/li>\n<li>VietQR payment details for WooCommerce Direct bank transfer.<\/li>\n<li>Optional VND-to-USD conversion for compatible WooCommerce PayPal Payments checkouts using a merchant-set rate.<\/li>\n<li>Manual payment reconciliation that records evidence without automatically marking orders paid.<\/li>\n<li>VAT request fields and a provider-neutral electronic invoice handoff.<\/li>\n<li>Shipping fee rules for address, cart, weight, shipping class, free shipping, and COD conditions.<\/li>\n<li>Shipment details, a manual tracking timeline, and a customer order tracking page.<\/li>\n<li>HPOS-compatible order filters, bulk actions, and CSV exports.<\/li>\n<li>Store Health checks and guided migration of compatible legacy address and GHTK data.<\/li>\n<li>Vietnamese phone validation and localized interface, email, and validation messages.<\/li>\n<\/ul>\n\n<h4>Vietnamese Addresses and Checkout Blocks<\/h4>\n\n<p>The plugin stores province\/city codes in WooCommerce's <code>state<\/code> field and ward\/commune codes in its <code>city<\/code> field. It validates address combinations and hides the postcode when appropriate.<\/p>\n\n<p>The fields appear at checkout, in My Account and the cart, and in store, customer, and order addresses. In Cart and Checkout Blocks, the Ward\/Commune list follows the selected Province\/City through the Store API, including on custom block pages.<\/p>\n\n<h4>Payments, VietQR and Reconciliation<\/h4>\n\n<p>VietQR extends WooCommerce Direct bank transfer (<code>bacs<\/code>); it does not create a new gateway. QR images and transfer details can appear on order confirmation, in My Account, in emails, and in wp-admin. VietQR does not confirm bank transactions or mark an order paid.<\/p>\n\n<p>Staff can record transfer observations and references, then manually reconcile an exact order amount on the order screen. Payment Reconciliation retains evidence, history, and corrections. It does not complete WooCommerce payments, set a paid date or transaction ID, issue refunds, or change stock.<\/p>\n\n<p>Optional PayPal VND-to-USD conversion requires a compatible WooCommerce PayPal Payments setup and a merchant-entered VND-per-USD rate. The rate is locked for each payment attempt while the WooCommerce order remains in VND. Compatibility checks prevent conversion when the supported payment path is unavailable; this is not a general currency switcher.<\/p>\n\n<h4>VAT Requests and Electronic Invoices<\/h4>\n\n<p>When enabled under Vietnam store &gt; Core features, Classic Checkout and Checkout Blocks can collect company, tax, invoice email, and company address details. This is independent of WooCommerce tax calculation.<\/p>\n\n<p>The provider-neutral Electronic Invoice Handoff tracks status, provider references, document history, PDF\/XML files, and customer email handling. The plugin does not issue a legal electronic invoice or call an invoice provider API; issuance remains with your provider.<\/p>\n\n<h4>Shipping Fees and Order Tracking<\/h4>\n\n<p>Native WooCommerce Shipping Zones can be narrowed to one or more Vietnamese wards\/communes from the built-in Zone regions tree, where each ward\/commune is a child of its province\/city. Ward restrictions apply to every shipping method in that zone and work together with the zone's country, province\/city, and postcode regions. WooCommerce checks zones in their configured order, so place ward-specific zones above broader fallback zones.<\/p>\n\n<p>Deactivating the plugin removes ward narrowing: mixed zones fall back to their native country, province\/city, continent, and postcode regions, while ward-only zones stop matching until the plugin is active again. Toggling the separate Vietnamese address-field feature does not delete or disable saved ward restrictions.<\/p>\n\n<p>The \u201cShipping Fee Rules\u201d method works within WooCommerce Shipping Zones. Rules are evaluated from top to bottom and can be based on province\/city, ward\/commune, cart total, weight, shipping class, fee, free-shipping threshold, and COD. The editor supports sorting and UTF-8 CSV import\/export.<\/p>\n\n<p>The Shipping panel lets staff enter a carrier, tracking number, and tracking URL, send an email, and maintain a customer-facing timeline. Updates belong to the current shipment; stale actions from a replaced or cancelled shipment are rejected. Core manual tracking needs no carrier API. URL templates can create tracking links from <code>{tracking_code}<\/code>.<\/p>\n\n<p>Add the \u201cOrder Tracking\u201d block or <code>[yoohw_order_tracking]<\/code> shortcode to let customers look up orders using the order number together with their billing email address or phone number. Results do not display addresses, products, totals, or contact details.<\/p>\n\n<h4>Order Management and Store Health<\/h4>\n\n<p>The WooCommerce &gt; Orders screen has a compact Information column, relevant filters and bulk actions, and CSV exports. Staff can manage shipment and invoice handoffs there; Payment Reconciliation stays on the order screen. These tools support HPOS and legacy order storage.<\/p>\n\n<p>Store Health shows configuration readiness and lets staff explicitly scan legacy data. Opening it does not scan or migrate orders or customers. Migration starts only after a merchant action: scan, review the report, back up data, then synchronize compatible data in batches. Ambiguous data requires manual review.<\/p>\n\n<h4>Migration and Data<\/h4>\n\n<p>Migration tools support compatible legacy addresses and GHTK tracking data from Le Van Toan's plugin. Review the scan report before synchronizing.<\/p>\n\n<p>The 2026-07 administrative dataset is based on the National Statistics Office of Viet Nam through Vietnam Provinces API v2. The bank and BIN lists are based on the VietQR bank list API. Sources and update procedures are documented in <code>data\/SOURCES.md<\/code>.<\/p>\n\n<h4>External Services and Privacy<\/h4>\n\n<p>Source APIs are used only to build static data; the plugin does not call them at runtime. When VietQR is enabled, the browser or email client loads the QR image from VietQR.io by CASSO. The image URL may contain the BIN, account number, QR template, amount, transfer description, and account holder name.<\/p>\n\n<ul>\n<li>Service: https:\/\/vietqr.io\/<\/li>\n<li>Documentation: https:\/\/vietqr.io\/danh-sach-api\/link-tao-ma-nhan\/<\/li>\n<li>Terms: https:\/\/casso.vn\/thoa-thuan-su-dung-phan-mem\/<\/li>\n<li>Privacy: https:\/\/casso.vn\/chinh-sach-bao-mat-thong-tin\/<\/li>\n<\/ul>\n\n<p>Address, phone, invoice, and shipping data is stored in the store's WordPress\/WooCommerce installation. The plugin does not add analytics, advertising, or remote data collection services.<\/p>\n\n<p>The plugin stores no separate PayPal credentials. If conversion is enabled, the installed WooCommerce PayPal Payments extension continues to communicate with PayPal under its own configuration; this plugin participates in the guarded amount and currency conversion path.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Install and activate Vietnam Store Toolkit for WooCommerce.<\/li>\n<li>Review your selling locations, store address, and Vietnam store settings.<\/li>\n<li>Configure Direct bank transfer and VietQR if you use bank transfers.<\/li>\n<li>Configure PayPal conversion only with a compatible WooCommerce PayPal Payments setup.<\/li>\n<li>Enable invoice requests and configure shipping zones, fee rules, and tracking as needed.<\/li>\n<li>Open Store Health and run an explicit scan before migrating legacy data.<\/li>\n<\/ol>\n\n<p>See the <a href=\"https:\/\/vietnamstore.org\/documentation\/\">Documentation<\/a> for detailed setup.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20support%20cart%20and%20checkout%20blocks%3F\"><h3>Does the plugin support Cart and Checkout Blocks?<\/h3><\/dt>\n<dd><p>Yes. The plugin supports Province\/City and Ward\/Commune fields, VAT invoices, phone number validation, VietQR, and shipping information. WooCommerce 8.9 or later is required.<\/p><\/dd>\n<dt id=\"how%20does%20the%20plugin%20store%20vietnamese%20addresses%3F\"><h3>How does the plugin store Vietnamese addresses?<\/h3><\/dt>\n<dd><p>Province\/city codes are stored in WooCommerce's <code>state<\/code> field; ward\/commune\/special-zone codes are stored in its <code>city<\/code> field.<\/p><\/dd>\n<dt id=\"can%20customers%20request%20vat%20invoices%3F\"><h3>Can customers request VAT invoices?<\/h3><\/dt>\n<dd><p>Yes, when \u201cAccept invoice requests at checkout\u201d is enabled under Vietnam store &gt; Core features.<\/p><\/dd>\n<dt id=\"does%20vietqr%20automatically%20confirm%20payments%3F\"><h3>Does VietQR automatically confirm payments?<\/h3><\/dt>\n<dd><p>No. VietQR is added to Direct bank transfer but does not connect to bank transactions.<\/p><\/dd>\n<dt id=\"does%20payment%20reconciliation%20mark%20an%20order%20as%20paid%3F\"><h3>Does payment reconciliation mark an order as paid?<\/h3><\/dt>\n<dd><p>No. It records and reconciles payment evidence without completing the WooCommerce payment or changing its paid state.<\/p><\/dd>\n<dt id=\"does%20paypal%20vnd-to-usd%20conversion%20change%20the%20woocommerce%20order%20currency%3F\"><h3>Does PayPal VND-to-USD conversion change the WooCommerce order currency?<\/h3><\/dt>\n<dd><p>No. The order remains in VND; a compatible PayPal payment attempt uses the guarded USD conversion path.<\/p><\/dd>\n<dt id=\"does%20store%20health%20automatically%20scan%20or%20migrate%20my%20store%3F\"><h3>Does Store Health automatically scan or migrate my store?<\/h3><\/dt>\n<dd><p>No. Opening Store Health is safe; scanning and migration each require an explicit merchant action.<\/p><\/dd>\n<dt id=\"where%20do%20i%20configure%20shipping%20zones%20or%20fees%20at%20the%20ward%2Fcommune%20level%3F\"><h3>Where do I configure shipping zones or fees at the ward\/commune level?<\/h3><\/dt>\n<dd><p>Go to WooCommerce &gt; Settings &gt; Shipping and open a zone. In the native Zone regions tree, expand Vietnam and a Province \/ City, then select one or more Ward \/ Commune children to restrict every method in that zone. To calculate different fees with additional cart or product conditions, add \u201cShipping Fee Rules\u201d to the zone.<\/p><\/dd>\n<dt id=\"how%20do%20i%20create%20an%20order%20tracking%20page%3F\"><h3>How do I create an order tracking page?<\/h3><\/dt>\n<dd><p>Add the \u201cOrder Tracking\u201d block or <code>[yoohw_order_tracking]<\/code> shortcode to a page.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20include%20carrier%20api%20integrations%3F\"><h3>Does the plugin include carrier API integrations?<\/h3><\/dt>\n<dd><p>No. The public release provides API-free tracking and a framework for custom connectors.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20hpos%20and%20vietnamese%3F\"><h3>Does the plugin support HPOS and Vietnamese?<\/h3><\/dt>\n<dd><p>Yes. The plugin is HPOS-compatible and includes Vietnamese translations for the interface, emails, and validation messages.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0 (September 27, 2026)<\/h4>\n\n<ul>\n<li>New: Added optional VND-to-USD payment conversion for compatible WooCommerce PayPal Payments checkout flows, using a merchant-entered rate locked to each payment attempt and guarded compatibility checks.<\/li>\n<li>New: Added manual payment reconciliation on the order screen to record observations, match exact order amounts, review evidence, and correct entries without automatically marking orders paid.<\/li>\n<li>New: Added a Store health dashboard and a guided assistant to scan, back up, and batch-migrate compatible legacy address and GHTK tracking data.<\/li>\n<li>New: Expanded the provider-neutral electronic invoice handoff with revision-guarded updates, document history, provider references, and clearer order administration and email details; invoice issuance remains external.<\/li>\n<li>Improve: Protected shipment and tracking updates with shipment identity and stale-action checks, preserving the current shipment and its timeline across order instances and cancellations.<\/li>\n<li>Improve: Refined order information layout and compacted the payment reconciliation controls in a side metabox; improved BACS\/VietQR transfer details and copy behavior.<\/li>\n<li>Compatibility: Filled missing Vietnamese translation keys from bundled catalogs while retaining WordPress language-pack priority, and refined the Vietnamese Store health label.<\/li>\n<li>Developer: Expanded payment, shipment, and electronic-invoice extension contracts and strengthened release, checkout, localization, and HPOS validation.<\/li>\n<\/ul>\n\n<p>See <code>changelog.txt<\/code> for the complete change history.<\/p>","raw_excerpt":"A Vietnam-focused WooCommerce toolkit for addresses, payments, invoices, shipping, tracking, and store operations.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/en-au.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/331095","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/en-au.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/en-au.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/en-au.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=331095"}],"author":[{"embeddable":true,"href":"https:\/\/en-au.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/yoohw"}],"wp:attachment":[{"href":"https:\/\/en-au.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=331095"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/en-au.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=331095"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/en-au.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=331095"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/en-au.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=331095"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/en-au.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=331095"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/en-au.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=331095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}