Shopify Yurtiçi Kargo Integration
Shopify's own shipping runs in eight countries and Turkey is not on that list: you cannot buy labels from the admin, you cannot show the carrier's live rate at checkout, and you cannot create a return label. That is why shipping integration in Turkey is not a comfort add-on; it replaces a missing piece. Setup starts with the corporate agreement and closes with your first label. In between, a barcode and a tracking number are separated from each other, the desi declaration changes your invoice directly, and the district problem at checkout is solved separately.
growing on Shopify with Nodus Works
Shopify Yurtiçi Kargo integration what is it?
The Shopify Yurtiçi Kargo integration is the connection that declares store orders as shipments to the carrier, prints the label, writes the tracking number on the order and reads delivery status back. Yurtiçi does not publish its own Shopify app; an integration tool builds the bridge using your corporate account credentials.
Setup starts with an agreement, not with writing code. After you sign a corporate contract and your customer code is defined, the integration credentials come from your branch. Those credentials are issued separately by shipment type, so you need to say which shipment types you will use from the start. To map these credentials correctly when they change by shipment type, you can take support from Nodus Works' Shopify integration and custom app development service.
Once the connection is live, daily work runs from one screen: the order is declared, the label is printed, the customer notification goes out from Shopify's own email when the tracking number is written on the order, and the order closes on its own when delivery status is read back. Cash-on-delivery and return flow are managed through the same connection.
What a shipping integration actually does
Once the connection is live, shipment declaration, label, tracking, delivery status, collection and returns become parts of the same flow. The six headings below cover the questions asked most often about the Shopify Yurtiçi Kargo integration.
Creating and declaring a shipment
The order address is declared with the data on the order instead of being typed into the carrier by hand. A label printed without a declaration has no counterpart, so this step is the first link in the flow; an undeclared label cannot be scanned at the branch.
Printing the label and barcode
The label is printed from the order screen, so you do not need to open a second panel. The carrier defines the barcode number; using a number the integration invented as a barcode produces a label that will not scan.
Writing the tracking number on the order
When the tracking number is written on the order, the customer notification goes out from Shopify's own email. This is the one step that cuts where-is-my-package questions; if the number is not written, the customer sees nothing.
Reading delivery status back
When the carrier status is written on the order, the order closes on its own. If status is not read back, the order list becomes a pile of unfulfilled orders and the start of the return window is tracked by hand.
Reconciling cash-on-delivery shipments
On a cash-on-delivery order the amount to collect is read from the order total and written on the shipment, and the order is marked paid when the money reaches the account. On the Shopify side this is set up as a manual payment method.
Return shipments
When a return code is produced and sent to the customer, the customer can leave the package at a branch, a pickup point or a parcel locker. This flow depends on a separate kolay iade agreement on the carrier side; without that agreement the code does not work.
How far does Shopify's own shipping go in Turkey?
The whole need for a shipping integration starts here. Shopify's shipping side was built for specific countries and Turkey is not on that list.
You cannot buy a label from the admin
Shopify's own shipping is tied to shipping origins in eight countries and Turkey is not on that list. The buy-a-label flow never appears on the order screen; the label is printed from the carrier panel or from an integration.
Checkout cannot show a live carrier rate
Pulling a live rate from the carrier's own account is available only on higher plans, and the supported carrier list has no Turkish shipping firm. So the shipping charge at checkout in a Turkish store is a fixed or conditional rate you set by hand.
A return label does not come out of Shopify
Creating a return label through Shopify requires both the shipping origin and the buyer address to be in the United States. In Turkey the return label is produced outside and uploaded to the order, or you choose no shipping needed on the approval screen.
The product card has no length, width or height
The Shopify product card has weight and no dimensions; dimensions live only on the package definition in shipping settings, and the package assigned to a product applies only on single-line orders. That is why the data needed to calculate desi is not on the order.
You cannot add a district field at checkout
On plans other than Plus you cannot add city and district pickers at checkout; a Shopify employee says this in a reply to a request from Turkey. The carrier side expects district as a separate, recognizable value.
The notification chain is ready, the trigger is yours
Shopify already carries shipping confirmation, shipping update, out for delivery and delivered notifications. The last two depend on an event from the carrier; so the notification layer exists, and the data that feeds it comes from the integration.
The shared result of these six points is this: in Turkey a shipping integration does not add convenience on top of Shopify, it puts a missing piece in place. Label production, tracking number and delivery status do not enter Shopify any other way.
How do you set up Shopify Yurtiçi Kargo integration?
The six steps below cover the whole setup, from the corporate agreement to printing the first label. The first two steps run with the carrier; the rest run with your store and the tool you use.
Sign your corporate agreement
The precondition for the integration is a contract with the firm and a customer code. The application runs through your branch or regional office; you declare your monthly shipment volume and package size and discuss which services on yurticikargo.com you will use.
Pick your shipment types and take your account credentials
Integration credentials are issued separately by shipment type: sender-paid, receiver-paid and cash-on-delivery each ask for different account data. Producing a return barcode and declaring desi also need extra permission; asking for these in the application stops you from waiting later.
Build the connection and define your sender details
The account credentials go into the tool you use, and your sender address and origin branch are defined. If you will ship from more than one branch, you need to ask the firm separately to merge branch data.
Bring address fields into the layout the carrier expects
Make address line 2 required at checkout and rename it to district in the checkout language; the integration treats that field as district. Shipments with an empty district or a district buried in free text fail at the declaration step.
Define the label, desi and payment setup
In this step you set the printer and label size you will use, how shipments will be declared, and, if you will use cash on delivery, the manual payment method on the Shopify side. If desi declaration is on, which value will be sent is also settled here.
Confirm the flow with a test shipment
Create a shipment from a single order, print the label, and check that the tracking number is written on the order and the customer notification goes out when the package is scanned at the branch. Then confirm that delivery status is read back and the order closes.
The table below shows which Shopify data maps to which counterpart on the carrier side.
| What Shopify has | What the carrier uses |
|---|---|
| Order | Shipment declaration |
| Shipping address | Recipient address |
| Address line 2 | District, must be a separate recognizable value |
| Phone | The number the notification message goes to |
| Weight | One side of the chargeable weight |
| Package definition | Source of the desi calculation, on single-line orders |
| Tracking number | Assigned after the barcode is scanned at the branch |
| Fulfillment | Label and packing slip |
| Payment status | Amount collected on a cash-on-delivery shipment |
| No Shopify field | Length, width, height; return code; origin branch; declaration type |
The last row of the table is where this work produces the most trouble. Length, width and height do not exist in Shopify at all, so the desi declaration is either a fixed value or derived from the package definition; return code, origin branch and declaration type live only on the carrier side.
Tell us about your catalog and current setup, and we will work out how the Shopify Yurtiçi Kargo integration should be built for your product structure. You do not need to fill in a form, reach us directly by phone, email or WhatsApp.
Where do you get Yurtiçi integration credentials?
The answer here is different from many other systems: you do not take the credentials from a panel yourself. Yurtiçi has no public developer page; the integration credentials are sent by your branch or regional office after the corporate agreement is complete.
The second detail is even more important and is specific to this firm: credentials are issued separately by shipment type. Sender-paid, receiver-paid and cash-on-delivery each ask for different account data; producing a return barcode and declaring desi also need extra permission. If you do not say which shipment types you will use in the application, you have to go back to the branch in the middle of setup for missing data.
Your corporate account also has its own interface: Self-Servis, which the firm offers to corporate customers, gives single or bulk order entry, barcode printing, collection management, reports and one-click courier call. The integration does not replace this, it makes it unnecessary: because order data comes from your store, you do not type the address into a second place by hand. For bulk labels and courier call, Self-Servis stays in your hand.
There is also the question of who the agreement belongs to. Apps do not provide a shipping agreement; you sign it in your own company's name and the invoice comes from the carrier. The alternative is stores without their own agreement shipping on an intermediary's bulk rate; in that case the fee is paid to the intermediary. The two models must not be mixed, because who the invoice comes from and who sets the rate both change.
Why does the tracking number not arrive at once?
This is the question asked most often on shipping integrations, and the answer is usually the process itself, not an error. A barcode and a tracking number are not the same thing, and the two are created at different moments.
A barcode and a tracking number are not the same thing
The barcode is an intermediate number produced so the carrier can recognize the package. The tracking number is assigned after the package reaches the branch, the barcode is scanned and the invoice is issued. That is why the tracking number is written on the order after the package reaches the branch, not at once.
An undeclared label cannot be scanned at the branch
The label shows an undeclared warning and the package does not enter the system. Printing the barcode first and declaring later is not a problem; the reverse is. The flow must always close with a declaration.
Label size decides whether the barcode will scan
The common size in ecommerce is a fifteen-by-ten-centimeter thermal label. You can print without a thermal printer, but printing a label-size design on large paper shrinks the barcode until it will not scan; in that case a packing-slip format is preferred.
If the tracking number is not written, the customer sees nothing
Shopify's notification chain starts when the tracking number is written on the order. When the number is not written, the customer cannot learn that the package has left, and the support load comes back to you; if you also sell on a marketplace, the same delay hits your score on that channel.
If delivery status is not read back, the order does not close
When status is not read back, the order list swells in unfulfilled status and the start of the return window is tracked by hand. When status arrives, the order closes on its own and end-of-day checks get shorter.
The notification message depends on the phone field
The text notification goes to the phone number on the shipping address. If phone is not required at checkout, the number stays empty and the message never goes out; making this field required is the precondition for the notification.
If the order is cancelled, the declaration must be cancelled as well; if the address changes, the declaration is cancelled and created again. After the package is on the road, both become branch work, so how far cancel and address change can go in the flow is something your team needs to know.
How is a cash-on-delivery shipment set up in Shopify?
Cash on delivery is set up separately on both sides: as a payment method on the Shopify side, and as a shipment type on the carrier side. Reconciliation between the two is the integration's job.
The Shopify counterpart is a manual payment method
In Settings, under payments, cash on delivery sits as a ready manual payment method. On such an order, payment opens as pending and is marked paid after collection happens.
The courier collects, the money is transferred to the sender
Collection is taken in cash or by credit card. According to the firm's own page, the amount reaches the seller's account within three business days from the delivery date after checks are complete.
A cash-on-delivery shipment is a separate declaration type
A sender-paid shipment and a cash-on-delivery shipment are not the same declaration, and this firm issues separate account credentials for the two. If the declaration type is not chosen correctly from the start, collection never happens and the package is delivered unpaid.
Reconciliation is the integration's job
The amount to collect is read from the order total and written on the shipment, and the order is marked paid when the money reaches the account. If this match is not set up, every order is marked by hand and at month end which collection belongs to which order is lost.
Region and amount limits are not built in
Restricting cash on delivery by region, setting an amount limit or adding a cash-on-delivery fee do not come as ready settings in Shopify. Those are solved with rate setup or an extra app.
Cash on delivery changes the return rate
Collecting payment at delivery raises the rate of packages that are not accepted, and every package that comes back means a two-way carriage fee. That is why stores that turn cash on delivery on need to watch the unaccepted-shipment rate separately.
Why is the shipping invoice higher than you expected?
There are two reasons and both come from Shopify's data structure: district cannot be stored as a separate field, and the product card has no dimensions. Both are problems that can be solved in setup.
Desi is volume turned into a charge
The invoice is issued on whichever is larger, weight or desi. In the firm's official calculation the package volume is found in cubic decimeters and divided by three on a domestic shipment and by five on an international shipment; the result is compared with kilograms.
Rounding is not always up
The firm's official page rounds the fraction up from one half and down below it. Some calculators on the internet write that it is always rounded up to the next whole number; that contradicts the official text.
The data to calculate desi is not on the order
The Shopify product card has no length, width or height field; dimensions live only on the package definition, and a multi-line order uses the store default package. That is why some integrations declare the shipment with a fixed desi.
The branch measures the real desi, the difference hits the invoice
If the declared value and the value measured at the branch differ, the invoice is issued on the measured value. The shipping charge you took from the customer stays fixed while your invoice changes, so the difference comes straight out of margin.
District must be a separate, recognizable value
The carrier side expects district as a separate field. A district buried in free text, misspelled or left empty fails shipment creation; the package goes to the wrong transfer hub and is delayed.
The fix is turning address line 2 into district
The path used in the field is one: address line 2 is made required in checkout settings and renamed to district by editing the checkout language. The second path is taking an address confirmation after the order.
These two topics are where your shipping cost grows quietly. Defining your package standards and declaring shipments on their real dimensions also lets you set the shipping rate at checkout to that real cost.
How do a return shipment and marketplace shipping split?
The one thing to know on the return side is that the return code is tied to an agreement. If you sell on more than one channel, two separate label worlds also come out of the same warehouse.
Kolay iade is tied to a separate agreement
The customer sending a free return with a code depends on the kolay iade agreement made with the firm; without the agreement the code does not work. If the agreement exists, the customer can leave the package at a branch, a pickup point or a parcel locker that is open at every hour of the day.
There are two return-code models
A fixed return code is the same on every return; a one-time code is specific to the order. This firm supports both models together; some firms allow only a fixed code, so this detail is checked when you change channel.
The return-label option does not appear in Shopify
You can turn on self-service returns in the store, but in Turkey the create-return-label option does not appear on the approval screen. An externally produced label is uploaded, or no shipping needed is chosen and the code is sent to the customer.
Marketplace shipping is not your agreement
A marketplace order usually leaves with the firm the platform chose and the label it produced, and the fee is cut from your payout. When you ship on your own agreement you produce the label and the invoice comes to you.
Shipping cost does not appear in one place
Marketplace shipping sits on the payout report, your own agreement sits on the monthly invoice, and cash on delivery sits in the collection flow. There is no single-screen answer to what is my shipping cost; the three sources have to be joined.
Multiple branches and split shipments are separate requests
The integration only produces shipments that the branch you have an agreement with can see; shipping from more than one branch means asking the firm to merge branch data. Splitting one order into more than one shipment is also not a capability every tool has.
If you have marketplace channels, label, invoice and return flow split in two: Trendyol and Hepsiburada packages leave with their own labels while store orders go on your agreement. To run the two flows in the same warehouse without mixing them, look at Station.
The most common mistakes in a Shopify shipping integration
The nine headings below are the mistakes met most often in setup. The results also look alike: the package stays at the branch, the customer is not informed, or the invoice comes in above what was expected.
Starting setup before the agreement
The precondition for the integration is a corporate contract and a customer code; apps do not provide this agreement. Setup cannot start because the account credentials do not arrive before the agreement is complete.
Not naming shipment types from the start
Account credentials are issued separately by shipment type; if you will use cash-on-delivery shipments or a return barcode, you need to say so in the application. Otherwise you go back to the branch in the middle of setup.
Printing a label without a declaration
An undeclared label cannot be scanned at the branch and the package does not enter the system. Printing the barcode first and declaring later is not a problem; the reverse is.
Going live without fixing the district field
Orders with an empty district or a district buried in free text fail at the declaration step, and the package goes to the wrong transfer hub. Turning address line 2 into district should be part of setup.
Never setting up the desi declaration
Shipments declared with a fixed desi have their real desi measured at the branch and the difference hits the invoice. The shipping charge taken from the customer stays fixed, so this difference comes straight out of margin.
Not writing the tracking number on the order
When the number is not written, Shopify's notification chain never starts and the customer cannot learn that the package has left. This is the largest cause of support load.
Not reading delivery status back
When status is not read back, the order list swells in unfulfilled status, the start of the return window cannot be tracked and end-of-day checks get longer.
Running cash-on-delivery reconciliation by hand
When the collected amount is not matched to the order, every order is marked by hand and at month end which collection belongs to which order is lost.
Printing the label at the wrong size
Printing a label-size design on large paper shrinks the barcode until it will not scan. If there is no thermal printer, a packing-slip format is preferred.
Three common problems and how we solve them
The three setup scenarios below show how we handle Shopify Yurtiçi Kargo integration problems we have solved in stores we connected.
Packages not accepted at the branch
ProblemThe warehouse team printed the labels and handed the packages to the courier, but a portion came back the same day. The shipments had not entered the system, and because no tracking information went to customers the support inbox filled the next day.
CauseThe labels were printed without a declaration. An undeclared label cannot be scanned at the branch, so the packages never entered the system; a printed barcode did not mean a shipment had been created.
SolutionThe flow was rebuilt so it closes with a declaration: the label can be printed only after the declaration succeeds, and the undeclared-shipment list is checked at end of day. When the tracking number was written on the order, the customer notification also started going out on its own.
The shipping invoice coming in above the estimate
ProblemCheckout had a fixed shipping charge and the monthly shipping invoice was coming in clearly above that charge. The difference looked small, but multiplied by order count it had a serious effect on monthly margin.
CauseShipments were being declared with a fixed desi, because the Shopify product card has no length, width or height field. The real desi of bulky products was measured at the branch and the invoice was issued on the measured value; the charge taken from the customer stayed fixed.
SolutionPackage standards were defined and products were tied to those packages, a separate shipping rate was set for bulky products, and the desi declaration started being produced from real dimensions. The gap closed, and the rate also sat on top of the real cost.
Delays caused by address errors
ProblemA portion of shipments failed at the declaration step, and another portion went to the wrong city and was delayed. The warehouse team had to call the customer every day to correct the address on a few orders by hand.
CauseThere was no separate field for district at checkout; customers wrote the district inside the address line or did not write it at all. The carrier side expects district as a separate, recognizable value, so the declaration failed.
SolutionAddress line 2 was made required in checkout settings and renamed to district; the integration was set to treat that field as district. The phone field was also made required, so cases where notification messages did not go out disappeared.
Station is the tool we built to run order, label, tracking and collection flow from one panel. If you also sell on marketplaces, their shipping flow stays separate, so seeing the two side by side makes the work easier.
Frequently Asked Questions
How do you set up Shopify Yurtiçi Kargo integration?
Does Yurtiçi Kargo have its own Shopify app?
Where do I get my Yurtiçi integration credentials?
Why are separate account credentials issued by shipment type?
Can I set up the integration without an agreement?
How is a shipping agreement made, do I have to go to a branch?
What is Self-Servis, can I use it instead of the integration?
Does Shopify's own shipping label work in Turkey?
Can checkout show a live shipping rate?
When is the tracking number added to the order?
Are the barcode on the label and the tracking number the same thing?
What does the shipment has not been declared warning mean?
If the tracking number never arrives, what should I check?
Which printer should I print barcodes from, can they be printed on large paper?
If I cancel the order, is the shipment cancelled too?
When does the money reach my account on a cash-on-delivery shipment?
How is cash on delivery set up on the Shopify side?
Can I restrict cash on delivery by region?
How is desi calculated, do I enter it?
Why did my invoice come in higher than I expected?
How is a district field added at checkout?
What happens if district is entered wrong?
How do I manage return processes, what is a return code?
Can I create a return label in Shopify?
Can I ship from more than one branch?
How do marketplace shipping and my own agreement split?
Can I work with more than one shipping firm at the same time?
Does the app set the shipping price?
BİZİ TERCİH
EDENLERİN ARASINDA
YER ALIN...
Herkes için Shopify çözümleri üretiyoruz.
Yeni bir Shopify mağazası kurmak, mevcut mağazanızı geliştirmek, özel entegrasyonlar yapmak veya hız problemlerini çözmek mi istiyorsunuz? Biz, teknik işleri sizin yerinize çözen uzman bir Shopify partneriyiz.

Dossha
#shopify

Les Benjamins
#shopify

Nocturne
#shopify

Fellas
#shopify

Mai
#shopify

Karaca
#shopify

Milagron
#shopify

Kiğılı
#shopifySeo

Şölen
#shopify

Adell
#shopifyB2B

Ohora
#shopify

Rendrea
#shopifyBooking

Babeskin
#shopify

The New Lab
#shopify

DTF Town
#shopify

Eczaclick
#shopifySeo

Termos Dünyası
#shopify

Halı.net
#shopify

Blend-r
#shopify

Oioi
#shopifySeo

Nowshopfun
#shopify

Marie Claire
#shopify

Gaziburma
#shopify

Dünyada Kitap
#shopify
NEDEN BİZİMLE
ÇALIŞMANIZ GEREKTİĞİNİ
SİZE ANLATMAK İSTERİZ
Shopify'ı çok iyi anlıyoruz; Türkiye'de her segmentin karşısına biz olarak çıkıyoruz :)







Sadece Shopify konuşanlardan oluşan bir takım

Hey!
Bannerlarım kesik gözüküyor :(
Yardım eder misiniz, kampanya dönemindeyim.
Selam Elif!
2 dakikaya çözüyoruz.





.webp)
.webp)


