Shopify skriptide API viide
Skriptid kirjutatakse Ruby API abil, mis pakub sulle suurel määral kontrolli ja paindlikkust.
Skripte on erinevat tüüpi. Skriptile määratakse tüüp, kui lood skripti rakenduses Script Editor, olenevalt sellest, millise skriptimalli sa alustamiseks valid:
Reaüksuse skriptid
Reaüksuse skriptid mõjutavad ostukorvis olevaid reaüksusi ning võivad muuta hindu ja anda allahindlusi. Need skriptid käivitatakse, kui ostukorvis tehakse muudatus.
Reaüksuse skriptid, mis teevad tellimusele allahindluse, rakenduvad ainult tellimuse esimesele maksele. Skript ei tee allahindlust järgnevatele maksetele.
Mõnda meetodit saab kasutada ainult reaüksuse skriptides.
Tarneskriptid
Tarneskriptid on seotud tarnega ning nendega saab muuta tarneviise ja anda allahindlusi tarnetariifidele. Need skriptid käivitatakse, kui kassa jõuab tarnevalikute lehele.
Tarneskriptid, mis teevad tellimuse tarnetariifile allahindluse, rakenduvad ainult tellimuse esimesele maksele. Skript ei tee allahindlust järgnevatele maksetele.
<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>Makseskriptid
Makseskriptid on seotud maksetega ning saavad makselüüse ümber nimetada, peita ja ümber järjestada. Pane tähele, et makseskriptid ei mõjuta makselüüse, mida kuvatakse enne kassakuva, näiteks makseviisi Apple Pay. Need skriptid käivitatakse, kui kassa jõuab makselehele.
Mõnda meetodit saab kasutada ainult makseskriptides.
Sellel lehel
Üldised meetodid
Järgmised meetodid on kasutatavad igat tüüpi skriptides:
Sisend
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .cart | Ostukorv | Tagastab muudetava ostukorvi objekti. |
| .locale | sõne | Tagastab kliendi lokaadi. Näiteks en, fr või pt-BR. |
Ostukorv
Ostukorvi objekt on kättesaadav ainult e-poes. Mõnel poolelijäänud kassatehingul on juurdepääs ostukorvi objektile. Kui aga kassa on suletud ja klient külastab seejärel poolelijäänud kassatehingut, suunatakse ta eeltäidetud kassasse ja ostukorvi objekti enam ei eksisteeri. Selle põhjuseks on see, et poolelijäänud ostu e-kirjaga minnakse müügikeskkonnast mööda.
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .customer | Klient | Tagastab ostukorvi omaniku (kui on). |
| .shipping_address | Tarneaadress | Tagastab ostukorvi omaniku tarneaadressi (kui see on olemas). |
| .discount_code | varieerub |
Tagastab:
|
CartDiscount::FixedAmount
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .code | Sõne | Tagastab allahindluse rakendamiseks kasutatud sooduskoodi. |
| .amount | Raha | Tagastab allahindluse rahasumma. |
| .reject({ message: String }) | nil | Lükkab tagasi ostukorvile rakendatud sooduskoodi. message on nõutav. |
| .rejected? | Tõeväärtus | Tagastab, kas sooduskood lükati tagasi. |
CartDiscount::Percentage
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .code | Sõne | Tagastab allahindluse rakendamiseks kasutatud sooduskoodi. |
| .percentage | Kümnendmurd | Tagastab allahindluse protsendi. |
| .reject({ message: String }) | nil | Lükkab tagasi ostukorvile rakendatud sooduskoodi. message on nõutav. |
| .rejected? | Tõeväärtus | Tagastab, kas sooduskood lükati tagasi. |
CartDiscount::Shipping
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .code | Sõne | Tagastab allahindluse rakendamiseks kasutatud sooduskoodi. |
| .reject({ message: String }) | nil | Lükkab tagasi ostukorvile rakendatud sooduskoodi. message on nõutav. |
| .rejected? | Tõeväärtus | Tagastab, kas sooduskood lükati tagasi. |
Klient
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .id | Täisarv | Tagastab kliendi ID-numbri. |
| Sõne | Tagastab kliendi e-posti aadressi. | |
| .tags | List<Tag> | Tagastab sõnede loendi, mis tähistavad kliendile määratud silte. |
| .orders_count | Täisarv | Tagastab kliendi esitatud tellimuste koguarvu. |
| .total_spent | Raha | Tagastab kogusumma, mille klient on kõigile tellimustele kulutanud. |
| .accepts_marketing? | Tõeväärtus | Tagastab, kas klient on turundusega nõustunud. |
Reaüksus
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .grams | grams | Tagastab reaüksuse kogukaalu. |
| .line_price | Raha | Reaüksuse hind. |
| .discounted? | Tõeväärtus | Tagastab, kas reaüksuse hinnale on rakendatud skriptipõhist või käsitsi lisatud allahindlust. Sooduskoodide kasutamine ei mõjuta tagastusväärtust. |
| .properties | räsi | Tagastab sellele reaüksusele määratud omadused. |
| .variant | Variant | Tagastab konkreetse tootevariandi, mida reaüksus esindab. |
| .quantity | Täisarv | Tagastab selle reaüksuse koguse. |
| .selling_plan_id | Täisarv | Tagastab reaüksuse müügiplaani ID. See meetod on kasulik, kui pood müüb tellimusi ja soovid, et skript tuvastaks, millal tootevariant on sold as a subscription. |
Loend
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .new | List | Loob uue objekti loendi tähistamiseks. |
| .[] | Element või nil |
Tagastab määratud indeksil asuva elemendi. |
| .& | List |
Tagastab uue loendi, mis sisaldab mõlemale loendile ühiseid elemente ilma duplikaatideta. |
| .delete_if | List | Kustutab elemendid valikulise koodiploki abil. Vaata lisateavet: Ruby's delete_if method. |
| .empty? | Tõeväärtus |
Tagastab väärtuse |
| .first | Element või nil |
Tagastab esimese elemendi või väärtuse |
| .index(*args, &block) | int või nil |
Tagastab loendi esimese elemendi indeksi. Kui argumendi asemel on antud plokk, tagastab esimese elemendi indeksi, mille puhul plokk on tõene. |
| .rindex(*args, &block) | int või nil |
Tagastab loendi viimase elemendi indeksi. Kui argumendi asemel on antud plokk, tagastab esimese elemendi indeksi, mille puhul plokk on tõene. |
| .last | Element või nil |
Tagastab viimase elemendi või väärtuse |
| .length | int |
Tagastab loendis olevate elementide arvu. |
| .size | int |
Meetodi length alias. |
| .each(*args, &block) | List |
Kutsub ploki välja üks kord iga loendis oleva elemendi jaoks, edastades elemendi plokile parameetrina. |
Tarneaadress
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .name | sõne | Tagastab tarneaadressiga seotud isiku nime. |
| .address1 | sõne | Tagastab tarneaadressi tänava aadressi osa. |
| .address2 | sõne | Tagastab tarneaadressi tänava aadressi osa valikulise lisavälja. |
| .phone | sõne | Tagastab tarneaadressi telefoninumbri. |
| .city | sõne | Tagastab tarneaadressi linna. |
| .zip | sõne | Tagastab tarneaadressi ZIP-koodi. |
| .province | sõne | Tagastab tarneaadressi provintsi/osariigi. |
| .province_code | sõne | Tagastab tarneaadressi provintsi/osariigi lühendatud väärtuse. |
| .country_code | sõne | Tagastab tarneaadressi riigi lühendatud väärtuse. |
Money
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .derived_from_presentment(customer_cents:X) | Raha | Konverteerib summa (sentides) kliendi kohalikust (kuvatavast) valuutast sinu poe valuutasse. See meetod aktsepteerib parameetrit customer_cents, mis võtab vastu arvu sentides. Näiteks Money.derived_from_presentment(customer_cents: 500). |
| .new | Raha | Loob uue objekti, mis tähistab hinda. |
| .zero | Raha |
Loob uue objekti, mille hind on null. |
| + | Raha | Liidab kaks Money-objekti. |
| - | Raha | Lahutab ühest Money-objektist teise. |
| * | Raha | Korrutab Money-objekti arvuga. |
Objekti Money näited
Money.new(cents: 1000)Loob Money-objekti, mis tähistab 1000 senti ehk 10 $.
Money.new(cents: 100) * 50Loob Money-objekti, mis tähistab 1 $, seejärel korrutab selle summa 50-ga. Tagastab Money-objekti, mis tähistab 50 $.
Variant
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .id | Täisarv | Tagastab variandi ID-numbri. |
| .price | Raha | Tagastab variandi ühikuhinna. |
| .product | Product | Tagastab variandiga seotud toote. |
| .skus | List<String> | Tagastab variandi laoarvestusühikud (SKU-d), mida sageli kasutatakse laoseisu jälgimiseks. |
| .title | Sõne | Tagastab variandi pealkirja. |
Product
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .id | Täisarv | Tagastab toote ID-numbri. |
| .gift_card? | Tõeväärtus | Tagastab, kas toode on kinkekaart. |
| .tags | List<Tag> | Tagastab loendi sõnedest, mis tähistavad sellele tootele määratud silte. |
| .product_type | Sõne | Kategoriseering, millega toodet saab sildistada, kasutatakse sageli filtreerimiseks ja otsimiseks. |
| .vendor | Sõne | Tagastab selle toote tarnija. |
Kernel
Kernel on Ruby moodul, mis on kaasatud igasse klassi. Seetõttu on selle meetodid saadaval igale objektile. Need meetodid toimivad samamoodi nagu globaalsed funktsioonid teistes keeltes.
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .exit | puudub | Lõpetab praeguse skripti täitmise ilma veata. Kui see käivitatakse enne, kui midagi on määratud objektile Output.cart, pole skriptil mingit mõju. See on kasulik viis skriptidest väljumiseks, näiteks juhul, kui klient ei vasta skripti käivitamise tingimustele. |
Kerneli näide
customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
# Employees are not eligible for this promotion.
exit
endReaüksuste meetodid
Järgmised meetodid on kasutatavad ainult reaüksuste skriptides:
Ostukorv
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .subtotal_price_was | Raha | Tagastab ostukorvi vahesumma enne mis tahes allahindluste rakendamist. |
| .subtotal_price_changed? | Tõeväärtus | Tagastab, kas vahesumma on muutunud. |
Reaüksus
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .change_line_price(Money new_price, { message: String }) | Raha | Muudab reaüksuse hinna määratud summaks. message on nõutav. new_price peab olema madalam kui praegune hind. |
| .original_line_price | Raha | Tagastab reaüksuse algse hinna enne skriptide ja allahindluste rakendamist. |
| .line_price_was | Raha | Tagastab reaüksuse hinna enne praeguse skripti poolt tehtud muudatuste rakendamist. |
| .line_price_changed? | Tõeväärtus | Tagastab, kas reaüksuse hind on muutunud. |
| .change_properties(hash new_properties, { message: String }) | räsi | Määrab reaüksusele uued atribuudid. Algne atribuutide räsi salvestatakse omadusse properties_was ning meetodile edastatav atribuutide räsi muutub reaüksuse uuteks atribuutideks. |
| .properties_was | räsi | Tagastab reaüksuse algse atribuutide räsi enne mis tahes muudatuste rakendamist. |
| .properties_changed? | Tõeväärtus | Tagastab, kas reaüksuse atribuudid on muutunud. |
| .split({ take: Integer }) | LineItem | Jagab reaüksuse kaheks reaüksuseks. take määrab, milline kogus algsest reaüksusest eemaldada, et luua uus reaüksus. |
Meetodi .split näide
See näidisskript jagab reaüksuse nimega original_line_item kaheks. Uue reaüksuse kogus on 1 (määratud parameetriga take: 1). Seejärel rakendab skript uuele reaüksusele soodushinna koos sõnumiga „Third hat for 5 dollars“.
if original_line_item.quantity >= 3
new_line_item = original_line_item.split(take: 1)
new_line_item.change_line_price(Money.new(cents: 500), message: "Third hat for 5 dollars")
cart.line_items << new_line_item
endVariant
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .compare_at_price | Raha | Tagastab variandi võrdlushinna. Kui variandil pole võrdlushinda, tagastab nil. |
Tarneviisid
Tarneskriptides on kasutatavad järgmised meetodid:
Sisend
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .shipping_rates | ShippingRateList | Tagastab kõigi tarnetariifide loendi. |
ShippingRateList
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .delete_if | ShippingRateList | Kustutab tarnetariifid, kasutades valikulist koodiplokki. Vaata Ruby meetodi delete_if dokumentatsiooni. |
| .sort! | ShippingRateList | Sordib tarnetariifid, kasutades võrdlusoperaatorit või valikulist koodiplokki. Vaata Ruby meetodi sort! dokumentatsiooni. |
| .sort_by! | ShippingRateList | Sordib tarnetariifid, kasutades valikulist koodiplokki. Vaata Ruby meetodi sort_by! dokumentatsiooni. |
ShippingRate
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .code | Sõne | Tagastab tarnetariifi koodi. |
| .markup | Raha | Tagastab asjakohasel juhul tarnetariifi juurdehindluse. |
| .name | Sõne | Tagastab tarnetariifi nime. Seda saab muuta, kasutades meetodit change_name. |
| .price | Raha | Tagastab tarnetariifi hinna. |
| .source | Sõne | Asjakohasel juhul tagastab tarnetariifiga seotud allika (vedaja). Seda ei saa muuta. |
| .change_name(String new_name) | Sõne | Muudab tarnetariifi nime (kuni 255 tähemärki). Allikat ei ole võimalik muuta, kustutada ega peita. |
| .apply_discount(Money discount, { message: String }) | Raha | Rakendab määratud fikseeritud summa ulatuses allahindluse. Hinda ei saa langetada alla 0. Sõnum on kohustuslik. |
| .phone_required? | Tõeväärtus | Tagastab väärtuse true, kui tarnetariifi saamiseks on telefoninumber kohustuslik, ja väärtuse false, kui telefoninumber ei ole kohustuslik. |
Makseviisid
Makseskriptides on kasutatavad järgmised meetodid:
Sisend
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .payment_gateways | PaymentGatewaysList | Tagastab poe kõigi makselüüside loendi. |
PaymentGatewayList
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .delete_if | PaymentGatewayList | Kustutab makselüüsid, kasutades valikulist koodiplokki. Vaata Ruby meetodi delete_if dokumentatsiooni. |
| .sort! | PaymentGatewayList | Sordib makselüüsid, kasutades võrdlusoperaatorit või valikulist koodiplokki. Vaata Ruby meetodi sort! dokumentatsiooni. |
| .sort_by! | PaymentGatewayList | Sordib makselüüsid, kasutades valikulist koodiplokki. Vaata Ruby meetodi sort_by! dokumentatsiooni. |
PaymentGateway
| Meetod | Tagastustüüp | Kirjeldus |
|---|---|---|
| .name | Sõne | Tagastab makselüüsi nime. |
| .enabled_card_brands | List<String> |
Kui makselüüs toetab krediitkaarte, tagastab poe poolt aktsepteeritavate krediitkaarditüüpide loendi. Kui makselüüs krediitkaarte ei toeta, tagastab tühja loendi. |
| .change_name(String new_name) | Sõne | Muudab makselüüsi nime. Logoga makselüüside nime ei saa muuta. |
Näited
Järgmises reaüksuse skripti näites, kui klient tellib toote, mis ei ole kinkekaart, vähendatakse toote hinda 9 $ võrra. Samuti kuvatakse kogusummat, mille klient on sinu poe külastuste jooksul kulutanud:
customer = Input.cart.customer
Input.cart.line_items.each do |line_item|
product = line_item.variant.product
next if product.gift_card?
line_item.change_line_price(line_item.line_price - Money.new(cents: 900), message: customer.total_spent)
end
Output.cart = Input.cart