Filtre og actions
Vælg det trin, som passer til din tilpasning. Hvert trin og hook nedenfor linker til den detaljerede beskrivelse og et eksempel.$is_return er false for udgående fragt og true for returfragt i de signaturer, hvor argumentet findes. En samlet booking kan kalde samme callback to gange, én gang pr. retning. Events med et Booked_Shipment-objekt giver i stedet adgang til $shipment->is_return().
smart_send_booking_completed betyder, at Smart Send har oprettet én forsendelse. Det kører, før pluginet gemmer bookingoplysningerne på WooCommerce-ordren. Brug smart_send_order_fulfilled, når du skal bruge det samlede resultat af ordreopdateringerne, også når udgående fragt lykkes, men returfragt fejler.→ angiver den krævede returtype. Actions har ingen brugbar returværdi. Eksemplerne er selvstændige tilpasninger, ikke en fil, der skal installeres samlet.
Åbn det relevante hook, og vælg Beskrivelse for kontrakten eller Eksempel for PHP-koden og vejledningen til brug.
Tilgængelighed og priser i checkout
woocommerce_shipping_smart_send_shipping_is_available
woocommerce_shipping_smart_send_shipping_is_available
- Beskrivelse
- Eksempel
(bool $is_available, array $package, Smart_Send\Shipping_Method\Method $method) → boolKører efter metodens kontrol af fragtklasser og kunderoller. Returnér false for at skjule denne Smart Send-instans for pakken; returnér den modtagne værdi for at bevare eksisterende begrænsninger. true opretter ikke en pris uden for vægttabellen. Gælder checkout; foretager ingen booking eller ordreopdatering. Eksemplet begrænser desuden metoden til Danmark.woocommerce_shipping_smart_send_shipping_is_free_shipping
woocommerce_shipping_smart_send_shipping_is_free_shipping
- Beskrivelse
- Eksempel
(bool $is_free, array $package, Smart_Send\Shipping_Method\Method $method) → boolKører efter kontrol af minimumsbeløb/kupon, når kurvens vægt er tilladt. true vælger Flat fee cost, som ikke nødvendigvis er nul; false bruger normal vægtprisberegning. Det tilsidesætter ikke tilgængelighed ud fra zone, rolle, klasse eller vægt. Eksemplet deaktiverer fastprisgrenen og bevarer den normale prisberegning.woocommerce_smart_send_shipping_shipping_add_rate
woocommerce_smart_send_shipping_shipping_add_rate
- Beskrivelse
- Eksempel
(Smart_Send\Shipping_Method\Method $method, array $rate) → voidKører ved afslutningen af en Smart Send-prisberegning. $rate indeholder id, label, cost, meta_data og package. Det kan køre, selv om vægtreglerne ikke gav en fragtpris, så kontrollér $method->rates, før du opretter et ekstra valg. Eksemplet lægger 10 i shoppens valuta til en eksisterende pris før WooCommerces momsberegning. Den oprindelige services metadata bevares; eksemplet booker ikke en anden transportørservice.Afhentningssteder
smart_send_pickup_point_search_params
smart_send_pickup_point_search_params
- Beskrivelse
- Eksempel
(array $params) → arrayKører før API-opslag efter nærmeste afhentningssteder, når en API-nøgle er konfigureret. Nøgler: carrier, country, postal_code, street (strenge) og city (streng eller null). Returnér alle nøgler. API’et bestemmer antal resultater; begræns listen med smart_send_pickup_point_list. Søgeparametre ændrer ikke kundens ordreadresse. Eksemplet fjerner indledende/afsluttende mellemrum i postnummeret.smart_send_pickup_point_list
smart_send_pickup_point_list
- Beskrivelse
- Eksempel
(Smart_Send\Delivery\Pickup_Point[] $points, array $params) → Smart_Send\Delivery\Pickup_Point[]Kører efter et ikke-tomt API-resultat er konverteret til Pickup_Point-objekter, før caching i sessionen og visning. Returnér en liste med fortløbende indeks og kompatible objekter. Pluginet fjerner objekter, der ikke matcher opslagets transportør/land. Filteret kaldes ikke ved et tomt API-resultat. Sorteringen påvirker Autovælg, når kunden ikke allerede har et kompatibelt eksplicit valg; filteret kan ikke bruges til at tilbagekalde et sådant valg.smart_send_pickup_point_label
smart_send_pickup_point_label
- Beskrivelse
- Eksempel
(string $label, Smart_Send\Delivery\Pickup_Point $point) → stringKører ved formatering af et afhentningssteds tekst efter Dropdown-format. Returnér almindelig tekst, ikke HTML eller allerede escapede entities. Hver visning escaper selv teksten. Filteret ændrer visningen, ikke afhentningsstedets identitet eller gemte adresse. Identiteten består af det præcise agentnummer sammen med transportør og land.smart_send_pickup_point_timeout
smart_send_pickup_point_timeout
- Beskrivelse
- Eksempel
(int $seconds) → int|floatStandard: 4 sekunder. Kører ved både opslag efter nærmeste steder og opslag på ét sted. Returnér en positiv timeout i sekunder. En højere værdi kan forlænge ventetiden i checkout; den garanterer ikke resultater. Eksemplet tillader seks sekunder.Shipping label booking
Tilpas ordresidens fragtmetoder, forsendelsesvalg, kollifordeling og kollivægt samt modtager- og ordredata. Hooks nedenfor følger bookingforløbet frem til bookingforespørgslen og events for vellykket eller fejlet booking. Brugsmart_send_delivery_details til at ændre varefordelingen og smart_send_parcel_default_weight til at tilpasse den beregnede kollivægt ved booking.
smart_send_fulfillment_shipping_methods
smart_send_fulfillment_shipping_methods
- Beskrivelse
- Eksempel
(array $carriers, WC_Order $order, bool $is_return) → arrayKører separat for listen over udgående services og returservices på ordresiden. Hver transportør har code, name, services; hver service har code, name, addons (aktuelt et tomt array). En bookingmetode er carrier_service, eksempelvis postnord_agent. Returnér den filtrerede transportørliste. Den valgte metode tilføjes altid igen, hvis den mangler, også når du returnerer []. Filteret begrænser UI’et; det er ikke adgangskontrol. Håndhæv bookingregler i smart_send_delivery_details. Eksemplet tilbyder kun PostNord til udgående fragt, med forbehold for den valgte metode.smart_send_delivery_details
smart_send_delivery_details
- Beskrivelse
- Eksempel
(Smart_Send\Delivery\Delivery_Details $details, WC_Order $order, bool $is_return) → Smart_Send\Delivery\Delivery_DetailsKører én gang pr. forsøgt retning, efter gemt opsætning, fundet service og indsendte ændringer er flettet sammen, før validering af afhentningssted og booking. Returnér details-objektet. Brug set_shipping_method(), set_pickup_point() eller set_parcel_plan(); brug clear_pickup_point() til en eksplicit rydning i et delvist details-objekt. Kast Smart_Send\Booking\Exceptions\Booking_Exception for at afvise en forretningsregel før booking. Filterændringer gælder den aktuelle booking; de gemmes ikke automatisk. Se forsendelsesvalg og lagring.smart_send_parcel_default_weight
smart_send_parcel_default_weight
- Beskrivelse
- Eksempel
(float $weight, Smart_Send\Delivery\Parcel_Spec $spec, WC_Order $order) → floatKører ved booking for hvert kolli uden eksplicit vægt. Input er den samlede produktvægt for de varer og antal, der er fordelt til kolliet, i kg, eventuelt nul. Filteret ændrer bookingens kollivægt; det ændrer hverken varefordelingen, den beregnede vægt vist på ordresiden eller den gemte kolliplan. Returnér en endelig, brugbar vægt inklusive emballage. Eksplicit vægt via Parcel_Spec::set_weight() eller ordresiden springer filteret over. Et fordelt, slettet produkt med ukendt vægt giver valideringsfejl før filteret; angiv i stedet en eksplicit positiv kollivægt. Der er intet retningsargument; filteret kan køre for både udgående og retur.smart_send_order_receiver
smart_send_order_receiver
- Beskrivelse
- Eksempel
(array $shipping_address, int $order_id) → arrayKører ved læsning af ordrens leveringsadresse før fallback for telefon/e-mail og konvertering til modtagerdata. Bruger WooCommerce-adressenøgler som first_name, last_name, company, address_1, address_2, postcode, city, country og eventuelt phone/email. Returnér hele adressen. Andet argument er ordre-ID, ikke et WC_Order. Begge retninger bruger samme læsetrin; filteret gemmer ikke adressen.smart_send_receiver_phone
smart_send_receiver_phone
- Beskrivelse
- Eksempel
(string|null $phone, WC_Order $order) → string|nullKører efter valg af leveringstelefon eller faktureringstelefon, når leverings- og faktureringsland matcher, og efter fjernelse af omgivende mellemrum. Returnér et telefonnummer eller null. Der sendes intet retningsflag. Eksemplet fjerner mellemrum uden at gætte en landekode.smart_send_payload_receiver
smart_send_payload_receiver
- Beskrivelse
- Eksempel
(array $receiver, WC_Order $order) → arrayKører efter mapping af modtageren og fallback for telefon/e-mail. Nøgler: company, name_line1, name_line2, address_line1, address_line2, postal_code, city, country (strenge), phone og email (streng eller null). Returnér alle nøgler. Dette er pluginets data, ikke et råt HTTP-payload, og de bruges i begge retninger. Eksemplet fjerner utilsigtede mellemrum omkring en e-mail, der ikke er null.smart_send_payload_items
smart_send_payload_items
- Beskrivelse
- Eksempel
(array[] $items, WC_Order $order) → array[]Kører efter læsning af én række pr. ordrelinje, før fordeling på kolli, i begge retninger. Bevar identiteter og gyldige antal; brug smart_send_delivery_details til fordelingen. Se strukturen for varerækker. Netto/moms er linjetotaler efter rabat, ikke stykpriser. Eksemplet fjerner mellemrum omkring toldbeskrivelsen uden at opfinde en beskrivelse for et slettet produkt.smart_send_payload_totals
smart_send_payload_totals
- Beskrivelse
- Eksempel
(array $totals, WC_Order $order) → arrayKører efter beregning af ordretotaler og begrænsning af negative netto-/momsbeløb til nul. Returnér alle nøgler i skemaet for totaler. Senere værdier bruges som returneret; bevar sammenhængen og ikke-negative beløb. Ordregebyrer indgår i forsendelsestotaler, mens kollitotaler indeholder fordelte varer. Eksemplet logger kun valuta og ordretotal og bevarer bookingværdierne.smart_send_shipment_freetext
smart_send_shipment_freetext
- Beskrivelse
- Eksempel
(string|null $freetext, WC_Order $order) → string|nullKører ved læsning af tekst til labelen i begge retninger. Input er kundens ordrekommentar, når Påsæt ordrekommentar på pakkelabel er aktiveret, ellers null. Returnér tekst eller null, ikke HTML. Dette styrer ikke WooCommerces ordrehistorik. Eksemplet udelader kundekommentarer på labels.smart_send_booking_request
smart_send_booking_request
- Beskrivelse
- Eksempel
(Smart_Send\Booking\Shipment $shipment, WC_Order $order, bool $is_return) → Smart_Send\Booking\ShipmentKører efter dataudtræk og opbygning af kolli, umiddelbart før oversættelse til API-forespørgslen. Returnér et Shipment. Brug tidligere filtre til fordelings-/vægtregler, da kollivalideringen allerede er udført her. Eksemplet tilføjer kun en intern reference til udgående fragt; det opdaterer ikke ordren eller gemmer fragtindstillinger.smart_send_booking_completed
smart_send_booking_completed
- Beskrivelse
- Eksempel
(Smart_Send\Booking\Booked_Shipment $booked, Smart_Send\Booking\Shipment $request, WC_Order $order) → voidKører én gang pr. vellykket booket retning efter mapping af API-svaret og før lagring på ordren eller kopiering af dokumenter. Brug $booked->is_return() til retningen. Eventet betyder ikke, at hele udgående/retur-forløbet lykkedes, og en lokal dokumentkopi er endnu ikke klar. Kast ikke en exception fra callbacken: forsendelsen er allerede oprettet. Brug smart_send_order_fulfilled, når du skal bruge de gemte ordreresultater.smart_send_booking_failed
smart_send_booking_failed
- Beskrivelse
- Eksempel
(Smart_Send\Booking\Exceptions\Booking_Exception $exception, Smart_Send\Booking\Shipment $request, WC_Order $order) → voidKører, når bookingens API-kald kaster en håndteret HTTP-klientfejl, lige før den kastes videre som Booking_Exception. Læs getMessage(), errors() (felt → beskedliste) og response_id() (streng eller null). Det er ikke et event for alle fejl: lokal validering af fordeling, afhentningssted eller forsendelsesvalg kan fejle før API-kaldet. Der sendes ingen boolean for retningen. Eksemplet logger et response ID uden adressedata eller feltværdier.Ordreopdateringer og samlet resultat
smart_send_fulfillment_save_documents
smart_send_fulfillment_save_documents
- Beskrivelse
- Eksempel
(bool $save, Smart_Send\Booking\Booked_Shipment $shipment, WC_Order $order) → boolKører efter vellykket booking og lagring af indsendte fragtændringer, før forsøg på dokumentkopiering og lagring af forsendelseshistorik. Standard er indstillingen Gem kopi af PDF i begge retninger. Returnér false for at springe lokale kopier over. En kopifejl giver en advarsel; forsendelsen forbliver booket, og dokumentlinks bruger Smart Send. Eksemplet lader dokumenterne blive hos Smart Send.smart_send_fulfillment_order_note
smart_send_fulfillment_order_note
- Beskrivelse
- Eksempel
(string $note_html, Smart_Send\Booking\Booked_Shipment $shipment, WC_Order $order) → stringKører efter lagring af forsendelseshistorik, før den normale ordrenote tilføjes. Returnér sikker HTML/tekst eller '' for at udelade noten. Noter gemmes med WC_Order::add_order_note(), når kaldet anmoder om en note. WooCommerces historik opdateres efter genindlæsning; Smart Sends resultat kan vises med det samme. Eksemplet skriver en kort tekstnote for begge retninger.smart_send_fulfillment_tracking
smart_send_fulfillment_tracking
- Beskrivelse
- Eksempel
(bool $push, Smart_Send\Booking\Booked_Shipment $shipment, WC_Order $order) → boolKører efter ordrenotetrinnet, før tracking pr. kolli videresendes til det valgfrie WooCommerce Shipment Tracking-plugin. Standard: true udgående, false retur. Det opretter ikke live trackingopdateringer og installerer ikke pluginet. false bevarer den bookede forsendelses egne trackingdata. Eksemplet deaktiverer videresendelse.smart_send_fulfillment_order_status
smart_send_fulfillment_order_status
- Beskrivelse
- Eksempel
(string|false $status, Smart_Send\Booking\Booked_Shipment $shipment, WC_Order $order) → string|falseKører efter tracking. Returnér en registreret WooCommerce-status som wc-completed eller false for at bevare ordren uændret. Standard: konfigureret Ændre ordrens status efter labelgenerering for udgående; false for retur. En statusændring kan udløse WooCommerce-/tredjepartshooks og e-mails. Eksemplet forhindrer Smart Send i at ændre status i begge retninger.smart_send_order_fulfilled
smart_send_order_fulfilled
- Beskrivelse
- Eksempel
(WC_Order $order, Smart_Send\Fulfillment\Fulfillment_Result $result) → voidKører én gang efter alle forsøgte retninger og deres ordreopdateringer, når mindst én retning lykkedes. Det kører ikke ved et fuldstændigt mislykket forløb. Resultatet kan indeholde en vellykket udgående forsendelse og en fejlet retur. Undersøg get_outbound_shipment(), get_return_shipment(), shipments(), get_steps($shipment), get_order_note_id($shipment) og get_warnings($shipment). get_validation_errors($is_return) og get_error_details($is_return) beskriver fejl. Se kontrakterne for bookingresultater; antag ikke, at alle valgfrie trin blev udført.Plugin settings
smart_send_api_endpoint
smart_send_api_endpoint
- Beskrivelse
- Eksempel
(string $host) → stringKører ved oprettelse af API-klienten. Standardhost: https://app.smartsend.io. Returnér kun protokol og hostname, eksempelvis https://app.smartsend.dev; klienten tilføjer selv API-versionsstien. Gælder autentificering, opslag af afhentningssteder og booking. Brug adgangsoplysninger til det valgte miljø; en stagingshop ændrer ikke denne host i sig selv.smart_send_sslverify
smart_send_sslverify
- Beskrivelse
- Eksempel
(bool $verify) → boolStandard: true. Kører ved opbygning af WordPress’ HTTP-indstillinger. Bevar certifikatkontrol i både produktion og sandbox. Eksemplet fastholder eksplicit kontrollen; ret et ugyldigt servercertifikat eller CA-opsætningen frem for at slå kontrollen fra.smart_send_logging
smart_send_logging
- Beskrivelse
- Eksempel
(string $message, string $level, array $context) → string|null|falseKører kun for logposter, som pluginets logningsregler tillader. $level er et WooCommerce-logniveau; $context indeholder source (smart-send-logistics) og pluginversion. Returnér en ændret besked eller null/false for at undertrykke posten. Filteret kan ikke aktivere fravalgte poster eller erstatte context ved at returnere et array. Eksemplet undertrykker kun debugbeskeder.smart_send_configuration_url
smart_send_configuration_url
- Beskrivelse
- Eksempel
(string $url) → stringKører ved opbygning af Smart Send-rækkens opsætningslink på WordPress’ pluginside. Standard: https://smartsend.io/woocommerce/configuration/. Returnér en URL, ikke HTML. Det ændrer ikke API-endpointet. Eksemplet sender linket til Smart Sends lokale indstillingsside.smart_send_support_url
smart_send_support_url
- Beskrivelse
- Eksempel
(string $url) → stringKører for supportlinket på WordPress’ pluginside. Standard: https://smartsend.io/support/. Returnér en URL; visningen escaper den. Eksemplet peger på en supportside i din egen shop; opret siden, før du bruger koden.ss_in_plugin_update_message
ss_in_plugin_update_message
- Beskrivelse
- Eksempel
(string $notice_html) → stringKører, når Smart Send viser en opdateringsbesked for en hovedversion på pluginsiden. Returnér betroet, sikker HTML: resultatet vises som HTML uden endnu en rensning. Eksemplet tilføjer statisk vejledning. Det er et hook til opdateringsbeskeder, ikke fragt eller booking.Datakontrakter
De seks filtre til læsning af ordredata ovenfor modtager ikke et returflag. De læser samme ordredata i begge retninger.smart_send_payload_totals og smart_send_shipment_freetext kører kun, når varedata ikke er tomme. Brug smart_send_booking_request til en afsluttende ændring for en bestemt retning.
Varerækker
Varerækker
smart_send_payload_items modtager disse nøgler på hver række:Totaler
Totaler
smart_send_payload_totals modtager floats subtotal_net_amount, subtotal_tax_amount, shipping_net_amount, shipping_tax_amount, total_net_amount, total_tax_amount samt strengen currency. Subtotalen udelader fragt og inkluderer øvrige ordregebyrer. Normalt gælder subtotal + fragt = total, separat for netto og moms; begrænsningen af negative beløb kan have forrang. Beløb inklusive moms er netto + moms. Bevar sammenhængene, når du ændrer totaler.Integrationsreference
Dette er baggrund om platformhooks, Smart Send bruger, ikke yderligere offentlige Smart Send-hooks til tilpasning.WooCommerce-integrationspunkter
WooCommerce-integrationspunkter
Valgfrit WooCommerce Subscriptions
Valgfrit WooCommerce Subscriptions
Hvad er verificeret?
Hvad er verificeret?
Metafelter
Smart Send gemmer forskellige oplysninger på ordren, dens fragtlinjer og katalogprodukterne. Nøglerne nedenfor beskriver disse data og kan ikke bruges på tværs af objekterne. Brug helst de dokumenterede hooks og API’et, når du ændrer bookingadfærd. Læs metadata gennem WooCommerces CRUD-objekter, så integrationen fungerer med både HPOS og traditionel ordreopbevaring. Følg WooCommerces HPOS-vejledning ved læsning og tilsigtede opdateringer: Hent enWC_Order, brug objektets metadatametoder, og gem gennem objektet. Antag ikke, at ordrer er WordPress-indlæg.
Konfiguration på fragtlinjen
Værdierne tilhører den enkelteWC_Order_Item_Shipping, ikke WC_Order. WooCommerce kopierer dem fra den valgte Smart Send-fragtpris, når fragtlinjen oprettes.
$shipping_item->get_meta( $key, true ). Brug SS_SHIPPING_WC()->method_resolver(), når du skal bruge den fundne bookingydelse, inklusive den særskilte kobling for WooCommerces egen Gratis fragt.
Leveringskonfiguration og bookingresultater på ordren
Læs felterne fra enWC_Order, som du henter med wc_get_order(). Leveringskonfiguration håndteres af Smart_Send\Delivery\Order_Meta, mens bookingresultater håndteres af Smart_Send\Fulfillment\Shipment_IDs.
SS_SHIPPING_WC()->shipment_ids()->get( $order, false ) til det seneste udgående id, true til retur eller labels( $order ) til historikken. Id-læseren returnerer en tom streng, når der ikke er gemt et id.
Se leveringsdata og lagring for forskellen på indsendte værdier, filterændringer og gemte data.
Objektet for et afhentningssted
Objektet for et afhentningssted
agent_no, company, address_line1, address_line2, postal_code, city og country. Et sted kan også indeholde id, carrier, name_line1, name_line2, distance, coordinates og opening_hours. Antag ikke, at alle valgfrie egenskaber findes. Landet er en ISO 3166-1 alpha-2-kode. Koordinater har latitude og longitude, og åbningstidsrækker har day, opens og closes.Brug SS_SHIPPING_WC()->order_meta()->read( $order )->get_pickup_point() for at få en Smart_Send\Delivery\Pickup_Point eller null. Det typede objekt har getters og to_array(), så kalderen ikke behøver at afhænge af alle rå egenskaber. Brug smart_send_delivery_details til bookingændringer. At ændre det rå afhentningsnummer alene erstatter ikke opslag og validering af et sted, der passer til ydelsen.Gemt kollifordeling
Gemt kollifordeling
123 i ét kolli. Id’et er lokalt for ordren; det er hverken et produkt-id eller variations-id.reference og varens valgfrie name er tekster til visning, ikke identiteter for ordrelinjer. Antal og ordrelinje-id’er er positive heltal. Parcel_Plan::from_array() læser det kanoniske format; fordelingen skal også kontrolleres mod den aktuelle ordres linje-id’er og antal. Ved lagring gennem Order_Meta erstattes de fire vægt- og målfelter med null. En tom specs-liste betyder ét kolli med alle varerne.Kopiér ikke arrayet uændret til en anden ordre. Ændres linjer eller antal, skal en gemt fordeling, der ikke længere passer, nulstilles før booking. Se leveringsdata og lagring for fordelingsregler og de mål, der kun gælder én booking.Fornyelser og felter, som tilhører andre integrationer
Fornyelser og felter, som tilhører andre integrationer
_ss_shipping_label_id, _ss_shipping_return_label_id og _ss_shipping_labels fra fornyelsens metadata. Den bevarer genanvendelig leveringskonfiguration og knytter kollifordelingen til fornyelsens nye ordrelinje-id’er. Kan sammenhængen ikke verificeres, kan ss_shipping_order_parcels indeholde den interne indpakning unmapped_subscription_plan, som kræver en udtrykkelig nulstilling. Den markerer en fejl og er ikke et understøttet format, du skal skrive som kollifordeling._smart_send_renewal_source_item er en midlertidig intern markering på produktordrelinjer med order_id og item_id. Integrationen fjerner den efter behandlingen af de kopierede linjer. Brug den ikke som et permanent integrationsfelt._wc_shipment_tracking_items tilhører WooCommerce Shipment Tracking. Smart Send bruger udvidelsens API til tracking og udelader kopierede trackingposter fra fornyelser; Smart Send definerer ikke udvidelsens metadataformat. _vc_aio_options tilhører vConnect og læses af hensyn til kompatibilitet ved opslag af leveringsdata. Ingen af de to felter er en skrivekontrakt, som Smart Send ejer.Forsendelsesvalg og lagring
Forsendelsesvalg og lagring
smart_send_delivery_details kører. Efter vellykket booking gemmes det indsendte valg af afhentningssted og fordelingen af varer på kolli. Den indsendte metode samt kollivægt og mål gælder kun den aktuelle booking. En fejlet booking gemmer ikke ændringerne. Filterets returnerede objekt bestemmer, hvad der bookes, men bestemmer ikke i sig selv, hvad der gemmes.Ved en samlet udgående-/returbooking bruges den indsendte kolliplan i begge retninger, medmindre en særskilt returplan tilsidesætter den. En null eller tom plan betyder ét kolli med alle ordrevarer. Én spec uden fordelinger inkluderer også alle varer og kan angive eksplicitte mål. Flere specs kræver fuldstændig fordeling: hver ordreenhed præcis én gang, positive hele antal og ingen dublet af samme ordrelinje inden for én spec. Ukendte ordrelinje-ID’er samt for få eller for mange fordelte enheder afvises.Produkternes toldoplysninger
Felterne tilhører enWC_Product eller WC_Product_Variation, ikke en ordre eller fragtlinje.
wc_get_product() og produktets get_meta() til læsning. Gem en tilsigtet ændring af produktdata med update_meta_data() efterfulgt af produktets save(). At gemme en værdi afgør ikke, om toldklassifikationen er korrekt.
Booking læser katalogets aktuelle værdier. En variations værdi bruges først, medmindre den er '' eller null; så bruges hovedproduktets værdi. Pluginets produkteditor viser felterne på hovedproduktets Forsendelse-fane og tilføjer ikke en separat editor for hver variation. Felterne kopieres ikke til ordrelinjerne som historiske værdier. Et slettet katalogprodukt kan ikke levere sine tolddata. Se vejledningen til toldfelter.
API
Brug pluginets API i WordPress til at læse Smart Send-data for en eksisterendeWC_Order. Smart Send og en understøttet WooCommerce-version skal være aktive. Kald eksemplerne, efter Smart Send er initialiseret på init med prioritet 0, for eksempel fra en init-callback med prioritet 10 eller et senere ordrehook. Hvis du starter med et ordre-ID, skal du hente ordren med wc_get_order($order_id) og kontrollere, at resultatet er en WC_Order.
Eksemplerne bruger WooCommerces API’er til ordrer og ordrelinjer og virker derfor med HPOS. De booker ingen forsendelser og kontakter ikke Smart Send API’et. Eksempelfunktionerne bruger præfikset my_shop_; vælg dit eget præfiks i din integration.
Hent ordrens afhentningssted
Hent ordrens afhentningssted
- Beskrivelse
- Eksempel
SS_SHIPPING_WC()->order_meta()->read($order) returnerer Smart_Send\Delivery\Delivery_Details med det gemte afhentningssted og den gemte kolliplan. get_pickup_point() returnerer et Smart_Send\Delivery\Pickup_Point eller null. Se afhentningsstedets metoder for de tilgængelige felter.Hjælperen læser det gemte sted; den søger ikke efter nærliggende steder og opdaterer ikke adressen. Hvis der ikke er gemt et Smart Send-afhentningssted, kan den også læse de understøttede afhentningsmetadata fra vConnect. Et agentnummer, der er gemt alene, giver ikke et komplet afhentningsstedsobjekt. De enkelte felter kan være null.get_parcel_plan() på samme details-objekt returnerer den gemte plan eller null. Brug SS_SHIPPING_WC()->order_meta()->parcel_plan_error($order) til at skelne mellem en manglende plan og en ugyldig gemt kollifordeling; metoden returnerer en forklaring eller null. Disse gemte oplysninger fastlægger ikke fragtmetoden; brug det næste eksempel til det.Hent fragtmetoder og standardvalg til booking
Hent fragtmetoder og standardvalg til booking
- Beskrivelse
- Eksempel
$order->get_shipping_methods()returnerer de WooCommerce-fragtlinjer, der er gemt på ordren.get_method_id()identificerer WooCommerce-metoden, for eksempelsmart_send_shippingellerfree_shipping;get_instance_id()identificerer fragtmetodens instans i fragtzonen.SS_SHIPPING_WC()->method_resolver()finder ét Smart Send-service-ID for hver retning, for eksempelpostnord_agentellerpostnord_returndropoff. Den læser metadata på ordrens Smart Send-fragtlinje, den aktuelle tilknytning til WooCommerces gratis fragt eller understøttede tredjepartsmetoder.
resolve_outbound($order) og resolve_return($order) returnerer '', hvis der ikke kan findes en service. Hvis en Smart Send-fragtlinje ikke har en returmetode, kaster resolve_return() en Smart_Send\Booking\Exceptions\Booking_Exception; eksemplet bevarer denne forskel i return_error. is_auto_return_enabled($order) læser indstillingen for automatisk returlabel, som er gemt på fragtlinjen.Dette er de standardvalg, der udledes for ordren. De omfatter ikke ugemte valg i ordrebilledet, indsendte ændringer for en booking eller ændringer fra smart_send_delivery_details. De fortæller heller ikke, hvilken service en tidligere forsendelse faktisk blev booket med; læs det fra det Booked_Shipment, som leveres til en booking-action.Hent gemte bookinger
Hent gemte bookinger
- Beskrivelse
- Eksempel
SS_SHIPPING_WC()->shipment_ids() læser de forsendelsesreferencer, der er gemt på ordren:direction er outbound eller return; booked_at er et ISO 8601-tidsstempel i UTC eller null, hvis det ikke findes. Plugin’et gemmer de seneste 50 historikposter samlet for begge retninger. Det seneste ID for hver retning gemmes særskilt, så et ID kan findes, selv om labels() er tomt. En post svarer til én forsendelse, som kan indeholde flere kolli.Dette er gemte bookingreferencer. De indeholder ikke aktuel transportørstatus, trackinglinks, dokumenter eller det komplette Booked_Shipment. Lyt til smart_send_booking_completed eller smart_send_order_fulfilled, og brug metoderne til bookingresultater, hvis du skal læse dokumenter og trackingoplysninger fra bookingresultatet. Et Fulfillment_Result beskriver det enkelte forløb, som kan have vellykket udgående fragt og fejlet returfragt; det gendannes ikke fra ordrehistorikken.Læs afhentningsstedets oplysninger
Læs afhentningsstedets oplysninger
Pickup_Point har get_agent_no(), get_company(), get_address_line1(), get_address_line2(), get_postal_code(), get_city(), get_country(), get_carrier(), get_distance(), get_latitude(), get_longitude() og get_opening_hours(). Valgfrie værdier kan være null. Åbningstider er en liste af rækker med day, opens, closes: dagen er et engelsk ugedagsnavn med små bogstaver, og tider bruger HH:MM:SS. En tom liste betyder ukendte åbningstider. to_array() giver en serialiserbar repræsentation; det er ikke en tilladelse til at stole på navne eller adresser indsendt fra klienten.Læs bookingresultatet
Læs bookingresultatet
Booked_Shipment har get_shipment_id(), get_carrier(), get_service_code(), is_return(), get_state(), get_booked_at(), get_tracking_code(), get_tracking_url(), parcels(), documents() og codes(). Valgfrie trackingfelter kan være null. label_document() returnerer et Shipment_Document eller null; antag ikke, at alle resultater indeholder en PDF. Dokumentets download_url() vælger den lokale kopi, når den findes, ellers Smart Send-URL’en.Fulfillment_Result::get_steps($shipment) angiver save_documents (true, false eller 'failed'), order_note (boolean), tracking (om videresendelse var ønsket) og order_status (status eller false). Trackingtrinnet beviser ikke, at en valgfri tredjepartsintegration var installeret eller sendte en e-mail.Brug get_order_note_id($shipment) til den gemte notes heltals-ID eller null. get_order_note($shipment) giver note-HTML til PHP-kode. Den serialiserbare to_array() indeholder i stedet et order_note-objekt med id, ikke note-HTML. Rækkerne har direction, status (fulfilled/failed) og shipment/steps/warnings eller en fejl. get_error_details($is_return) returnerer null eller et array med message, response_id, fields og html; behandl message som almindelig tekst, og escape output korrekt.