DataFlex
DataFlex
Etsy: Find Shops
See more Etsy Examples
Demonstrates how to find Etsy shops by name or keyword.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoHttp
Variant vSbResponseBody
Handle hoSbResponseBody
Handle hoJResp
Integer iRespStatusCode
Integer iShop_id
String sShop_name
Integer iUser_id
Integer iCreation_tsz
String sTitle
String sAnnouncement
String sCurrency_code
Boolean iIs_vacation
String sVacation_message
String sSale_message
String sDigital_sale_message
Integer iLast_updated_tsz
Integer iListing_active_count
Integer iDigital_listing_count
String sLogin_name
Boolean iAccepts_custom_requests
String sPolicy_welcome
String sPolicy_payment
String sPolicy_shipping
String sPolicy_refunds
String sPolicy_additional
String sPolicy_seller_info
Integer iPolicy_updated_tsz
Boolean iPolicy_has_private_receipt_info
String sVacation_autoreply
String sUrl
String sImage_url_760x100
Integer iNum_favorers
String sUpcoming_local_event_id
String sIcon_url_fullxfull
Boolean iIs_using_structured_policies
Boolean iHas_onboarded_structured_policies
Boolean iHas_unstructured_policies
Integer iCustom_shops_state
Boolean iInclude_dispute_form_link
Boolean iIs_direct_checkout_onboarded
String sPolicy_privacy
Boolean iIs_calculated_eligible
Boolean iIs_opted_in_to_buyer_promise
Boolean iIs_shop_us_based
Integer j
Integer iCount_j
String sStrVal
Integer iCount
String sParamsShop_name
Integer iParamsLimit
Integer iParamsOffset
String sParamsPage
String sParamsLat
String sParamsLon
Integer iParamsDistance_max
String sV_type
Integer iPaginationEffective_limit
Integer iPaginationEffective_offset
String sPaginationNext_offset
Integer iPaginationEffective_page
String sPaginationNext_page
Integer i
Integer iCount_i
String sTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// Implements the following CURL command:
// curl -X GET \
// https://openapi.etsy.com/v2/shops?api_key=MY_ETSY_KEYSTRING&shop_name=99heads
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
Send CreateComObject of hoSbResponseBody
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComQuickGetSb Of hoHttp "https://openapi.etsy.com/v2/shops?api_key=MY_ETSY_KEYSTRING&shop_name=99heads" vSbResponseBody To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
If (Not(IsComObjectCreated(hoJResp))) Begin
Send CreateComObject of hoJResp
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
Set ComEmitCompact Of hoJResp To False
Showln "Response Body:"
Get ComEmit Of hoJResp To sTemp1
Showln sTemp1
Get ComLastStatus Of hoHttp To iRespStatusCode
Showln "Response Status Code = " iRespStatusCode
If (iRespStatusCode >= 400) Begin
Showln "Response Header:"
Get ComLastHeader Of hoHttp To sTemp1
Showln sTemp1
Showln "Failed."
Procedure_Return
End
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "count": 1,
// "results": [
// {
// "shop_id": 6634711,
// "shop_name": "99heads",
// "user_id": 17132443,
// "creation_tsz": 1322509254,
// "title": "Ceramic Art, Art Objects And Sculptures",
// "announcement": "Welcome!\nIn our shop, you will find handmade ceramic art , art objects, sculptures and more unique products made from high quality materials: porcelain, clay, glaze, glass, wood, paper,etc. They are perfect for your personal collection or a gift . Enjoy!\n\n\nVisit our blog \nhttp:\/\/99heads.com\n\nFacebook page \nhttp:\/\/www.facebook.com\/99heads\n\nPick a head! \n99heads",
// "currency_code": "USD",
// "is_vacation": false,
// "vacation_message": "Vacation, vacation, vacation!\r\n\r\nGone from 02.08 'til 09.08. Coming soon... lots and lots of new stuff, all unique and creative... only on 99heads :)\r\n\r\nBe happy\r\n99heads\r\n\r\nP.S. If there's anything you'd like to say, share, ask:\r\ns_kyorcheva@abv.bg\r\nn_armeykov@abv.bg",
// "sale_message": "Thank you for choosing our art. We guarantee quality and uniqueness! If you have any questions, requests, complaints or simply want to thank us, please don't hesitate to contact us.",
// "digital_sale_message": null,
// "last_updated_tsz": 1562699326,
// "listing_active_count": 176,
// "digital_listing_count": 0,
// "login_name": "99heads",
// "accepts_custom_requests": true,
// "policy_welcome": "Welcome!\r\nIn our shop, you will find handmade ceramic art , art objects, prints and more unique products made from high quality materials: porcelain, clay, glaze, glass, wood, paper,etc. They are perfect for your personal collection or a gift . \r\nEnjoy!\r\n\r\nVisit our blog\r\nhttp:\/\/www.99heads.com\r\n\r\nFacebook page\r\nhttp:\/\/www.facebook.com\/99heads\r\n\r\nPick a head!\r\n\r\n99heads",
// "policy_payment": "SECURE OPTIONS\nEtsy keeps your payment information secure. Sellers don't receive your credit card information.\n- Visa\n- MasterCard\n- American Express\n- Discover\n- PayPal\n- Apple Pay\n- SOFORT Bank Transfer\n- iDEAL\n- Etsy Gift Card",
// "policy_shipping": "PROCESSING TIME\nThe time I need to prepare an order for shipping varies. For details, see individual items.\n\nESTIMATED SHIPPING TIME\nCanada: 10 - 15 business days\nNorth America: 10 - 15 business days\nEurope: 4 - 10 business days\nAustralia, New Zealand and Oceania: 15 - 20 business days\nAsia Pacific: 15 - 20 business days\nLatin America and the Caribbean: 15 - 20 business days\nNorth Africa and the Middle East: 10 - 20 business days\n\nI'll do my best to meet these shipping estimates, but cannot guarantee them. Actual delivery time will depend on the shipping method you choose.\n\nCUSTOMS AND DUTIES FEES\nBuyers are responsible for any customs or duties fees that may apply. Sellers aren't responsible for delays due to customs",
// "policy_refunds": "I GLADLY ACCEPT RETURNS, EXCHANGES, AND CANCELLATIONS\nJust contact me within: 14 days of delivery\nShip returns back to me within: 30 days of delivery\nRequest a cancellation within: 12 hours of purchase\n\nTHE FOLLOWING ITEMS CAN'T BE RETURNED\nBecause of the nature of these items, unless they arrive damaged or defective, I can't accept returns for:\n- Custom or personalized orders\n- Items on sale\n\nCONDITIONS OF RETURN\nBuyers are responsible for return shipping costs.\nIf the item is not returned in its original condition, the buyer is responsible for any loss in value.\n\nQUESTIONS ABOUT YOUR ORDER?\nPlease contact me if you have any problems with your order.",
// "policy_additional": "- This Privacy Policy describes how and when I collect, use, and share information when you purchase an item from me, contact me, or otherwise use my services through Etsy.com or its related sites and services.\n\nThis Privacy Policy does not apply to the practices of third parties that I do not own or control, including Etsy or any third party services you access through Etsy. You can reference the Etsy Privacy Policy to learn more about its privacy practices\n\nInformation I Collect\n\nTo fulfil your order, you must provide me with certain information (which you authorized Etsy to provide to me), such as your name, email address, postal address, payment information, and the details of the product that you\u2019re ordering. You may also choose to provide me with additional personal information (for a custom order), if you contact me directly.\n\n\nWhy I Need Your Information and How I Use It.\n\nI rely on a number of legal bases to collect, use, and share your information, including:\n\n-as needed to provide my services, such as when I use your information to fulfil your order, to settle disputes, or to provide customer support;\n\n-when you have provided your affirmative consent, which you may revoke at any time, such as by signing up for my mailing list;\n\n-if necessary to comply with a legal obligation or court order or in connection with a legal claim, such as retaining information about your purchases if required by tax law; and\n\n-as necessary for the purpose of my legitimate interests, if those legitimate interests are not overridden by your rights or interests, such as 1) providing and improving my services. I use your information to provide the services you requested and in my legitimate interest toimprove my services; and 2) Compliance with the Etsy Seller Policy and Terms of Use. I use your information as necessary to comply with my obligations under the Etsy Seller Policy and Terms of Use.\n\nInformation Sharing and Disclosure\n\nInformation about my customers is important to my business. I share your personal information for very limited reasons and in limited circumstances, as follows:\n\n-Etsy. I share information with Etsy as necessary to provide you my services and comply with my obligations under both the Etsy Seller Policy and Etsy Terms of Use.\n\n-Service providers. I engage certain trusted third parties to perform functions and provide services to my shop, such as delivery companies. I will share your personal information with these third parties, but only to the extent necessary to perform these services.\n\n-Business transfers. If I sell or merge my business, I may disclose your information as part of that transaction, only to the extent permitted by law.\n\n-Compliance with laws. I may collect, use, retain, and share your information if I have a good faith belief that it is reasonably necessary to: (a) respond to legal process or to government requests; (b) enforce my agreements, terms and policies; (c) prevent, investigate, and address fraud and other illegal activity, security, or technical issues; or (d) protect the rights, property, and safety of my customers, or others.\n\nData Retention\n\nI retain your personal information only for as long as necessary to provide you with my services and as described in my Privacy Policy. However, I may also be required to retain this information to comply with my legal and regulatory obligations, to resolve disputes, and to enforce my agreements. I generally keep your data for the following time period: 4 years.\n\nYour Rights\n\nIf you reside in certain territories, including the EU, you have a number of rights in relation to your personal information. While some of these rights apply generally, certain rights apply only in certain limited cases. I describe these rights below:\n\n-Access. You may have the right to access and receive a copy of the personal information I hold about you by contacting me using the contact information below.\n\n-Change, restrict, delete. You may also have rights to change, restrict my use of, or delete your personal information. Absent exceptional circumstances (like where I am required to store data for legal reasons) I will generally delete your personal information upon request.\n\n-Object. You can object to (i) my processing of some of your information based on my legitimate interests and (ii) receiving marketing messages from me after providing your express consent to receive them. In such cases, I will delete your personal information unless I have compelling and legitimate grounds to continue using that information or if it is needed for legal reasons.\n\n-Complain. If you reside in the EU and wish to raise a concern about my use of your information (and without prejudice to any other rights you may have), you have the right to do so with your local data protection authority.\n\nHow to Contact Me\n\nFor purposes of EU data protection law, I, Nikolay Armeykov, am the data controller of your personal information. If you have any questions or concerns, you may contact me at n_armeykov@mail.com\n\nGIFT WRAPPING AND PACKAGING\n\u0410vailable\n\nCUSTOM AND PERSONALIZED ORDERS\nCustom orders are welcome! Also, for change of color, form or size- please send a message. Custom orders may take longer to ship, depending on the inquiry\n\nWHOLESALE AVAILABILITY\nWholesale orders are welcome!\n\nSHIPPING METHOD\n* All items ship via Priority Registered Air Mail with tracking number delivered after signature. \n* Registered mail provides a solid proof of shipping; It's tracking, however, depends on the recipient's country postal carrier conditions (not all countries support detailed online tracking)\n* Registered mail is one of the most reliable and secure way of shipping and always requires signature upon delivery. If you are not at home, the postal carrier must leave a notice that your package is available for pick up from the post office.\n*** IMPORTANT: If a package is not claimed within 15-20 days it will be returned to the sender.",
// "policy_seller_info": "",
// "policy_updated_tsz": 1526481567,
// "policy_has_private_receipt_info": false,
// "vacation_autoreply": "Vacation, vacation, vacation!\r\n\r\nGone from 02.08 'til 09.08. Coming soon... lots and lots of new stuff, all unique and creative... only on 99heads :)\r\n\r\nBe happy\r\n99heads",
// "url": "https:\/\/www.etsy.com\/shop\/99heads?utm_source=chilkattest&utm_medium=api&utm_campaign=api",
// "image_url_760x100": "https:\/\/i.etsystatic.com\/iusb\/ef5376\/17693876\/iusb_760x100.17693876_e6ux.jpg?version=0",
// "num_favorers": 7818,
// "languages": [
// "en-US"
// ],
// "upcoming_local_event_id": null,
// "icon_url_fullxfull": "https:\/\/i.etsystatic.com\/isla\/06ca66\/20243353\/isla_fullxfull.20243353_1lcm8gl8.jpg?version=0",
// "is_using_structured_policies": true,
// "has_onboarded_structured_policies": true,
// "has_unstructured_policies": true,
// "custom_shops_state": 3,
// "include_dispute_form_link": false,
// "is_direct_checkout_onboarded": true,
// "policy_privacy": "This Privacy Policy describes how and when I collect, use, and share information when you purchase an item from me, contact me, or otherwise use my services through Etsy.com or its related sites and services.\n\nThis Privacy Policy does not apply to the practices of third parties that I do not own or control, including Etsy or any third party services you access through Etsy. You can reference the Etsy Privacy Policy to learn more about its privacy practices\n\nInformation I Collect\n\nTo fulfil your order, you must provide me with certain information (which you authorized Etsy to provide to me), such as your name, email address, postal address, payment information, and the details of the product that you\u2019re ordering. You may also choose to provide me with additional personal information (for a custom order), if you contact me directly.\n\n\nWhy I Need Your Information and How I Use It.\n\nI rely on a number of legal bases to collect, use, and share your information, including:\n\n-as needed to provide my services, such as when I use your information to fulfil your order, to settle disputes, or to provide customer support;\n\n-when you have provided your affirmative consent, which you may revoke at any time, such as by signing up for my mailing list;\n\n-if necessary to comply with a legal obligation or court order or in connection with a legal claim, such as retaining information about your purchases if required by tax law; and\n\n-as necessary for the purpose of my legitimate interests, if those legitimate interests are not overridden by your rights or interests, such as 1) providing and improving my services. I use your information to provide the services you requested and in my legitimate interest toimprove my services; and 2) Compliance with the Etsy Seller Policy and Terms of Use. I use your information as necessary to comply with my obligations under the Etsy Seller Policy and Terms of Use.\n\nInformation Sharing and Disclosure\n\nInformation about my customers is important to my business. I share your personal information for very limited reasons and in limited circumstances, as follows:\n\n-Etsy. I share information with Etsy as necessary to provide you my services and comply with my obligations under both the Etsy Seller Policy and Etsy Terms of Use.\n\n-Service providers. I engage certain trusted third parties to perform functions and provide services to my shop, such as delivery companies. I will share your personal information with these third parties, but only to the extent necessary to perform these services.\n\n-Business transfers. If I sell or merge my business, I may disclose your information as part of that transaction, only to the extent permitted by law.\n\n-Compliance with laws. I may collect, use, retain, and share your information if I have a good faith belief that it is reasonably necessary to: (a) respond to legal process or to government requests; (b) enforce my agreements, terms and policies; (c) prevent, investigate, and address fraud and other illegal activity, security, or technical issues; or (d) protect the rights, property, and safety of my customers, or others.\n\nData Retention\n\nI retain your personal information only for as long as necessary to provide you with my services and as described in my Privacy Policy. However, I may also be required to retain this information to comply with my legal and regulatory obligations, to resolve disputes, and to enforce my agreements. I generally keep your data for the following time period: 4 years.\n\nYour Rights\n\nIf you reside in certain territories, including the EU, you have a number of rights in relation to your personal information. While some of these rights apply generally, certain rights apply only in certain limited cases. I describe these rights below:\n\n-Access. You may have the right to access and receive a copy of the personal information I hold about you by contacting me using the contact information below.\n\n-Change, restrict, delete. You may also have rights to change, restrict my use of, or delete your personal information. Absent exceptional circumstances (like where I am required to store data for legal reasons) I will generally delete your personal information upon request.\n\n-Object. You can object to (i) my processing of some of your information based on my legitimate interests and (ii) receiving marketing messages from me after providing your express consent to receive them. In such cases, I will delete your personal information unless I have compelling and legitimate grounds to continue using that information or if it is needed for legal reasons.\n\n-Complain. If you reside in the EU and wish to raise a concern about my use of your information (and without prejudice to any other rights you may have), you have the right to do so with your local data protection authority.\n\nHow to Contact Me\n\nFor purposes of EU data protection law, I, Nikolay Armeykov, am the data controller of your personal information. If you have any questions or concerns, you may contact me at n_armeykov@mail.com",
// "is_calculated_eligible": false,
// "is_opted_in_to_buyer_promise": false,
// "is_shop_us_based": false
// }
// ],
// "params": {
// "shop_name": "99heads",
// "limit": 25,
// "offset": 0,
// "page": null,
// "lat": null,
// "lon": null,
// "distance_max": 35
// },
// "type": "Shop",
// "pagination": {
// "effective_limit": 25,
// "effective_offset": 0,
// "next_offset": null,
// "effective_page": 1,
// "next_page": null
// }
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
Get ComIntOf Of hoJResp "count" To iCount
Get ComStringOf Of hoJResp "params.shop_name" To sParamsShop_name
Get ComIntOf Of hoJResp "params.limit" To iParamsLimit
Get ComIntOf Of hoJResp "params.offset" To iParamsOffset
Get ComStringOf Of hoJResp "params.page" To sParamsPage
Get ComStringOf Of hoJResp "params.lat" To sParamsLat
Get ComStringOf Of hoJResp "params.lon" To sParamsLon
Get ComIntOf Of hoJResp "params.distance_max" To iParamsDistance_max
Get ComStringOf Of hoJResp "type" To sV_type
Get ComIntOf Of hoJResp "pagination.effective_limit" To iPaginationEffective_limit
Get ComIntOf Of hoJResp "pagination.effective_offset" To iPaginationEffective_offset
Get ComStringOf Of hoJResp "pagination.next_offset" To sPaginationNext_offset
Get ComIntOf Of hoJResp "pagination.effective_page" To iPaginationEffective_page
Get ComStringOf Of hoJResp "pagination.next_page" To sPaginationNext_page
Move 0 To i
Get ComSizeOfArray Of hoJResp "results" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Get ComIntOf Of hoJResp "results[i].shop_id" To iShop_id
Get ComStringOf Of hoJResp "results[i].shop_name" To sShop_name
Get ComIntOf Of hoJResp "results[i].user_id" To iUser_id
Get ComIntOf Of hoJResp "results[i].creation_tsz" To iCreation_tsz
Get ComStringOf Of hoJResp "results[i].title" To sTitle
Get ComStringOf Of hoJResp "results[i].announcement" To sAnnouncement
Get ComStringOf Of hoJResp "results[i].currency_code" To sCurrency_code
Get ComBoolOf Of hoJResp "results[i].is_vacation" To iIs_vacation
Get ComStringOf Of hoJResp "results[i].vacation_message" To sVacation_message
Get ComStringOf Of hoJResp "results[i].sale_message" To sSale_message
Get ComStringOf Of hoJResp "results[i].digital_sale_message" To sDigital_sale_message
Get ComIntOf Of hoJResp "results[i].last_updated_tsz" To iLast_updated_tsz
Get ComIntOf Of hoJResp "results[i].listing_active_count" To iListing_active_count
Get ComIntOf Of hoJResp "results[i].digital_listing_count" To iDigital_listing_count
Get ComStringOf Of hoJResp "results[i].login_name" To sLogin_name
Get ComBoolOf Of hoJResp "results[i].accepts_custom_requests" To iAccepts_custom_requests
Get ComStringOf Of hoJResp "results[i].policy_welcome" To sPolicy_welcome
Get ComStringOf Of hoJResp "results[i].policy_payment" To sPolicy_payment
Get ComStringOf Of hoJResp "results[i].policy_shipping" To sPolicy_shipping
Get ComStringOf Of hoJResp "results[i].policy_refunds" To sPolicy_refunds
Get ComStringOf Of hoJResp "results[i].policy_additional" To sPolicy_additional
Get ComStringOf Of hoJResp "results[i].policy_seller_info" To sPolicy_seller_info
Get ComIntOf Of hoJResp "results[i].policy_updated_tsz" To iPolicy_updated_tsz
Get ComBoolOf Of hoJResp "results[i].policy_has_private_receipt_info" To iPolicy_has_private_receipt_info
Get ComStringOf Of hoJResp "results[i].vacation_autoreply" To sVacation_autoreply
Get ComStringOf Of hoJResp "results[i].url" To sUrl
Get ComStringOf Of hoJResp "results[i].image_url_760x100" To sImage_url_760x100
Get ComIntOf Of hoJResp "results[i].num_favorers" To iNum_favorers
Get ComStringOf Of hoJResp "results[i].upcoming_local_event_id" To sUpcoming_local_event_id
Get ComStringOf Of hoJResp "results[i].icon_url_fullxfull" To sIcon_url_fullxfull
Get ComBoolOf Of hoJResp "results[i].is_using_structured_policies" To iIs_using_structured_policies
Get ComBoolOf Of hoJResp "results[i].has_onboarded_structured_policies" To iHas_onboarded_structured_policies
Get ComBoolOf Of hoJResp "results[i].has_unstructured_policies" To iHas_unstructured_policies
Get ComIntOf Of hoJResp "results[i].custom_shops_state" To iCustom_shops_state
Get ComBoolOf Of hoJResp "results[i].include_dispute_form_link" To iInclude_dispute_form_link
Get ComBoolOf Of hoJResp "results[i].is_direct_checkout_onboarded" To iIs_direct_checkout_onboarded
Get ComStringOf Of hoJResp "results[i].policy_privacy" To sPolicy_privacy
Get ComBoolOf Of hoJResp "results[i].is_calculated_eligible" To iIs_calculated_eligible
Get ComBoolOf Of hoJResp "results[i].is_opted_in_to_buyer_promise" To iIs_opted_in_to_buyer_promise
Get ComBoolOf Of hoJResp "results[i].is_shop_us_based" To iIs_shop_us_based
Move 0 To j
Get ComSizeOfArray Of hoJResp "results[i].languages" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Get ComStringOf Of hoJResp "results[i].languages[j]" To sStrVal
Move (j + 1) To j
Loop
Move (i + 1) To i
Loop
End_Procedure