Shopify Scripts API రెఫరెన్స్

స్క్రిప్ట్‌లు రూబీ (Ruby) APIతో వ్రాయబడతాయి, ఇది మీకు అధిక నియంత్రణ, సరళతను అందిస్తుంది.

వేర్వేరు స్క్రిప్ట్ రకాలు ఉంటాయి. మీరు ప్రారంభించడానికి ఎంచుకున్న స్క్రిప్ట్ టెంప్లేట్ ఆధారంగా, మీరు Script Editor యాప్‌లో స్క్రిప్ట్‌ను సృష్టించినప్పుడు స్క్రిప్ట్‌కు ఒక రకం కేటాయించబడుతుంది:

లైన్ ఐటెమ్ స్క్రిప్ట్‌లు

లైన్ ఐటెమ్ స్క్రిప్ట్‌లు కార్ట్‌లోని లైన్ ఐటెమ్‌లను ప్రభావితం చేస్తాయి, అలాగే ధరలను మార్చగలవు, తగ్గింపులను మంజూరు చేయగలవు. కార్ట్‌లో ఏదైనా మార్పు చేసినప్పుడు ఈ స్క్రిప్ట్‌లు రన్ చేయబడతాయి.

సబ్‌స్క్రిప్షన్‌పై తగ్గింపును అందించే లైన్ ఐటెమ్ స్క్రిప్ట్‌లు, సబ్‌స్క్రిప్షన్ యొక్క మొదటి చెల్లింపుకు మాత్రమే వర్తిస్తాయి. తర్వాతి చెల్లింపులపై స్క్రిప్ట్ ద్వారా తగ్గింపు వర్తించదు.

కొన్ని పద్ధతులు కేవలం లైన్ ఐటెమ్ స్క్రిప్ట్‌లలో మాత్రమే ఉపయోగించబడతాయి.

షిప్పింగ్ స్క్రిప్ట్‌లు

షిప్పింగ్ స్క్రిప్ట్‌లు షిప్పింగ్‌తో ఇంటరాక్ట్ అవుతాయి, అలాగే ఇవి షిప్పింగ్ పద్ధతులను మార్చగలవు, షిప్పింగ్ రేట్లపై తగ్గింపులను మంజూరు చేయగలవు. చెక్‌అవుట్, షిప్పింగ్ ఎంపికల పేజీకి చేరుకున్నప్పుడు ఈ స్క్రిప్ట్‌లు రన్ అవుతాయి.

సబ్‌స్క్రిప్షన్ యొక్క షిప్పింగ్ రేటుపై తగ్గింపును అందించే షిప్పింగ్ స్క్రిప్ట్‌లు, సబ్‌స్క్రిప్షన్ మొదటి చెల్లింపుకు మాత్రమే వర్తిస్తాయి. తర్వాతి చెల్లింపులపై స్క్రిప్ట్ ద్వారా తగ్గింపు వర్తించదు.

<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>

చెల్లింపు స్క్రిప్ట్‌లు

చెల్లింపు స్క్రిప్ట్‌లు చెల్లింపులతో ఇంటరాక్ట్ అవుతాయి, అలాగే పేమెంట్ గేట్‌వేల పేరును మార్చగలవు, దాచగలవు, మళ్లీ ఆర్డర్ చేయగలవు. Apple Pay లాంటి చెక్‌అవుట్ స్క్రీన్‌కి ముందు చూపబడే పేమెంట్ గేట్‌వేలతో చెల్లింపు స్క్రిప్ట్‌లు ఇంటరాక్ట్ అవ్వవని గమనించండి. చెక్‌అవుట్, చెల్లింపు పేజీకి చేరుకున్నప్పుడు ఈ స్క్రిప్ట్‌లు రన్ చేయబడతాయి.

కొన్ని పద్ధతులు కేవలం చెల్లింపు స్క్రిప్ట్‌లలో మాత్రమే ఉపయోగించబడతాయి.

సాధారణ పద్ధతులు

కింది పద్ధతులను ఏ రకమైన స్క్రిప్ట్‌లోనైనా ఉపయోగించవచ్చు:

ఇన్‌పుట్

స్క్రిప్ట్ ఇన్‌పుట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.cartకార్ట్మ్యూటబుల్ కార్ట్ ఆబ్జెక్ట్‌ను తిరిగి ఇస్తుంది.
.localeస్ట్రింగ్కస్టమర్ లొకేల్‌ను తిరిగి ఇస్తుంది. ఉదాహరణకు, en, fr లేదా pt-BR.

కార్ట్

కార్ట్ ఆబ్జెక్ట్ కేవలం ఆన్‌లైన్ స్టోర్‌లో మాత్రమే అందుబాటులో ఉంటుంది. కొన్ని వదిలివేయబడిన చెక్‌అవుట్‌లు కార్ట్ ఆబ్జెక్ట్‌కి యాక్సెస్‌ను కలిగి ఉంటాయి. అయితే, ఒకవేళ చెక్‌అవుట్ మూసివేయబడి, ఆ తర్వాత కస్టమర్ వదిలివేయబడిన చెక్‌అవుట్‌ను సందర్శిస్తే, ఇది ముందుగా పూరించిన చెక్‌అవుట్‌కు వారిని పంపుతుంది, అలాగే కార్ట్ ఆబ్జెక్ట్ ఇకపై ఉండదు. ఎందుకంటే, వదిలివేసిన చెక్‌అవుట్ ఇమెయిల్ ద్వారా స్టోర్‌ఫ్రంట్ బైపాస్ చేయబడటమే దీనికి కారణం.

కార్ట్ ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.customerకస్టమర్కార్ట్ యజమానిని (ఎవరైనా ఉంటే) తిరిగి ఇస్తుంది.
.shipping_addressShippingAddressకార్ట్ యజమాని యొక్క షిప్పింగ్ చిరునామాను (ఏదైనా ఉంటే) తిరిగి ఇస్తుంది.
.discount_codeమారుతూ ఉంటుంది ఇవి తిరిగి ఇవ్వబడతాయి:
  • ఒకవేళ కార్ట్‌లో ఎలాంటి డిస్కౌంట్ కోడ్ లేకపోతే nil
  • ఒకవేళ కార్ట్‌కు స్థిరమైన తగ్గింపు మొత్తం ఉంటే CartDiscount::FixedAmount
  • ఒకవేళ కార్ట్‌కు శాతం తగ్గింపు ఉంటే CartDiscount::Percentage
  • ఒకవేళ కార్ట్‌కు షిప్పింగ్ తగ్గింపు ఉంటే CartDiscount::Shipping
  • ఒకే డిస్కౌంట్ కోడ్‌ను తిరిగి ఇస్తుంది (పరిమితులను చూడండి)

ఒకవేళ కార్ట్‌కు తగ్గింపు వర్తించబడితే discount_code ఉంటుంది. దీనర్థం కార్ట్ ధర తప్పనిసరిగా మారుతుందని కాదు. ఉదాహరణకు, ఒకవేళ తగ్గింపు అనేది $50 కంటే ఎక్కువ ఉన్న కార్ట్‌లకు వర్తించినప్పుడు, ఒక స్క్రిప్ట్ కార్ట్ ధరను $50 కంటే తక్కువకు తగ్గిస్తే, discount_code అనేది అప్పటికీ ఉంటుంది, కానీ కార్ట్ ధర మారదు.

<p><a href="/manual/checkout-settings/script-editor/examples/vat-script">See an example of <code>discount_code</code></a>.</p>
  </td>
</tr>
<tr>
  <td scope="row">.line_items</td>
  <td><a href="#list">List</a>&lt;LineItem&gt;</td>
  <td>Returns a list containing the line items in the cart.</td>
</tr>
<tr>
  <td scope="row">.presentment_currency</td>
  <td><a href="#list">List</a>&lt;String&gt;</td>
  <td>Returns the customer's local (presentment) currency (in <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO 4217</a> format). For example, USD. </td>
</tr>
<tr>
  <td scope="row">.subtotal_price</td>
  <td><a href="#money">Money</a></td>
  <td>Returns the subtotal price of the cart after line item discounts are applied but before discount codes are applied.</td>
</tr>
<tr>
  <td scope="row">.total_weight</td>
  <td><a href="https://shopify.dev/api/liquid/objects/line_item#line_item-grams">grams</a></td>
  <td>Returns the total weight of all the line items in the cart.</td>
</tr>

CartDiscount::FixedAmount

CartDiscount::FixedAmount ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.codeస్ట్రింగ్తగ్గింపును వర్తింపజేయడానికి ఉపయోగించిన డిస్కౌంట్ కోడ్‌ను తిరిగి ఇస్తుంది.
.amountMoneyతగ్గింపు యొక్క డబ్బు మొత్తాన్ని అందిస్తుంది.
.reject({ message: String })nilకార్ట్‌కు అప్లై చేసిన డిస్కౌంట్ కోడ్‌ను తిరస్కరిస్తుంది. ఒక message అవసరం.
.rejected?Booleanడిస్కౌంట్ కోడ్ తిరస్కరించబడిందో లేదో అందిస్తుంది.

CartDiscount::Percentage

CartDiscount::Percentage ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.codeస్ట్రింగ్తగ్గింపును వర్తింపజేయడానికి ఉపయోగించిన డిస్కౌంట్ కోడ్‌ను తిరిగి ఇస్తుంది.
.percentageDecimalతగ్గింపు యొక్క శాతం మొత్తాన్ని అందిస్తుంది.
.reject({ message: String })nilకార్ట్‌కు అప్లై చేసిన డిస్కౌంట్ కోడ్‌ను తిరస్కరిస్తుంది. ఒక message అవసరం.
.rejected?Booleanడిస్కౌంట్ కోడ్ తిరస్కరించబడిందో లేదో అందిస్తుంది.

CartDiscount::Shipping

CartDiscount::Shipping ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.codeస్ట్రింగ్తగ్గింపును వర్తింపజేయడానికి ఉపయోగించిన డిస్కౌంట్ కోడ్‌ను తిరిగి ఇస్తుంది.
.reject({ message: String })nilకార్ట్‌కు అప్లై చేసిన డిస్కౌంట్ కోడ్‌ను తిరస్కరిస్తుంది. ఒక message అవసరం.
.rejected?Booleanడిస్కౌంట్ కోడ్ తిరస్కరించబడిందో లేదో అందిస్తుంది.

Customer

Customer ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.idIntegerకస్టమర్ ID నంబర్‌ను అందిస్తుంది.
.emailస్ట్రింగ్కస్టమర్ ఇమెయిల్ చిరునామాను అందిస్తుంది.
.tagsList<Tag>కస్టమర్ కోసం సెట్ చేసిన ఏవైనా ట్యాగ్‌లను సూచించే స్ట్రింగ్‌ల లిస్ట్‌ను అందిస్తుంది.
.orders_countIntegerకస్టమర్ ప్లేస్ చేసిన మొత్తం ఆర్డర్‌ల సంఖ్యను అందిస్తుంది.
.total_spentMoneyఅన్ని ఆర్డర్‌లలో కస్టమర్ ఖర్చు చేసిన మొత్తం డబ్బును అందిస్తుంది.
.accepts_marketing?Booleanకస్టమర్ మార్కెటింగ్‌ను అంగీకరిస్తారో లేదో అందిస్తుంది.

LineItem

LineItem ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.gramsgramsలైన్ ఐటెమ్ యొక్క మొత్తం బరువును అందిస్తుంది.
.line_priceMoneyలైన్ ఐటెమ్ యొక్క ధర.
.discounted?Booleanలైన్ ఐటెమ్ ధర స్క్రిప్ట్ ద్వారా లేదా మాన్యువల్‌గా అప్లై చేసిన తగ్గింపు ద్వారా తగ్గించబడిందో లేదో అందిస్తుంది. డిస్కౌంట్ కోడ్‌ల ఉపయోగం తిరిగి ఇచ్చే విలువపై ప్రభావం చూపదు.
.propertieshashఈ లైన్ ఐటెమ్స్ కోసం పేర్కొన్న ప్రాపర్టీలను అందిస్తుంది.
.variantVariantలైన్ ఐటెమ్ ద్వారా సూచించబడిన నిర్దిష్ట ప్రొడక్ట్ వేరియంట్‌ను అందిస్తుంది.
.quantityIntegerఈ లైన్ ఐటెమ్ పరిమాణాన్ని అందిస్తుంది.
.selling_plan_idIntegerలైన్ ఐటెమ్ కోసం విక్రయ ప్రణాళిక యొక్క IDని అందిస్తుంది. స్టోర్ సబ్‌స్క్రిప్షన్‌లను విక్రయించినప్పుడు మరియు ప్రొడక్ట్ వేరియంట్ సబ్‌స్క్రిప్షన్‌గా విక్రయించబడినప్పుడు స్క్రిప్ట్ గుర్తించాలనుకున్నప్పుడు ఈ పద్ధతి ఉపయోగపడుతుంది.

List

List ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.newListలిస్ట్‌ను సూచించడానికి కొత్త ఆబ్జెక్ట్‌ను సృష్టిస్తుంది.
.[]Element లేదా nil

పేర్కొన్న ఇండెక్స్ వద్ద ఉన్న మూలకాన్ని అందిస్తుంది.

.&List

రెండు లిస్ట్‌లలో ఉమ్మడిగా ఉండే మూలకాలతో, నకిలీలు లేకుండా కొత్త లిస్ట్‌ను అందిస్తుంది.

.delete_ifListఆప్షనల్ కోడ్ బ్లాక్‌ను ఉపయోగించి మూలకాలను తొలగించండి. Ruby యొక్క delete_if పద్ధతి కోసం డాక్యుమెంటేషన్ చూడండి.
.empty?Boolean

లిస్ట్‌లో ఎలాంటి మూలకాలు లేకపోతే trueను అందిస్తుంది.

.firstElement లేదా nil

లిస్ట్ ఖాళీగా ఉంటే మొదటి మూలకాన్ని లేదా nilని అందిస్తుంది.

.index(*args, &block)int లేదా nil

లిస్ట్ యొక్క మొదటి మూలకం ఇండెక్స్‌ను అందిస్తుంది. ఆర్గ్యుమెంట్‌కు బదులుగా బ్లాక్ ఇవ్వబడితే, బ్లాక్ ఏ మొదటి మూలకానికి true అవుతుందో దాని ఇండెక్స్‌ను అందిస్తుంది.

.rindex(*args, &block)int లేదా nil

లిస్ట్ యొక్క చివరి మూలకం ఇండెక్స్‌ను అందిస్తుంది. ఆర్గ్యుమెంట్‌కు బదులుగా బ్లాక్ ఇవ్వబడితే, బ్లాక్ ఏ మొదటి మూలకానికి true అవుతుందో దాని ఇండెక్స్‌ను అందిస్తుంది.

.lastElement లేదా nil

లిస్ట్ ఖాళీగా ఉంటే చివరి మూలకాన్ని లేదా nilని అందిస్తుంది.

.lengthint

లిస్ట్‌లోని మూలకాల సంఖ్యను అందిస్తుంది.

.sizeint

lengthకి మారుపేరు.

.each(*args, &block)List

లిస్ట్‌లోని ప్రతి మూలకానికి ఒకసారి బ్లాక్‌ను కాల్ చేస్తుంది, మూలకాన్ని బ్లాక్‌కు పరామితిగా పంపుతుంది.

ShippingAddress

ShippingAddress ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.nameస్ట్రింగ్షిప్పింగ్ చిరునామాతో అనుబంధించబడిన వ్యక్తి పేరును అందిస్తుంది.
.address1స్ట్రింగ్షిప్పింగ్ చిరునామాలోని వీధి చిరునామా భాగాన్ని అందిస్తుంది.
.address2స్ట్రింగ్షిప్పింగ్ చిరునామాలోని వీధి చిరునామా భాగం యొక్క ఆప్షనల్ అదనపు ఫీల్డ్‌ను అందిస్తుంది.
.phoneస్ట్రింగ్షిప్పింగ్ చిరునామా యొక్క ఫోన్ నంబర్‌ను అందిస్తుంది.
.cityస్ట్రింగ్షిప్పింగ్ చిరునామా యొక్క నగరాన్ని అందిస్తుంది.
.zipస్ట్రింగ్షిప్పింగ్ చిరునామాకు చెందిన ZIP కోడ్‌ను అందిస్తుంది.
.provinceస్ట్రింగ్షిప్పింగ్ చిరునామాకు చెందిన ప్రావిన్స్/రాష్ట్రాన్ని అందిస్తుంది.
.province_codeస్ట్రింగ్షిప్పింగ్ చిరునామాలోని ప్రావిన్స్/రాష్ట్రానికి సంబంధించిన సంక్షిప్త విలువను అందిస్తుంది.
.country_codeస్ట్రింగ్షిప్పింగ్ చిరునామాలోని దేశానికి సంబంధించిన సంక్షిప్త విలువను అందిస్తుంది.

Money

Money ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.derived_from_presentment(customer_cents:X)Moneyకస్టమర్ స్థానిక (ప్రెజెంట్‌మెంట్) కరెన్సీ నుండి మీ స్టోర్ కరెన్సీకి (సెంట్లలోని) మొత్తాన్ని మారుస్తుంది. ఈ పద్ధతి customer_cents పారామీటర్‌ను అంగీకరిస్తుంది, ఇది సెంట్లలోని సంఖ్యను తీసుకుంటుంది. ఉదాహరణకు, Money.derived_from_presentment(customer_cents: 500).
.newMoneyధరను సూచించడానికి కొత్త ఆబ్జెక్ట్‌ను సృష్టిస్తుంది.
.zeroMoney

సున్నా ధరతో కొత్త ఆబ్జెక్ట్‌ను సృష్టిస్తుంది.

+Moneyరెండు Money ఆబ్జెక్ట్‌లను జోడిస్తుంది.
-Moneyఒక Money ఆబ్జెక్ట్ నుండి మరొక దానిని తీసివేస్తుంది.
*MoneyMoney ఆబ్జెక్ట్‌ను ఒక సంఖ్యతో గుణిస్తుంది.

Money ఉదాహరణలు

Money.new(cents: 1000)

1000 సెంట్లు లేదా $10ని సూచించే Money ఆబ్జెక్ట్‌ను సృష్టిస్తుంది.

Money.new(cents: 100) * 50

$1ని సూచించే Money ఆబ్జెక్ట్‌ను సృష్టించి, ఆపై ఆ మొత్తాన్ని 50తో గుణిస్తుంది. $50ని సూచించే Money ఆబ్జెక్ట్‌ను అందిస్తుంది.

వేరియంట్

Variant ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.idIntegerవేరియంట్ యొక్క ID నంబర్‌ను అందిస్తుంది.
.priceMoneyవేరియంట్ యొక్క యూనిట్ ధరను అందిస్తుంది.
.productProductవేరియంట్‌కు అనుబంధించబడిన ఉత్పత్తిని అందిస్తుంది.
.skusList<String>ఇన్వెంటరీని ట్రాక్ చేయడానికి తరచుగా ఉపయోగించే వేరియంట్ స్టాక్ కీపింగ్ యూనిట్‌లను (SKUలు) అందిస్తుంది.
.titleస్ట్రింగ్వేరియంట్ టైటిల్‌ను అందిస్తుంది.

ఉత్పత్తి

Product ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.idIntegerఉత్పత్తి యొక్క ID నంబర్‌ను అందిస్తుంది.
.gift_card?Booleanఉత్పత్తి అనేది గిఫ్ట్ కార్డ్ అవునా, కాదా అని అందిస్తుంది.
.tagsList<Tag>ఈ ఉత్పత్తి కోసం సెట్ చేయబడిన ట్యాగ్‌లను సూచించే స్ట్రింగ్‌ల జాబితాను అందిస్తుంది.
.product_typeస్ట్రింగ్ఉత్పత్తిని ట్యాగ్ చేయగల ఒక వర్గీకరణ, దీనిని సాధారణంగా ఫిల్టర్ చేయడానికి మరియు శోధించడానికి ఉపయోగిస్తారు.
.vendorస్ట్రింగ్ఈ ఉత్పత్తి యొక్క వెండర్‌ను అందిస్తుంది.

Kernel

Kernel అనేది ప్రతి క్లాస్‌లో చేర్చబడిన ఒక Ruby మాడ్యూల్. ఫలితంగా, దాని పద్ధతులు ప్రతి ఆబ్జెక్ట్‌కు అందుబాటులో ఉంటాయి. ఈ పద్ధతులు ఇతర భాషలలో గ్లోబల్ ఫంక్షన్‌లు పని చేసే విధంగానే పని చేస్తాయి.

Kernel ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.exitఏదీ లేదుఎలాంటి ఎర్రర్ లేకుండా ప్రస్తుత స్క్రిప్ట్ ఎగ్జిక్యూషన్‌ను ముగిస్తుంది. Output.cartకు దేనినైనా కేటాయించకముందే దీనిని రన్ చేసినట్లయితే, స్క్రిప్ట్ ఎలాంటి ప్రభావాన్ని చూపదు. ఉదాహరణకు, కస్టమర్ స్క్రిప్ట్ రన్ చేయడానికి అర్హత పొందకపోతే, స్క్రిప్ట్‌ల నుండి నిష్క్రమించడానికి ఇది ఒక ఉపయోగకరమైన మార్గం.

Kernel ఉదాహరణ

customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
  # Employees are not eligible for this promotion.
  exit
end

లైన్ ఐటెమ్ పద్ధతులు

కింది పద్ధతులు కేవలం లైన్ ఐటెమ్ స్క్రిప్ట్‌లలో మాత్రమే ఉపయోగించబడతాయి:

కార్ట్

లైన్ ఐటెమ్ స్క్రిప్ట్‌లలో Cart ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.subtotal_price_wasMoneyఎలాంటి తగ్గింపులు వర్తింపజేయక ముందు కార్ట్ యొక్క ఉపమొత్తం ధరను అందిస్తుంది.
.subtotal_price_changed?Booleanఉపమొత్తం ధర మారిందో లేదో అందిస్తుంది.

LineItem

లైన్ ఐటెమ్ స్క్రిప్ట్‌లలో LineItem ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.change_line_price(Money new_price, { message: String }) Moneyలైన్ ఐటెమ్ ధరను పేర్కొన్న మొత్తానికి మార్చండి. ఒక message అవసరం. new_price తప్పనిసరిగా ప్రస్తుత ధర కంటే తక్కువగా ఉండాలి.
.original_line_priceMoneyస్క్రిప్ట్‌లు మరియు తగ్గింపులు వర్తింపజేయక ముందు లైన్ ఐటెమ్ యొక్క అసలు ధరను అందిస్తుంది.
.line_price_wasMoneyప్రస్తుత స్క్రిప్ట్ ద్వారా మార్పులు వర్తింపజేయక ముందు లైన్ ఐటెమ్ యొక్క ధరను అందిస్తుంది.
.line_price_changed?Booleanలైన్ ఐటెమ్ యొక్క ధర మారిందో లేదో అందిస్తుంది.
.change_properties(hash new_properties, { message: String }) hashలైన్ ఐటెమ్ కోసం కొత్త ప్రాపర్టీలను సెట్ చేస్తుంది. ఒరిజినల్ ప్రాపర్టీల హ్యాష్ properties_wasలో స్టోర్ చేయబడుతుంది మరియు పద్ధతికి పాస్ చేయబడిన ప్రాపర్టీల హ్యాష్ అనేది లైన్ ఐటెమ్ కోసం కొత్త ప్రాపర్టీలు అవుతుంది.
.properties_washashమార్పులు చేయక ముందు లైన్ ఐటెమ్ యొక్క ఒరిజినల్ ప్రాపర్టీల హ్యాష్‌ను అందిస్తుంది.
.properties_changed?Booleanలైన్ ఐటెమ్ కోసం ప్రాపర్టీలు మారాయో లేదో అందిస్తుంది.
.split({ take: Integer })LineItemఒక లైన్ ఐటెమ్‌ను రెండు లైన్ ఐటెమ్‌లుగా విభజిస్తుంది. కొత్త లైన్ ఐటెమ్‌ను సృష్టించడానికి ఒరిజినల్ లైన్ ఐటెమ్ నుండి ఎంత పరిమాణం తీసివేయాలనే దానిని take నిర్దేశిస్తుంది.

.split ఉదాహరణ

ఈ ఉదాహరణ స్క్రిప్ట్ original_line_item అనే లైన్ ఐటెమ్‌ను రెండు లైన్ ఐటెమ్‌లుగా విభజిస్తుంది. కొత్త లైన్ ఐటెమ్ పరిమాణం 1ని కలిగి ఉంటుంది (take: 1 ద్వారా పేర్కొనబడింది). ఈ స్క్రిప్ట్ ఆ తర్వాత "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
end

వేరియంట్

లైన్ ఐటెమ్ స్క్రిప్ట్‌లలో వేరియంట్ ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.compare_at_priceMoneyవేరియంట్ యొక్క సరిపోల్చే ధరను రిటర్న్ చేస్తుంది. వేరియంట్‌కి సరిపోల్చే ధర లేకపోతే, nilని రిటర్న్ చేస్తుంది.

షిప్పింగ్ పద్ధతులు

షిప్పింగ్ స్క్రిప్ట్‌లలో కింది పద్ధతులను ఉపయోగించవచ్చు:

ఇన్‌పుట్

షిప్పింగ్ స్క్రిప్ట్‌లలో ఇన్‌పుట్ ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.shipping_ratesShippingRateListఅన్ని షిప్పింగ్ రేట్ల లిస్ట్‌ను రిటర్న్ చేస్తుంది.

ShippingRateList

షిప్పింగ్ స్క్రిప్ట్‌లలో ShippingRateList ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.delete_ifShippingRateListఆప్షనల్ కోడ్ బ్లాక్‌ని ఉపయోగించి షిప్పింగ్ రేట్లను తొలగించండి. రూబీ యొక్క delete_if పద్ధతి కోసం డాక్యుమెంటేషన్ చూడండి.
.sort!ShippingRateListపోలిక ఆపరేటర్ లేదా ఆప్షనల్ కోడ్ బ్లాక్‌ని ఉపయోగించి షిప్పింగ్ రేట్లను క్రమబద్ధీకరించండి. రూబీ యొక్క sort! పద్ధతి కోసం డాక్యుమెంటేషన్ చూడండి.
.sort_by!ShippingRateListఆప్షనల్ కోడ్ బ్లాక్‌ని ఉపయోగించి షిప్పింగ్ రేట్లను క్రమబద్ధీకరించండి. రూబీ యొక్క sort_by! పద్ధతి కోసం డాక్యుమెంటేషన్ చూడండి.

ShippingRate

షిప్పింగ్ స్క్రిప్ట్‌లలో ShippingRate ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.codeస్ట్రింగ్షిప్పింగ్ రేటు కోడ్‌ను రిటర్న్ చేస్తుంది.
.markupMoneyవర్తిస్తే, ఒక షిప్పింగ్ రేటు కోసం మార్కప్‌ను రిటర్న్ చేస్తుంది.
.nameస్ట్రింగ్షిప్పింగ్ రేటు పేరును రిటర్న్ చేస్తుంది. change_name పద్ధతిని ఉపయోగించడం ద్వారా దీన్ని సవరించవచ్చు.
.priceMoneyషిప్పింగ్ రేటు ధరను రిటర్న్ చేస్తుంది.
.sourceస్ట్రింగ్వర్తిస్తే, షిప్పింగ్ రేట్‌తో అనుబంధించబడిన సోర్స్ (క్యారియర్)ను రిటర్న్ చేస్తుంది. దీన్ని మార్చడం సాధ్యం కాదు.
.change_name(String new_name)స్ట్రింగ్ షిప్పింగ్ రేటు పేరును (గరిష్టంగా 255 అక్షరాలు) మారుస్తుంది. సోర్స్‌ను మార్చడం, తొలగించడం లేదా దాచడం సాధ్యం కాదు.
.apply_discount(Money discount, { message: String })Moneyపేర్కొన్న స్థిర మొత్తం తగ్గింపును వర్తింపజేస్తుంది. ధరను 0 కన్నా తక్కువకు తగ్గించడం సాధ్యం కాదు. మెసేజ్ తప్పనిసరిగా ఉండాలి.
.phone_required?Booleanషిప్పింగ్ రేట్‌ను పొందడానికి ఫోన్ నంబర్ అవసరమైతే trueని లేదా ఫోన్ నంబర్ అవసరం లేకపోతే falseని రిటర్న్ చేస్తుంది.

చెల్లింపు పద్ధతులు

చెల్లింపు స్క్రిప్ట్‌లలో కింది పద్ధతులను ఉపయోగించవచ్చు:

ఇన్‌పుట్

చెల్లింపు స్క్రిప్ట్‌లలో ఇన్‌పుట్ ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.payment_gatewaysPaymentGatewaysListస్టోర్‌లోని అన్ని పేమెంట్ గేట్‌వేల లిస్ట్‌ను రిటర్న్ చేస్తుంది.

PaymentGatewayList

చెల్లింపు స్క్రిప్ట్‌లలో PaymentGatewayList ఆబ్జెక్ట్‌ను ఉపయోగించే స్క్రిప్ట్ పద్ధతులు
పద్ధతిరిటర్న్ రకంవివరణ
.delete_ifPaymentGatewayListఆప్షనల్ కోడ్ బ్లాక్‌ని ఉపయోగించి పేమెంట్ గేట్‌వేలను తొలగించండి. రూబీ యొక్క delete_if పద్ధతి కోసం డాక్యుమెంటేషన్ చూడండి.
.sort!PaymentGatewayListపోలిక ఆపరేటర్ లేదా ఆప్షనల్ కోడ్ బ్లాక్‌ని ఉపయోగించి పేమెంట్ గేట్‌వేలను క్రమబద్ధీకరించండి. రూబీ యొక్క sort! పద్ధతి కోసం డాక్యుమెంటేషన్ చూడండి.
.sort_by!PaymentGatewayListఆప్షనల్ కోడ్ బ్లాక్‌ని ఉపయోగించి పేమెంట్ గేట్‌వేలను క్రమబద్ధీకరించండి. రూబీ యొక్క sort_by! పద్ధతి కోసం డాక్యుమెంటేషన్ చూడండి.

PaymentGateway

పద్ధతిరిటర్న్ రకంవివరణ
.nameస్ట్రింగ్పేమెంట్ గేట్‌వే పేరును రిటర్న్ చేస్తుంది.
.enabled_card_brandsList<String>

పేమెంట్ గేట్‌వే క్రెడిట్ కార్డ్‌లకు మద్దతు ఇస్తే, స్టోర్ ఆమోదించే క్రెడిట్ కార్డ్ రకాల లిస్ట్‌ను రిటర్న్ చేస్తుంది. గేట్‌వే క్రెడిట్ కార్డ్‌లకు మద్దతు ఇవ్వకపోతే, ఖాళీ లిస్ట్‌ను రిటర్న్ చేస్తుంది.

.change_name(String new_name)స్ట్రింగ్పేమెంట్ గేట్‌వే పేరును మారుస్తుంది. లోగోలు ఉన్న పేమెంట్ గేట్‌వేల పేరును మార్చడం సాధ్యం కాదు.

ఉదాహరణలు

కింది లైన్ ఐటెమ్ స్క్రిప్ట్ ఉదాహరణలో, కస్టమర్ గిఫ్ట్ కార్డ్ కాని ఉత్పత్తిని ఆర్డర్ చేసినప్పుడు, ఉత్పత్తి ధర $9 తగ్గుతుంది. అంతేకాకుండా, మీ స్టోర్‌కు చేసిన అన్ని సందర్శనలలో కస్టమర్ ఖర్చు చేసిన మొత్తం కూడా చూపబడుతుంది:

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