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કાર્ટમ્યૂટેબલ (mutable) કાર્ટ ઑબ્જેક્ટ રિટર્ન કરે છે.
.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સ્ટ્રિંગડિસ્કાઉન્ટ લાગુ કરવા માટે ઉપયોગમાં લેવાયેલ ડિસ્કાઉન્ટ કોડ રિટર્ન કરે છે.
.amountનાણાંડિસ્કાઉન્ટની નાણાંકીય રકમ પરત કરે છે.
.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_spentનાણાંગ્રાહકે તમામ ઑર્ડર પર ખર્ચ કરેલી કુલ રકમ પરત કરે છે.
.accepts_marketing?Booleanગ્રાહક માર્કેટિંગ સ્વીકારે છે કે કેમ તે પરત કરે છે.

LineItem

LineItem ઑબ્જેક્ટનો ઉપયોગ કરતી સ્ક્રિપ્ટ પદ્ધતિઓ
પદ્ધતિરિટર્ન પ્રકારવર્ણન
.gramsgramsલાઇન આઇટમનું કુલ વજન પરત કરે છે.
.line_priceનાણાંલાઇન આઇટમની કિંમત.
.discounted?Booleanલાઇન આઇટમની કિંમતમાં સ્ક્રિપ્ટ અથવા મેન્યુઅલી લાગુ કરાયેલા ડિસ્કાઉન્ટ દ્વારા ઘટાડો કરવામાં આવ્યો છે કે કેમ તે પરત કરે છે. ડિસ્કાઉન્ટ કોડનો ઉપયોગ રિટર્ન વેલ્યૂને અસર કરતો નથી.
.propertieshashઆ લાઇન આઇટમ માટે નિર્દિષ્ટ કરેલી પ્રૉપર્ટી પરત કરે છે.
.variantVariantલાઇન આઇટમ દ્વારા રજૂ કરવામાં આવેલ ચોક્કસ પ્રોડક્ટ વેરિઅન્ટને પરત કરે છે.
.quantityIntegerઆ લાઇન આઇટમનો જથ્થો પરત કરે છે.
.selling_plan_idIntegerલાઇન આઇટમ માટેના વેચાણ પ્લાનનો ID પરત કરે છે. જ્યારે સ્ટોર સબ્સ્ક્રિપ્શન વેચતો હોય અને તમે ઇચ્છતા હોવ કે સ્ક્રિપ્ટ એ શોધે કે પ્રોડક્ટ વેરિઅન્ટ સબ્સ્ક્રિપ્શન તરીકે વેચાય છે ત્યારે આ પદ્ધતિ ઉપયોગી છે.

List

List ઑબ્જેક્ટનો ઉપયોગ કરતી સ્ક્રિપ્ટ પદ્ધતિઓ
પદ્ધતિરિટર્ન પ્રકારવર્ણન
.newListલિસ્ટને દર્શાવવા માટે નવો ઑબ્જેક્ટ બનાવે છે.
.[]એલિમેન્ટ અથવા nil

નિર્દિષ્ટ કરેલા ઇન્ડેક્સ પર એલિમેન્ટ પરત કરે છે.

.&List

બંને લિસ્ટમાં સામાન્ય હોય તેવા એલિમેન્ટ ધરાવતું નવું લિસ્ટ પરત કરે છે, જેમાં કોઈ ડુપ્લિકેટ્સ હોતા નથી.

.delete_ifListવૈકલ્પિક કોડ બ્લૉકનો ઉપયોગ કરીને એલિમેન્ટને ડિલીટ કરો. Ruby ની delete_if પદ્ધતિ માટેના દસ્તાવેજો જુઓ.
.empty?Boolean

જો લિસ્ટમાં કોઈ એલિમેન્ટ ન હોય, તો true પરત કરે છે.

.firstએલિમેન્ટ અથવા nil

પ્રથમ એલિમેન્ટ અથવા જો લિસ્ટ ખાલી હોય તો nil પરત કરે છે.

.index(*args, &block)int અથવા nil

લિસ્ટના પ્રથમ એલિમેન્ટનો ઇન્ડેક્સ પરત કરે છે. જો આર્ગ્યૂમેન્ટના બદલે કોઈ બ્લૉક આપવામાં આવ્યો હોય, તો જે એલિમેન્ટ માટે બ્લૉક true હોય તે પ્રથમ એલિમેન્ટનો ઇન્ડેક્સ પરત કરે છે.

.rindex(*args, &block)int અથવા nil

લિસ્ટના છેલ્લા એલિમેન્ટનો ઇન્ડેક્સ પરત કરે છે. જો આર્ગ્યૂમેન્ટના બદલે કોઈ બ્લૉક આપવામાં આવ્યો હોય, તો જે એલિમેન્ટ માટે બ્લૉક true હોય તે પ્રથમ એલિમેન્ટનો ઇન્ડેક્સ પરત કરે છે.

.lastએલિમેન્ટ અથવા 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)નાણાંગ્રાહકના સ્થાનિક (પ્રસ્તુતિ) ચલણમાંથી રકમને (સેન્ટમાં) તમારા સ્ટોરના ચલણમાં રૂપાંતરિત કરે છે. આ પદ્ધતિ customer_cents પૅરામીટર સ્વીકારે છે, જે સેન્ટમાં નંબર સ્વીકારે છે. ઉદાહરણ તરીકે, Money.derived_from_presentment(customer_cents: 500).
.newનાણાંકિંમતને દર્શાવવા માટે નવો ઑબ્જેક્ટ બનાવે છે.
.zeroનાણાં

શૂન્ય કિંમત સાથે નવો ઑબ્જેક્ટ બનાવે છે.

+નાણાંબે Money ઑબ્જેક્ટને ઉમેરે છે.
-નાણાંએક Money ઑબ્જેક્ટને બીજામાંથી બાદ કરે છે.
*નાણાંMoney ઑબ્જેક્ટનો એક નંબર સાથે ગુણાકાર કરે છે.

Moneyનાં ઉદાહરણો

Money.new(cents: 1000)

1000 સેન્ટ અથવા $10 દર્શાવતો Money ઑબ્જેક્ટ બનાવે છે.

Money.new(cents: 100) * 50

$1 દર્શાવતો Money ઑબ્જેક્ટ બનાવે છે, પછી તે રકમનો 50 સાથે ગુણાકાર કરે છે. $50 દર્શાવતો Money ઑબ્જેક્ટ પરત કરે છે.

વેરિઅન્ટ

વેરિઅન્ટ ઑબ્જેક્ટનો ઉપયોગ કરતી સ્ક્રિપ્ટ પદ્ધતિઓ
પદ્ધતિરિટર્ન પ્રકારવર્ણન
.idIntegerવેરિઅન્ટનો ID નંબર પરત કરે છે.
.priceનાણાંવેરિઅન્ટની એકમ કિંમત પરત કરે છે.
.productપ્રોડક્ટવેરિઅન્ટની સંબંધિત પ્રોડક્ટ પરત કરે છે.
.skusસૂચિ<સ્ટ્રિંગ>વેરિઅન્ટના સ્ટોક કીપિંગ યુનિટ (SKUs) પરત કરે છે, જેનો ઉપયોગ મોટા ભાગે ઇન્વેન્ટરી ટ્રૅક કરવા માટે થાય છે.
.titleસ્ટ્રિંગવેરિઅન્ટનું શીર્ષક પરત કરે છે.

પ્રોડક્ટ

પ્રોડક્ટ ઑબ્જેક્ટનો ઉપયોગ કરતી સ્ક્રિપ્ટ પદ્ધતિઓ
પદ્ધતિરિટર્ન પ્રકારવર્ણન
.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_wasનાણાંકોઈપણ ડિસ્કાઉન્ટ લાગુ કરવામાં આવે તે પહેલાં કાર્ટની પેટા સરવાળાની કિંમત પરત કરે છે.
.subtotal_price_changed?Booleanપેટા સરવાળાની કિંમતમાં ફેરફાર થયો છે કે કેમ તે પરત કરે છે.

LineItem

લાઇન આઇટમ સ્ક્રિપ્ટમાં LineItem ઑબ્જેક્ટનો ઉપયોગ કરતી સ્ક્રિપ્ટ પદ્ધતિઓ
પદ્ધતિરિટર્ન પ્રકારવર્ણન
.change_line_price(Money new_price, { message: String }) નાણાંલાઇન આઇટમની કિંમતને ઉલ્લેખિત રકમમાં બદલો. એક message જરૂરી છે. new_price વર્તમાન કિંમત કરતાં ઓછી હોવી જોઈએ.
.original_line_priceનાણાંસ્ક્રિપ્ટ અને ડિસ્કાઉન્ટ લાગુ કરવામાં આવે તે પહેલાં લાઇન આઇટમની મૂળ કિંમત પરત કરે છે.
.line_price_wasનાણાંવર્તમાન સ્ક્રિપ્ટ દ્વારા ફેરફારો લાગુ કરવામાં આવે તે પહેલાં લાઇન આઇટમની કિંમત પરત કરે છે.
.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_priceનાણાંવેરિઅન્ટની સરખામણી કિંમત રિટર્ન કરે છે. જો વેરિઅન્ટમાં સરખામણી કિંમત ન હોય તો nil રિટર્ન કરે છે.

શિપિંગ પદ્ધતિઓ

નીચેની પદ્ધતિઓનો શિપિંગ સ્ક્રિપ્ટ્સમાં ઉપયોગ કરી શકાય છે:

ઇનપુટ

શિપિંગ સ્ક્રિપ્ટ્સમાં ઇનપુટ ઑબ્જેક્ટનો ઉપયોગ કરતી સ્ક્રિપ્ટ પદ્ધતિઓ
પદ્ધતિરિટર્ન પ્રકારવર્ણન
.shipping_ratesShippingRateListબધા શિપિંગ દરોની સૂચિ રિટર્ન કરે છે.

ShippingRateList

શિપિંગ સ્ક્રિપ્ટ્સમાં ShippingRateList ઑબ્જેક્ટનો ઉપયોગ કરતી સ્ક્રિપ્ટ પદ્ધતિઓ
પદ્ધતિરિટર્ન પ્રકારવર્ણન
.delete_ifShippingRateListવૈકલ્પિક કોડ બ્લૉકનો ઉપયોગ કરીને શિપિંગ દરો ડિલીટ કરો. Ruby ની delete_if પદ્ધતિ માટે દસ્તાવેજીકરણ જુઓ.
.sort!ShippingRateListસરખામણી ઑપરેટરનો ઉપયોગ કરીને અથવા વૈકલ્પિક કોડ બ્લૉકનો ઉપયોગ કરીને શિપિંગ દરોને સૉર્ટ કરો. Ruby ની sort! પદ્ધતિ માટે દસ્તાવેજીકરણ જુઓ.
.sort_by!ShippingRateListવૈકલ્પિક કોડ બ્લૉકનો ઉપયોગ કરીને શિપિંગ દરોને સૉર્ટ કરો. Ruby ની sort_by! પદ્ધતિ માટે દસ્તાવેજીકરણ જુઓ.

ShippingRate

શિપિંગ સ્ક્રિપ્ટ્સમાં ShippingRate ઑબ્જેક્ટનો ઉપયોગ કરતી સ્ક્રિપ્ટ પદ્ધતિઓ
પદ્ધતિરિટર્ન પ્રકારવર્ણન
.codeસ્ટ્રિંગશિપિંગ દરનો કોડ રિટર્ન કરે છે.
.markupનાણાંજો લાગુ પડતું હોય, તો શિપિંગ દર માટે માર્કઅપ રિટર્ન કરે છે.
.nameસ્ટ્રિંગશિપિંગ દરનું નામ રિટર્ન કરે છે. તેને change_name પદ્ધતિનો ઉપયોગ કરીને સંશોધિત કરી શકાય છે.
.priceનાણાંશિપિંગ દરની કિંમત રિટર્ન કરે છે.
.sourceસ્ટ્રિંગજો સંબંધિત હોય, તો શિપિંગ દર સાથે સંકળાયેલ સૉર્સ (કૅરિઅર) રિટર્ન કરે છે. તેને સંશોધિત કરી શકાતું નથી.
.change_name(String new_name)સ્ટ્રિંગ શિપિંગ દરનું નામ (મહત્તમ 255 અક્ષરો સુધી) બદલે છે. સૉર્સને બદલવું, ડિલીટ કરવું અથવા છુપાવવું શક્ય નથી.
.apply_discount(Money discount, { message: String })નાણાંનિર્દિષ્ટ નિશ્ચિત રકમનું ડિસ્કાઉન્ટ લાગુ કરે છે. કિંમતને 0 થી નીચે ઘટાડી શકાતી નથી. મેસેજ આવશ્યક છે.
.phone_required?Booleanજો શિપિંગ દર મેળવવા માટે ફોન નંબર જરૂરી હોય તો true રિટર્ન કરે છે, અથવા જો ફોન નંબર જરૂરી ન હોય તો false રિટર્ન કરે છે.

ચુકવણી પદ્ધતિઓ

નીચેની પદ્ધતિઓનો પેમેન્ટ સ્ક્રિપ્ટ્સમાં ઉપયોગ કરી શકાય છે:

ઇનપુટ

પેમેન્ટ સ્ક્રિપ્ટ્સમાં ઇનપુટ ઑબ્જેક્ટનો ઉપયોગ કરતી સ્ક્રિપ્ટ પદ્ધતિઓ
પદ્ધતિરિટર્ન પ્રકારવર્ણન
.payment_gatewaysPaymentGatewaysListસ્ટોરના બધા પેમેન્ટ ગેટવેઝની સૂચિ રિટર્ન કરે છે.

PaymentGatewayList

પેમેન્ટ સ્ક્રિપ્ટ્સમાં PaymentGatewayList ઑબ્જેક્ટનો ઉપયોગ કરતી સ્ક્રિપ્ટ પદ્ધતિઓ
પદ્ધતિરિટર્ન પ્રકારવર્ણન
.delete_ifPaymentGatewayListવૈકલ્પિક કોડ બ્લૉકનો ઉપયોગ કરીને પેમેન્ટ ગેટવેઝ ડિલીટ કરો. Ruby ની delete_if પદ્ધતિ માટે દસ્તાવેજીકરણ જુઓ.
.sort!PaymentGatewayListસરખામણી ઑપરેટરનો ઉપયોગ કરીને અથવા વૈકલ્પિક કોડ બ્લૉકનો ઉપયોગ કરીને પેમેન્ટ ગેટવેઝને સૉર્ટ કરો. Ruby ની sort! પદ્ધતિ માટે દસ્તાવેજીકરણ જુઓ.
.sort_by!PaymentGatewayListવૈકલ્પિક કોડ બ્લૉકનો ઉપયોગ કરીને પેમેન્ટ ગેટવેઝને સૉર્ટ કરો. Ruby ની sort_by! પદ્ધતિ માટે દસ્તાવેજીકરણ જુઓ.

PaymentGateway

પદ્ધતિરિટર્ન પ્રકારવર્ણન
.nameસ્ટ્રિંગપેમેન્ટ ગેટવેનું નામ રિટર્ન કરે છે.
.enabled_card_brandsસૂચિ<સ્ટ્રિંગ>

જો પેમેન્ટ ગેટવે ક્રેડિટ કાર્ડ્સને સપોર્ટ કરતું હોય, તો સ્ટોર સ્વીકારે છે તેવા ક્રેડિટ કાર્ડના પ્રકારોની સૂચિ રિટર્ન કરે છે. જો ગેટવે ક્રેડિટ કાર્ડ્સને સપોર્ટ ન કરતું હોય, તો ખાલી સૂચિ રિટર્ન કરે છે.

.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