Integration logo
Interspire Shopping Cart

Interspire Shopping Cart

E-commerce Integration AffiliateMarketing Interspire

Interspire Shopping Cart integráció

Egy funkciókban gazdag kosár szoftver, amely mindent tartalmaz, amire szüksége lehet online áruháza elindításához, működtetéséhez és népszerűsítéséhez. Ez az integrációs módszer Dustin Holdiman által segít integrálni a PAP-ot az Interspire Shopping Cart 5.0+ verzióval.

Mire való ez a szkript?

Ez a beállítás lehetővé teszi, hogy az Interspire Shopping Cart-ban megrendelt minden egyes terméket és mennyiséget nyomon kövessen. A szkript minden megrendelt terméket külön értékesítésként küld a PAP-nak. Így ha egy felhasználó 3 különböző terméket vásárol, mindegyikből 2 darabot, összesen 6 értékesítés kerül rögzítésre a PAP-ban, és pontosan tudja, mennyi jutalékot kell fizetnie a partnernek .

Hogyan integrálja a PostAffiliatePro-t az Interspire Shopping Cart-tal

Először is minden olyan termékhez, amelyhez eltérő jutalékot szeretne, külön kampányt kell létrehoznia. Például az A termék után $10, a B termék után $12, a C termék után $8 jutalék jár. Létrehozok 3 kampányt, mindegyikhez hozzárendelem az Interspire által megadott termékazonosítót. Alapértelmezés szerint ezt az információt az isc_products adatbázistáblában a productid cellában találja meg. Miután beállította a kampányokat, a PAP-ban további teendő nincs.

Interspire Shopping Cart beállítása

Szerkessze a class.order.php fájlt. Ezt a szkriptet az Interspire telepítési könyvtárában találja, az includes/classes/class.order.php útvonalon. Görgessen le kb. a 178. sorig. Ott keres egy foreach ciklust, amely kommentelve van. Ez a kód:

// Tartalmazza az átváltási követőkódot a [partnerek számára](/affiliate-marketing-glossary/affiliate/ "Ismerje meg a partner szerepét a marketingben—jutalékot kereshet termékek népszerűsítésével bannerek, linkek és kampányok révén. Tudja meg, hogyan növelhetik a partnerek az eladásokat, és fedezze fel a hatékony marketingstratégiákat. Csatlakozzon az affiliate marketing világához a Post Affiliate Pro felhasználóbarát eszközeivel és kiváló támogatásával.")
foreach ($this->pendingData['orders'] as $order) {
  if (strlen(GetConfig('AffiliateConversionTrackingCode')) > 0) {
......
......
}

Kód cseréje (az Interspire Shopping Cart 5.x verziójára vonatkozik)

Másolja ki a teljes foreach ciklust, és cserélje le a következő kóddal:

//////////////////////////////////////////////////////////////////////////////////////////////////
foreach ($this->pendingData['orders'] as $order) {
            if (strlen(GetConfig('AffiliateConversionTrackingCode')) > 0) {
                $converted_code = GetConfig('AffiliateConversionTrackingCode');
                $converted_code = str_ireplace('%%ORDER_AMOUNT%%', $order['ordsubtotal'], $converted_code);
                $converted_code = str_ireplace('%%ORDER_ID%%', $order['orderid'], $converted_code);

		//lekéri a vevőazonosítót az adott rendeléshez, hogy használhassa az [Élethosszig tartó jutalékokat](/features/lifetime-commissions/ "Használja ki az Élethosszig tartó jutalékok erejét a Post Affiliate Pro-val! Építsen stabil, hosszú távú bevételi forrásokat és erősítse meg kapcsolatát a minőségi partnerekkel. Ideális magánszemélyek, induló vállalkozások, KKV-k és nagyvállalatok számára is: ez a funkció biztosítja a jutalékot a vásárlók jövőbeni vásárlásai után, még a sütik lejárata után is. Tudja meg, hogyan segítheti ez a megbízható rendszer partnerprogramja sikerét már ma!")
		$query_custid = "SELECT ordcustid FROM isc_orders WHERE orderid='".$order['orderid']."'";
		$result_custid = mysql_query($query_custid);
		$custid = mysql_fetch_row($result_custid);
		$customerid = $custid[0];


                $query_proid = "SELECT * FROM isc_order_products WHERE orderorderid='".$order['orderid']."'";
                $result_proid = mysql_query($query_proid);
                $prod_data = '';
                // A string összeállítása: PRODUCTID:QUANTITY:PRICE,
                while ($row_proid = mysql_fetch_array($result_proid)) {
                        $prodarr[] = $row_proid['ordprodid'].':'.$row_proid['ordprodqty'].':'.$row_proid['ordprodcost'];
                }
		$java_arr[] = "<script type=\"text/javascript\">
		PostAffTracker.setAccountId('Account_ID');"; // JavaScript tömb kezdete
		$prod_count = '1'; // Termék számláló

                // A string felosztása ,
                foreach ($prodarr as $value) {
                    // Felbontás : szerint (PRODUCTID:QUANTITY:PRICE)
                    $prod_info = explode(":", $value);

		// Nem szükséges, de referenciaként itt marad
                    //$converted_code = str_ireplace('%%PRODUCT_ID'.$prod_count.'%%',$prod_info[0], $converted_code);
                    //$converted_code = str_ireplace('%%QUANTITY_ID'.$prod_count.'%%',$prod_info[1], $converted_code);

                    // Eladási kód létrehozása minden termékre x a rendelt mennyiségre
					$quantity = $prod_info[1];
					while ($quantity >= 1){
						$java_string = "
							var sale".$prod_count." = PostAffTracker.createSale();
							sale".$prod_count.".setTotalCost('".$prod_info[2]."');
							sale".$prod_count.".setOrderID('".$order['orderid']."(".$prod_count.")');
							sale".$prod_count.".setProductID('".$prod_info[0]."');
							sale".$prod_count.".setData1('".$customerid."');";

						$java_arr[] = $java_string;

						$img_arr[] = '<img src="https://URL_TO_PostAffiliatePro/scripts/sale.php?TotalCost='.$prod_info[2].'&OrderID='.$order['orderid'].'_'.$prod_count.'&ProductID='.$prod_info[0].'" width="1" height="1">';
						$prod_count++; // Termék számláló növelése eggyel
						$quantity = $quantity-1;
					}
                }
                // Képkód ciklus - minden foreach-ben létrehozott img src összefűzése
                $img = implode("", $img_arr);

				// JavaScript kód lezárása
				$java_arr[] = "
				PostAffTracker.register();
				</script>";

                // Tömbből string összeállítása
				$java = implode("", $java_arr);

                $converted_code = str_ireplace('%%JAVA%%', $java, $converted_code); // Egyszerűen illessze be a %%JAVA%%-t az [affiliate tracking](/ "A Post Affiliate Pro átfogó partnerprogram szoftvert kínál, amellyel könnyedén kezelheti több affiliate programját. Nincs beállítási díj, 0–24-es ügyfélszolgálat, 1 hónap ingyenes próba. Kis- és nagyvállalatoknak egyaránt ideális, pontos követéssel, automatizált folyamatokkal és testreszabható eszközökkel növeli affiliate marketingje sikerét. Próbálja ki most, és egyszerűsítse affiliate működését könnyedén!") szekcióba az Interspire-ben
                $converted_code = str_ireplace('%%IMG_CODE%%', $img, $converted_code); // Egyszerűen illessze be a %%IMG_CODE%%-t az [affiliate](/ "A Post Affiliate Pro átfogó partnerprogram szoftvert kínál, amellyel könnyedén kezelheti több affiliate programját. Nincs beállítási díj, 0–24-es ügyfélszolgálat, 1 hónap ingyenes próba. Kis- és nagyvállalatoknak egyaránt ideális, pontos követéssel, automatizált folyamatokkal és testreszabható eszközökkel növeli affiliate marketingje sikerét. Próbálja ki most, és egyszerűsítse affiliate működését könnyedén!") követési szekcióba az Interspire-ben
                $GLOBALS['ConversionCode'] .= $converted_code;
            }
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Szerkesztés vége
        }

Ezután csak mentse el a fájlt.

Kód cseréje (az Interspire Shopping Cart 6.x verziójára vonatkozik)

Másolja ki a teljes foreach ciklust, és cserélje le a következő kóddal:

//////////////////////////////////////////////////////////////////////////////////////////////////
foreach ($this->pendingData['orders'] as $order) {
            if (strlen(GetConfig('AffiliateConversionTrackingCode')) > 0) {
                $converted_code = GetConfig('AffiliateConversionTrackingCode');
                $converted_code = str_ireplace('%%ORDER_AMOUNT%%', $order['ordsubtotal'], $converted_code);
                $converted_code = str_ireplace('%%ORDER_ID%%', $order['orderid'], $converted_code);

		//lekéri a vevőazonosítót az adott rendeléshez, hogy használhassa az Élethosszig tartó jutalékokat
		$query_custid = "SELECT ordcustid FROM ".$GLOBALS['ISC_CFG']["tablePrefix"]."orders WHERE orderid='".$order['orderid']."'";
		$result_custid = mysql_query($query_custid);
		$custid = mysql_fetch_row($result_custid);
		$customerid = $custid[0];

                //ellenőrzi, hogy volt-e kupon és lekéri annak kódját
                $query_coupon = 'SELECT ordcouponcode FROM '.$GLOBALS['ISC_CFG']['tablePrefix']."order_coupons WHERE ordcouporderid='".$order['orderid']."'";
                $result_coupon = mysql_query($query_coupon);
                try {
                  $couponrow = mysql_fetch_row($result_coupon);
                  $coupon = $couponrow[0];
                }
                catch (Exception $e) {
                    // nincs kupon
                    $coupon = '';
                }

                $query_proid = "SELECT * FROM ".$GLOBALS['ISC_CFG']["tablePrefix"]."order_products WHERE orderorderid='".$order['orderid']."'";
                $result_proid = mysql_query($query_proid);
                $prod_data = '';
                // A string összeállítása: PRODUCTID:QUANTITY:PRICE,
                while ($row_proid = mysql_fetch_array($result_proid)) {
                        $prodarr[] = $row_proid['ordprodid'].':'.$row_proid['ordprodqty'].':'.$row_proid['base_price'].':'.$this->sumDiscountAndCoupon($row_proid['applied_discounts']);
                }
		$java_arr[] = "<script type=\"text/javascript\">
		PostAffTracker.setAccountId('Account_ID');"; // JavaScript tömb kezdete
		$prod_count = '1'; // Termék számláló

                // A string felosztása ,
                foreach ($prodarr as $value) {
                    // Felbontás : szerint (PRODUCTID:QUANTITY:PRICE)
                    $prod_info = explode(":", $value);

		// Nem szükséges, de referenciaként itt marad
                    //$converted_code = str_ireplace('%%PRODUCT_ID'.$prod_count.'%%',$prod_info[0], $converted_code);
                    //$converted_code = str_ireplace('%%QUANTITY_ID'.$prod_count.'%%',$prod_info[1], $converted_code);

                    // Eladási kód létrehozása minden termékre x a rendelt mennyiségre
                                        $totalCost = $prod_info[2]-($prod_info[3]/$prod_info[1]);
					$quantity = $prod_info[1];
					while ($quantity >= 1){
						$java_string = "
							var sale".$prod_count." = PostAffTracker.createSale();
							sale".$prod_count.".setTotalCost('".$totalCost."');
                                                        sale".$prod_count.".setOrderID('".$order['orderid']."(".$prod_count.")');
							sale".$prod_count.".setProductID('".$prod_info[0]."');
							sale".$prod_count.".setData1('".$customerid."');";
						if (!empty($coupon)) $java_string .= "sale".$prod_count.".setCoupon('$coupon');";

						$java_arr[] = $java_string;

						$img_arr[] = '<img src="https://URL_TO_PostAffiliatePro/scripts/sale.php?TotalCost='.$totalCost.'&OrderID='.$order['orderid']."_".$prod_count.'&ProductID='.$prod_info[0].'&Coupon='.$coupon.'" width="1" height="1" />';
						$prod_count++; // Termék számláló növelése eggyel
						$quantity = $quantity-1;
					}
                }
                // Képkód ciklus - minden foreach-ben létrehozott img src összefűzése
                $img = implode("", $img_arr);

				// JavaScript kód lezárása
				$java_arr[] = "
				PostAffTracker.register();
				</script>";

                // Tömbből string összeállítása
				$java = implode("", $java_arr);

                $converted_code = str_ireplace('%%JAVA%%', $java, $converted_code); // Egyszerűen illessze be a %%JAVA%%-t az [affiliate](/affiliate-marketing-glossary/affiliate/ "Ismerje meg a partner szerepét a marketingben—jutalékot kereshet termékek népszerűsítésével bannerek, linkek és kampányok révén. Tudja meg, hogyan növelhetik a partnerek az eladásokat, és fedezze fel a hatékony marketingstratégiákat. Csatlakozzon az affiliate marketing világához a Post Affiliate Pro felhasználóbarát eszközeivel és kiváló támogatásával.") követési szekcióba az Interspire-ben
                $converted_code = str_ireplace('%%IMG_CODE%%', $img, $converted_code); // Egyszerűen illessze be a %%IMG_CODE%%-t az affiliate követési szekcióba az Interspire-ben
                $GLOBALS['ConversionCode'] .= $converted_code;
            }
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Szerkesztés vége
        }

Ezután csak mentse el a fájlt.

Funkciók hozzáadása a kedvezmények számításához (az Interspire Shopping Cart 6.x verziójára vonatkozik)

Továbbra is a class.order.php fájlt szerkeszti. Adja hozzá az alábbi kódrészt közvetlenül a : private function ThanksForYourOrder() sor elé:

        //////////////////////////////////////////////////PAP integrációs funkciók
        //keres meg minden előfordulást egy karakterláncban
        private function strposall($haystack, $needle){
            $s=0;
            $i=0;
            while (is_integer($i)){
                $i = strpos($haystack,$needle,$s);
                if (is_integer($i)) {
                    $aStrPos[] = $i;
                    $s = $i+strlen($needle);
                }
            }
            if (isset($aStrPos)) {
                return $aStrPos;
            }
            else {
                return false;
            }
        }

        private function getDiscountFromPosition($discountsString, $position) {
            $substring = substr($discountsString, $position+2);
            return substr($discountsString, $position+2, strpos($substring, ';'));
        }

        private function sumDiscountAndCoupon($discountsString) {
            if (is_null($discountsString) || $discountsString == '' || !strstr($discountsString, 'd:')) {
                return 0;
            }
            $sum = 0;
            foreach ($this->strposall($discountsString, 'd:') as $position) {
                $sum += $this->getDiscountFromPosition($discountsString, $position);
            }
            return $sum;
        }
        /////////////////////////////////////////////////PAP integrációs funkciók vége

Interspire beállításainak konfigurálása

Nyissa meg az Interspire adminisztrációs felületét, menjen a Beállítások / Partnerbeállítások menüpontra, és illessze be a következő kódot a szövegmezőbe:

<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
%%JAVA%%

Ha nem szeretne JavaScriptet használni a PAP-nak történő jelentéshez, használhatja az IMG SRC taget is azzal, hogy %%JAVA%%-t %%IMG_CODE%%-ra cseréli.

MEGJEGYZÉS: PayPal integrációs bővítmény használata Interspire integrációval együtt.

Nem ajánlott az Interspire integrációt a PayPal integrációval (vagy más, az Interspire által támogatott fizetési processzor integrációval) együtt használni, mert ez duplán rögzített tranzakciókhoz vezethet. Be kell állítania egy eladási csalásvédelmet ezek elkerülése érdekében.

Az Interspire saját maga kezeli (feldolgozza) az összes tranzakciót (függetlenül a fizetési módtól), ezért ezt az Interspire integrációt csak önmagában használja.

Ha ez az integráció nem megfelelő az Ön számára, próbálja ki valamelyik alternatívát.

Bármilyen kérdése, megjegyzése vagy javaslata van, írjon Dustin-nak a dmanz013@gmail.com címre.

Mi az az Interspire Shopping Cart?

Az Interspire Shopping Cart egy átfogó e-kereskedelmi platform volt, amely arra készült, hogy a vállalkozásokat egy robusztus online értékesítési megoldással ruházza fel. Felhasználóbarát funkcióival és a kis- és középvállalkozások igényeire fókuszálva lehetőséget adott online áruházak létrehozására, kezelésére és népszerűsítésére. Bár a platformot már megszüntették, öröksége értékes tanulságokat kínál az e-kereskedelem fejlődéséről és az online kiskereskedelmi megoldások alakulásáról.

Az Interspire Shopping Cart az Interspire cég termékeként jelent meg, amely webalapú szoftvermegoldásairól volt ismert. Azért indították, hogy kielégítsék a hozzáférhető e-kereskedelmi platformok iránti növekvő igényt, és gyorsan népszerűvé vált azok körében, akik egy mindent egyben kosárrendszert kerestek. Az évek során új funkciók beépítésével és a felhasználói visszajelzésekre reagálva fejlődött. Azonban a fejlettebb konkurensek megjelenése és a piaci igények változása miatt az Interspire végül leállította a Shopping Cart szoftver fejlesztését, és más területekre összpontosított.

Az Interspire Shopping Cart elsősorban kis- és középvállalkozások számára készült, akik szerették volna megalapozni vagy fejleszteni online jelenlétüket. Intuitív kezelőfelülete és széleskörű funkciói különösen vonzóvá tették azok számára, akik nem rendelkeztek mélyebb technikai ismeretekkel. Kiskereskedők, nagykereskedők és speciális piaci szereplők is gyorsan és hatékonyan tudtak online áruházakat indítani a rendszer segítségével.

Az Interspire Shopping Cart főbb funkciói

A platform gazdag funkciókészlettel rendelkezett, hogy leegyszerűsítse az e-kereskedelmi műveleteket:

  • Felhasználóbarát adminisztráció : Könnyen kezelhető vezérlőpult termékek, rendelések és ügyfelek menedzseléséhez.
  • Testreszabható áruházfelületek : Különböző sablonok és témák, melyekkel vállalkozása testreszabhatta online boltja megjelenését.
  • Készletkezelés : Eszközök a készletszintek követéséhez, készletfigyelmeztetésekhez és termékopciók kezeléséhez.
  • Marketing és SEO eszközök : Beépített megoldások keresőoptimalizáláshoz , email marketing integrációk és promóciós eszközök, például kuponok és kedvezmények.
  • Többféle fizetési mód : Többféle fizetési opció támogatása, beleértve a bankkártyákat, PayPal-t és egyebeket.
  • Nemzetközi támogatás : Több pénznem és nyelv támogatása a globális ügyfélkör kiszolgálásához.
  • Riportálás és elemzés : Részletes jelentések az eladásokról, vásárlói viselkedésről és az áruház teljesítményéről az üzleti döntések támogatására.

Az Interspire Shopping Cart árazása

Az Interspire Shopping Cart több szintű árazási csomagot kínált, hogy megfeleljen a különböző vállalkozási igényeknek és költségvetéseknek. Az árstruktúra általában a következőket tartalmazta:

  • Induló csomagok : Alapvető funkciókkal rendelkező, kedvező árú csomag kezdők számára.
  • Professzionális csomagok : Középszintű, fejlettebb funkciókat tartalmazó megoldások fejlődő vállalkozások számára.
  • Vállalati csomagok : Teljes funkcionalitás, prioritást élvező támogatás és testreszabási lehetőségek.

Mivel a platformot már megszüntették, ezek a csomagok már nem érhetők el. Az érdeklődők hasonló árú, jelenleg is támogatott alternatívákat találhatnak a piacon.

Felhasználói tapasztalatok az Interspire Shopping Cart-ról

A felhasználók értékelték az Interspire Shopping Cart egyszerű használatát és a funkciók széles körét. A pozitív visszajelzések gyakran kiemelték:

  • Egyszerűség : Könnyű beállítási folyamat és gyors elsajátíthatóság.
  • Átfogó eszköztár : Minden alapvető e-kereskedelmi funkció megtalálható volt, bővítmények nélkül.
  • Ügyfélszolgálat : Gyors és segítőkész támogatás a működése idején.

Néhány felhasználó azonban korlátokat is említett:

  • Testreszabási nehézségek : Kihívások a sablonokon túli testreszabásban technikai tudás hiányában.
  • Skálázhatósági problémák : Nehézségek jelentős növekedés vagy nagy forgalom kezelésében.
  • Frissítések hiánya : Aggodalmak a szoftverfrissítések és karbantartás elmaradása miatt a megszüntetést megelőzően.

Az Interspire Shopping Cart alternatívái

Mivel az Interspire Shopping Cart már nem elérhető, a vállalkozások modern, folyamatosan támogatott e-kereskedelmi platformok felé fordultak:

  • Shopify : Világszerte népszerű platform, könnyű kezelhetőséggel, kiterjedt alkalmazás-áruházzal és skálázhatósággal.
  • WooCommerce : Nyílt forráskódú bővítmény WordPress felhasználóknak, akik testreszabható online áruházat szeretnének.
  • Magento (Adobe Commerce) : Fejlett funkciók és testreszabhatóság nagyobb vállalkozások számára.
  • BigCommerce : Felhasználóbarát és átfogó funkciókkal rendelkező platform különböző méretű cégeknek.
  • Squarespace Commerce : Ideális azoknak, akik a dizájnt helyezik előtérbe az e-kereskedelmi funkcionalitás mellett.

Gyakran ismételt kérdések

Mi az Interspire Shopping Cart integráció célja a Post Affiliate Pro-val?

Ez az integráció lehetővé teszi, hogy az Interspire Shopping Cart-ban megrendelt minden egyes terméket és mennyiséget külön értékesítésként kövesse nyomon a Post Affiliate Pro-ban, így biztosítva a partnerek számára a pontos jutalékszámítást.

Hogyan állíthatom be az integrációt az Interspire Shopping Cart és a Post Affiliate Pro között?

A Post Affiliate Pro-ban külön kampányt kell létrehoznia minden termékhez, hozzárendelni a termékazonosítót, majd módosítani a class.order.php fájlt az Interspire telepítésében a megadott szkript alapján. Ezután állítsa be a partnerbeállításokat az Interspire-ben a követőkód hozzáadásával.

Az integráció kompatibilis az Interspire Shopping Cart minden verziójával?

Az integrációs módszer részletes útmutatót tartalmaz az Interspire Shopping Cart 5.x és 6.x verzióihoz is, így ezekkel a kiadásokkal kompatibilis.

Használhatom ezt az integrációt PayPal-lal vagy más fizetési processzor integrációval együtt?

Nem ajánlott az Interspire integrációt PayPal-lal vagy más fizetési processzor bővítménnyel együtt használni, mert ez duplán rögzített tranzakciókhoz vezethet. Használjon eladási csalásvédelmet, ha szükséges.

Milyen alternatívák léteznek az Interspire Shopping Cart helyett?

Alternatívák közé tartozik a Shopify, WooCommerce, Magento (Adobe Commerce), BigCommerce és Squarespace Commerce—modern platformok, amelyek fejlett e-kereskedelmi funkciókat és folyamatos támogatást kínálnak.

Fejlessze partnerprogramját a Post Affiliate Pro-val

Ismerje meg, hogyan segíthetnek az olyan zökkenőmentes integrációk, mint az Interspire Shopping Cart, az értékesítések nyomon követésében és a jutalékok optimalizálásában. Indítsa el az ingyenes próbaidőszakot még ma!

Tudjon meg többet

Interspire Shopping Cart (különösen a Google Checkout-hoz)
Interspire Shopping Cart (különösen a Google Checkout-hoz)

Interspire Shopping Cart (különösen a Google Checkout-hoz)

Ismerje meg, hogyan integrálhatja a Post Affiliate Pro-t az Interspire Shopping Carttal (különösen a Google Checkout-hoz). Lépésről lépésre útmutató a zökkenőme...

7 perc olvasás
E-commerce Integration +3
Stripe
Stripe

Stripe

Szeretné még tovább fejleszteni affiliate szoftverét? Tekintse meg a Stripe integrációt a Post Affiliate Pro-hoz.

5 perc olvasás
Stripe Payments +4
Abicart
Abicart

Abicart

Szeretné tovább fejleszteni partnerprogram szoftverét? Tekintse meg az Abicart (Textalk Webshop) integrációját a Post Affiliate Pro-hoz.

4 perc olvasás
Abicart TextalkWebshop +4

Jó kezekben lesz!

Csatlakozzon elégedett ügyfeleink közösségéhez és nyújtson kiváló ügyfélszolgálatot a Post Affiliate Pro-val.

Capterra
G2 Crowd
GetApp
Post Affiliate Pro Dashboard - Campaign Manager Interface