{"id":10636,"date":"2026-05-18T06:30:07","date_gmt":"2026-05-17T22:30:07","guid":{"rendered":"https:\/\/aeosub.com\/precision-live-rates-for-woocommerce\/"},"modified":"2026-05-18T06:30:07","modified_gmt":"2026-05-17T22:30:07","slug":"precision-live-rates-for-woocommerce","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/precision-live-rates-for-woocommerce\/","title":{"rendered":"Precision Live Rates for WooCommerce"},"content":{"rendered":"<div class=\"post-img\" style=\"margin-bottom: 25px\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/precision-live-rates-for-woocommerce\/assets\/banner-1544x500.png?rev=3534890\" alt=\"Precision Live Rates for WooCommerce\" style=\"width: 100%;height: auto;border-radius: 12px\"><\/div>\n<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/precision-live-rates-for-woocommerce\/assets\/icon-256x256.png?rev=3534890\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/sulemanshahjahan\/\" target=\"_blank\" rel=\"noopener\">sulemanshahjahan<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v0.2.39<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">6.4 \/ 6.9.4<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-17 10:04pm GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/precision-live-rates-for-woocommerce\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Live UPS, USPS, FedEx, DHL, Stamps.com rates via ShipEngine. Deterministic 3D bin-packing. Cart=checkout, byte-identical.<\/div>\n<p><strong>Precision Live Rates<\/strong> brings real, account-accurate UPS, USPS, FedEx, DHL, and Stamps.com prices into WooCommerce&#8217;s cart and checkout. No flat-rate guesswork, no aggregator markups bolted on top of the carrier rate, no rate drift between cart and checkout. The numbers your customers see are the same numbers you&#8217;d see on the carrier dashboard for the same parcel.<\/p>\n<p>Under the hood, the plugin packs each cart into the smallest viable parcel using a true 3D bin-packing algorithm (volume-then-SKU-then-product-id deterministic sort, ships-alone overrides honored, custom-packed dimensions for soft goods supported), POSTs the parcel to ShipEngine over HTTPS, dedupes the rate response by carrier+service, and caches the result on your server so identical carts don&#8217;t trigger redundant API calls. The same <code>RateService::quote()<\/code> entry point feeds Classic Checkout, Blocks Checkout, and the WP-CLI <code>wp precision-rates test-rate<\/code> command \u2014 so cart, checkout, and your terminal all return byte-identical rates within the cache TTL.<\/p>\n<p>The diagnostic surface is built for real-world support load. The Rate Test admin screen captures every quote attempt&#8217;s full request and response from ShipEngine into a 1-hour transient and surfaces it inline (collapsible, color-coded by HTTP status) so when a customer reports &#8220;no shipping options,&#8221; you can see exactly which carrier returned what. The Services screen auto-discovers every <code>carrier:service_code<\/code> flowing through the rate filter and lets you uncheck the ones you don&#8217;t want shown. The Plugin Status panel on the Overview tab reports the running version, saved API key state, active carriers, cache TTL, and current markup at a glance \u2014 so verifying &#8220;is the new code actually live with my settings&#8221; is a glance, not an SSH dive.<\/p>\n<p>Privacy and compliance are first-class. The plugin transmits only postal codes, country codes, and parcel dimensions to ShipEngine \u2014 never customer name, email, IP, billing address, or order ID. Suggested privacy-policy boilerplate auto-registers with WP&#8217;s Settings <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Privacy editor on activation. Personal-data exporter and eraser hooks are wired so the WP Tools <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Export\/Erase Personal Data flows recognize the plugin as compliant. EU\/UK merchants can flip on a Settings <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Privacy toggle to render a &#8220;Shipping rates calculated using ShipEngine \u2014 Privacy policy&#8221; line under the cart and checkout shipping options.<\/p>\n<h4>Highlights<\/h4>\n<ul>\n<li><strong>Real carrier rates<\/strong> via ShipEngine&#8217;s <code>\/v1\/rates<\/code> endpoint \u2014 UPS, USPS, FedEx, DHL Express, Stamps.com all behind a single API key. Or connect UPS \/ USPS directly with your own developer credentials.<\/li>\n<li><strong>True 3D bin-packing<\/strong> via the <code>dvdoug\/boxpacker<\/code> library. Define your box catalog under WooCommerce <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Box catalog and items pack into the smallest viable box, ships-alone items respected.<\/li>\n<li><strong>Cart = checkout<\/strong>, byte-identical, within the cache TTL. Single quote pipeline shared by Classic Checkout, Blocks Checkout, and WP-CLI.<\/li>\n<li><strong>Encrypted credentials at rest<\/strong> via <code>sodium_crypto_secretbox<\/code>, derived per-install from <code>wp_salt('auth') . AUTH_KEY<\/code>. The plugin refuses to encrypt anything when AUTH_KEY is missing or matches the WP install placeholder.<\/li>\n<li><strong>Per-carrier markup<\/strong> to bridge negotiated rates to retail-equivalent prices. ShipEngine returns each carrier&#8217;s negotiated rate (UPS often runs 30-50% below ups.com retail); set &#8220;UPS markup %&#8221; to 65-75 to display retail-equivalent prices without overcharging USPS shipments.<\/li>\n<li><strong>Rate Test diagnostic screen<\/strong> captures the raw request\/response of every quote \u2014 when checkout shows a price you didn&#8217;t expect, this is the source of truth.<\/li>\n<li><strong>Services whitelist<\/strong> auto-discovered from carrier responses; uncheck what you don&#8217;t want shown to customers.<\/li>\n<li><strong>GDPR-compliant out of the box.<\/strong> Privacy policy boilerplate, WP exporter\/eraser hooks, opt-in cart disclosure line.<\/li>\n<li><strong>i18n-ready<\/strong> \u2014 English (source), Spanish (es_ES), French (fr_FR) bundled. Other locales contribute via translate.wordpress.org once the plugin lists, or via pull request to the repo.<\/li>\n<li><strong>HPOS-required.<\/strong> No legacy order-table compatibility shims. Modern WC only.<\/li>\n<\/ul>\n<h4>Out of scope<\/h4>\n<p>The plugin is intentionally focused on rate calculation. It does <strong>not<\/strong> purchase shipping labels, generate manifests, schedule pickups, sync tracking webhooks back to order status, or integrate with multi-vendor marketplaces (Dokan, WCFM). For label printing and fulfillment, use ShipStation \/ ShipEngine&#8217;s own dashboard or a separate WC label plugin.<\/p>\n<h3>Privacy &amp; data handling<\/h3>\n<p>This plugin transmits cart\/shipment data to a third-party rate aggregator (ShipEngine, https:\/\/www.shipengine.com\/) over HTTPS to calculate live carrier rates. Specifically, on each rate quote the following is sent:<\/p>\n<ul>\n<li>Origin postal code + country (and optionally street\/city\/state, as configured in plugin settings)<\/li>\n<li>Destination postal code + country (and street\/city\/state if the customer supplied them)<\/li>\n<li>Parcel weight and dimensions, computed from the cart contents<\/li>\n<\/ul>\n<p>The customer&#8217;s name, email, phone, IP address, billing address, and order ID are NOT transmitted. Successful rate responses are cached on your server for a short, merchant-configurable duration (60\u20133600 seconds, default 60). The cache is keyed on parcel dimensions and origin\/destination ZIP only \u2014 it is not keyed on or attributable to any individual customer.<\/p>\n<p>EU\/UK merchants should turn on Settings <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Privacy <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> &#8220;Display privacy disclosure on cart\/checkout&#8221; so a small &#8220;Shipping rates calculated using ShipEngine \u2014 Privacy policy&#8221; line renders under the cart and checkout shipping options. Suggested privacy-policy boilerplate is auto-registered with WP&#8217;s Settings <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Privacy <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Policy guide editor on plugin activation.<\/p>\n<p>The plugin also registers no-op personal-data exporter and eraser hooks with WordPress so the Tools <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Export Personal Data and Tools <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Erase Personal Data flows recognise it as compliant \u2014 there is nothing per-customer to export or erase, but the hooks are present so the privacy admin&#8217;s audit trail correctly accounts for the plugin.<\/p>\n<p>Full data-flow documentation, including the GDPR \/ CCPA \/ Quebec Law 25 compliance summary, is in PRIVACY.md at the repo root. ShipEngine&#8217;s own data-handling practices are at https:\/\/auctane.com\/privacy-policy\/ (Auctane is ShipEngine&#8217;s parent company).<\/p>\n<h3>External services<\/h3>\n<p>Precision Live Rates calls third-party shipping APIs to obtain live carrier rates. No external service is called until the merchant has explicitly enabled and configured at least one carrier source. The data sent is limited to what is needed to compute a shipping price \u2014 see the Privacy &amp; data handling section above for the exact payload.<\/p>\n<p><strong>ShipEngine<\/strong> (https:\/\/www.shipengine.com\/)<br \/>\n* What it is: a rate-aggregation API that fronts UPS, USPS, FedEx, DHL Express, and Stamps.com.<br \/>\n* What is sent: origin postal code, destination postal code + country, parcel weight + dimensions, and the configured ShipEngine carrier IDs. No customer name, email, IP, or order ID.<br \/>\n* When it is called: on the cart and checkout pages when WooCommerce asks for shipping rates and the cached rate has expired (default 60 seconds).<br \/>\n* Why: to compute live shipping prices that match what the carrier itself would charge.<br \/>\n* Terms of service: https:\/\/www.shipengine.com\/terms-of-service\/<br \/>\n* Privacy policy: https:\/\/auctane.com\/privacy-policy\/ (Auctane is ShipEngine&#8217;s parent company)<\/p>\n<p><strong>UPS Developer APIs<\/strong> (optional, https:\/\/developer.ups.com\/)<br \/>\n* What it is: UPS&#8217;s official rate API.<br \/>\n* What is sent: same shape as ShipEngine, plus the merchant&#8217;s UPS account number.<br \/>\n* When it is called: only when the merchant has explicitly enabled UPS direct under Settings <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> UPS direct and saved valid UPS developer credentials.<br \/>\n* Why: lets merchants who have a direct UPS contract bypass ShipEngine and quote against their negotiated rate sheet.<br \/>\n* Terms of service: https:\/\/www.ups.com\/upsdeveloperkit\/agreement<br \/>\n* Privacy policy: https:\/\/www.ups.com\/us\/en\/help-center\/legal-terms-conditions\/privacy-notice.page<\/p>\n<p><strong>USPS Developer APIs<\/strong> (optional, https:\/\/developer.usps.com\/)<br \/>\n* What it is: the United States Postal Service&#8217;s official rate API.<br \/>\n* What is sent: origin and destination postal codes, parcel weight + dimensions.<br \/>\n* When it is called: only when the merchant has explicitly enabled USPS direct under Settings <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> USPS direct and saved valid USPS developer credentials.<br \/>\n* Why: lets merchants who have a direct USPS account quote against USPS retail rates without ShipEngine in the path.<br \/>\n* Terms of service: https:\/\/www.usps.com\/terms-conditions\/general.htm<br \/>\n* Privacy policy: https:\/\/about.usps.com\/who\/legal\/privacy-policy\/welcome.htm<\/p>","protected":false},"excerpt":{"rendered":"<p>Live UPS, USPS, FedEx, DHL, Stamps.com rates via ShipEngine. Deterministic 3D bin-packing. Cart=checkout, byte-identical.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[1115,1116,686,1117,1118,555],"class_list":["post-10636","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-live-rates","tag-shipengine","tag-shipping","tag-ups","tag-usps","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=10636"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10636\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=10636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=10636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=10636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}