Donnerstag, 8. Februar 2018

Shirtee-Shop in eigene Webseite einbinden

Shirtee ist einer von vielen POD (Print on Demand) Anbietern, die ihren Partnern einen Marktplatz und ein Shop-System anbieten. Beide liegen unter der Domain von Shirtee.

Es besteht die Möglichkeit per PHP den Source Code des eigenen Shirtee-Shops zu extrahieren und diesen Quelltext in die eigene Webseite einzubinden. Zudem besteht die Möglichkeit die Produktbilder per PHP in ein Verzeichnis zu downloaden.

UPDATE 11/2018: Es gab ein Update in der Shirtee-Website-Software. Es ist von daher möglich, dass das folgende Tutorial nicht mehr funktioniert. Die Verwendung des folgenden Codes bitte nur auf eigene Verantwortung verwenden. Es gibt eine neue Version des Tutorials.
Neue Version

Bei beiden in diesem Tutorial erklärten PHP Scripts wird die originale Ansicht mit Auswahl und Sortierung aus dem eigenen Shirtee Shop übernommen. Die Produkte sind verlinkt zu den Kampagnen-Seiten bei shirtee.com. Zudem gibt es einen Button "Mehr anzeigen" mit Link zum eigenen Shirtee Shop.
Shirtee-Shop in eigene Webseite einbinden

JavaScript: Leider besteht keine Möglichkeit den eigenen Shirtee-Shop per JavaScript in die eigene Webseite einzubinden, da vom Server ein Header "X-Frame-Options: SAMEORIGIN" gesendet wird, der dies verhindert.

Hinweis: Leider besteht ein Problem mit der Verlinkung der Produkte zum eigenen Shop. Manchmal werden die verlinkten Kampagnen im eigenen Shop angezeigt, manchmal im Marktplatz. Die URL von beiden Ansichten ist leider die gleiche.

Für WordPress User gibt es das Shirtee WordPress Plugin (Link).

Tutorial Shirtee Shop in eigene Webseite einbinden

Die folgenden PHP Codes jeweils in eine .php Datei kopieren und von dieser den Source Code mittels (Beispiel:) "view-source:http://www.example.com/shirteephpcode.php" aufrufen, oder die .php Datei auf der Kommandozeile starten und das Ergebnis in eine Datei schreiben lassen (php shirtee.php >sourcecode.txt).

Wichtig: Was benötigt wird ist nicht die Browser-Ansicht, die von diesem PHP Script erzeugt wird (weil da noch das CSS fehlt), sondern der Quelltext, der über (Beispiel:) "view-source:http://www.example.com/path/to/shirteephpscript.php" einsehbar ist und von dort kopiert werden kann.


1. Methode (Produktbilder immer von Shirtee laden)

Mit diesem PHP Script wird ein Quellcode erzeugt, bei dem die <img src="..."> gleich bleibt, also die Produktbilder-Source ist shirtee.com. Die Produktbilder werden bei jedem Aufruf des später eingebundenen Quelltextes immer von shirtee.com geladen.

Im PHP Script muss folgendes angepasst werden:
  1. URL zum Shop
  2. Anzahl der anzuzeigenden Produkte
<?php
// YOUR SHIRTEE SHOP URL
$shirteeshopurl = "https://www.shirtee.com/de/store/myshop/";
//
// THE LIMIT FOR DISPLAYING PRODUCTS (24/32/48)
$shirteeshoplimit = "48";
//
// Extract the Store Name for the URL Query String
$shirteeshopurlexplode = explode("/", $shirteeshopurl);
$shirteestorename = $shirteeshopurlexplode[5];
//
$shirteeshopurllimit = $shirteeshopurl . "?limit=" . $shirteeshoplimit;
$shirteeshop = file_get_contents($shirteeshopurllimit);
//
if (((bool) $shirteeshop === true)) {
$shirteeshopexplodeone = explode('<ul class="products', $shirteeshop);
$shirteeshopexplode = explode('</div></div></div></div></li></ul>', $shirteeshopexplodeone[1]);
$shirteeshopold = '<div class="products' . $shirteeshopexplode[0] . '</div></div></div></div></li></div>';
//
// Put the URL Querystring at the campaign URLs START
$shirteestorecampaignhrefarray = [];
$shirteestorecampaignhrefnewarray = [];
$shirteestorecampaignhrefmatchesunique = array_unique($shirteestorecampaignhrefmatches[2]);
$shirteestorecampaignhrefmatchesuniquenew = array_values($shirteestorecampaignhrefmatchesunique);
//
for ($i = 0; $i < count($shirteestorecampaignhrefmatchesuniquenew); $i++ ) {
//
$shirteestorecampaignhref = $shirteestorecampaignhrefmatchesuniquenew[$i];
array_push($shirteestorecampaignhrefarray, $shirteestorecampaignhref);
//
if (strpos($shirteestorecampaignhref, "?")) {
$shirteestorecampaignhrefnew = $shirteestorecampaignhref . '&amp;shop=' . $shirteestorename;
} else {
$shirteestorecampaignhrefnew = $shirteestorecampaignhref . '?shop=' . $shirteestorename;
}
//
array_push($shirteestorecampaignhrefnewarray, $shirteestorecampaignhrefnew);
//
}
$shirteeshopold = str_replace($shirteestorecampaignhrefarray, $shirteestorecampaignhrefnewarray, $shirteeshopold);
// Put the URL Querystring at the campaign URLs END
$shirteeshopspacetonewline = preg_replace("/>\s</", ">\n<", $shirteeshopold);
$shirteeshoplitodiv = preg_replace("/<\/li><li/", "</div>\n\n<div", $shirteeshopspacetonewline);
$shirteeshoplitodiv = str_replace("<li", "\n\n<div", $shirteeshoplitodiv);
$shirteeshopnew = str_replace("li>", "div>\n\n", $shirteeshoplitodiv);
//
echo '<div class="shirteeshop">';
echo $shirteeshopnew;
echo '</div>';
}
?>
Diese Methode eignet sich zum einbinden in Wordpress.

Hinweis: Das CSS Stylesheet nicht vergessen (unten).


2. Methode (Produktbilder in ein Verzeichnis speichern) recommended/empfohlen

Mit diesem PHP Script wird ein Quellcode erzeugt, bei dem die Produktbilder in ein Verzeichnis gespeichert werden. Die <img src="..."> ist dann eine absolute oder relative unter der eigenen Domain (Bitte .htaccess "Base" beachten!). Die Produktbilder werden bei jedem Aufruf des später eingebundenen Quelltextes vom eigenen Server/Webhost geladen.

Im PHP Script muss folgendes angepasst werden:
  1. URL zum Shop
  2. Anzahl der anzuzeigenden Produkte
  3. Verzeichnisname für den Speicherort der Produktbilder
  4. Pfad zu den gespeicherten Produktbildern OHNE den Verzeichnisnamen
<?php
// YOUR SHIRTEE SHOP URL
$shirteeshopurl = "https://www.shirtee.com/de/store/shopname/";
//
// THE LIMIT FOR DISPLAYING PRODUCTS (24/32/48)
$shirteeshoplimit = "48";
//
// Extract the Store Name for the URL Query String
$shirteeshopurlexplode = explode("/", $shirteeshopurl);
$shirteestorename = $shirteeshopurlexplode[5];
//
// THE FOLDER-NAME FOR IMAGE SAVING ON YOUR WEBHOST
$shirteeshopimagesdir = "shirteeimages"; // relative path
//
$shirteeshopurllimit = $shirteeshopurl . "?limit=" . $shirteeshoplimit;
$shirteeshop = file_get_contents($shirteeshopurllimit);
if (!file_exists($shirteeshopimagesdir)) {
mkdir($shirteeshopimagesdir, 0755);
}
if (((bool) $shirteeshop === true)) {
$shirteeshopexplodeone = explode('<ul class="products', $shirteeshop);
$shirteeshopexplode = explode('</div></div></div></div></li></ul>', $shirteeshopexplodeone[1]);
$shirteeshopold = '<div class="products' . $shirteeshopexplode[0] . '</div></div></div></div></li></div>';
//
preg_match_all("/(src=\"(.*?)\")/", $shirteeshopold, $shirteestoreimgsrcmatches, PREG_PATTERN_ORDER);
//
$shirteestoreimagesrcurlarray = [];
$shirteestorenewimagessourcepatharray = [];
for ($i = 0; $i < count($shirteestoreimgsrcmatches[2]); $i++ ) {
//
$shirteestoreimagesrcurl = $shirteestoreimgsrcmatches[2][$i];
array_push($shirteestoreimagesrcurlarray, $shirteestoreimagesrcurl);
//
$shirteeshopimagesurlexplode = explode("/", $shirteestoreimagesrcurl);
$shirteeshopimagesfilename = end($shirteeshopimagesurlexplode);
$shirteeshopimagesdirfilename = $shirteeshopimagesdir . "/" . $shirteeshopimagesfilename;
//
if (!file_exists($shirteeshopimagesdirfilename)) {
$shirteeshopimagecreatefrompng = imagecreatefrompng($shirteestoreimagesrcurl);
imagealphablending($shirteeshopimagecreatefrompng, false);
imagesavealpha($shirteeshopimagecreatefrompng, true);
imagepng($shirteeshopimagecreatefrompng, $shirteeshopimagesdirfilename, 9, PNG_ALL_FILTERS);
}
//
// YOUR ABSOLUTE OR RELATIVE PATH TO THE SAVED IMAGES (for the source code <img src="...">)
$shirteestorenewimagessourcepath = "/" . $shirteeshopimagesdirfilename;
array_push($shirteestorenewimagessourcepatharray, $shirteestorenewimagessourcepath);
//
}
$shirteeshopold = str_replace($shirteestoreimagesrcurlarray, $shirteestorenewimagessourcepatharray, $shirteeshopold);
//
// Extract the Shirtee Store Campaign URLs
preg_match_all("/(href=\"(.*?)\")/", $shirteeshopold, $shirteestorecampaignhrefmatches, PREG_PATTERN_ORDER);
//
// Put the URL Querystring at the campaign URLs START
$shirteestorecampaignhrefarray = [];
$shirteestorecampaignhrefnewarray = [];
$shirteestorecampaignhrefmatchesunique = array_unique($shirteestorecampaignhrefmatches[2]);
$shirteestorecampaignhrefmatchesuniquenew = array_values($shirteestorecampaignhrefmatchesunique);
//
for ($i = 0; $i < count($shirteestorecampaignhrefmatchesuniquenew); $i++ ) {
//
$shirteestorecampaignhref = $shirteestorecampaignhrefmatchesuniquenew[$i];
array_push($shirteestorecampaignhrefarray, $shirteestorecampaignhref);
//
if (strpos($shirteestorecampaignhref, "?")) {
$shirteestorecampaignhrefnew = $shirteestorecampaignhref . '&amp;shop=' . $shirteestorename;
} else {
$shirteestorecampaignhrefnew = $shirteestorecampaignhref . '?shop=' . $shirteestorename;
}
//
array_push($shirteestorecampaignhrefnewarray, $shirteestorecampaignhrefnew);
//
}
$shirteeshopold = str_replace($shirteestorecampaignhrefarray, $shirteestorecampaignhrefnewarray, $shirteeshopold);
// Put the URL Querystring at the campaign URLs END
//
$shirteeshopnewline = preg_replace("/>\s</", ">\n<", $shirteeshopold);
$shirteeshoplidiv = preg_replace("/<\/li><li/", "</div>\n\n<div", $shirteeshopnewline);
$shirteeshoplidiv = str_replace("<li", "\n\n<div", $shirteeshoplidiv);
$shirteeshoplidiv = str_replace("li>", "div>\n\n", $shirteeshoplidiv);
$shirteeshopnew = str_replace('href="', 'target="_blank" href="', $shirteeshoplidiv);
//
//
echo '<div class="shirteeshop">';
echo $shirteeshopnew;
echo '</div>';
//
}
//
?>
Hinweise:
  1. Das Verzeichnis mit den gespeicherten Produktbildern nicht vergessen.
  2. Das CSS Stylesheet nicht vergessen (unten)
Hinweis Methode 1 und 2: Es ist nicht empfohlen die beiden PHP Scripts für den dauerhaften Gebrauch in die eigene Webseite einzubinden, weil bei jedem Aufruf der komplette Quelltext der angegebenen Shirtee-Shop-Webseite gedownloaded wird.

Besser: anstatt "echo $shirteeshopnew;" zu verwenden besser das Ergebnis in eine Datei schreiben lassen und per "include" in die Webseite einbinden.

Automatisierung: Die Möglichkeit einer Automatisierung besteht, indem für das PHP Script ein cron job angelegt wird, bei dem das Ergebnis, also der generierte Source Code, in eine Datei geschrieben wird und diese Datei per PHP include in die Webseite eingebunden wird.


3. Das CSS Stylesheet

Das CSS Stylesheet erzeugt die selbe Ansicht mit Effekten wie im eigenen Shirtee Shop und muss in die eigene Webseite eingebunden werden. Entweder per <style></style> in den HTML <head> der Webseite, oder in eine per <link rel="stylesheet" href="styles.css"> verlinkte .css Datei.
/* Shirteeshop Original CSS BEGIN */
.shirteeshopdiv .products-grid {
    max-width: 1114px;
    margin: 0 auto;
padding: 0;
text-align: center;
}
.shirteeshopdiv .products-grid .item {
    width: 23%;
    margin: 0.5%;
    display: inline-block;
}
.shirteeshopdiv .products-grid-campaigns .item {
    margin-bottom: 12px;
    background: #fff;
    border-radius: 1px;
    border: 1px solid #ccc;
    -webkit-transition: transform .2s linear 0s;
    -moz-transition: transform .2s linear 0s;
    -o-transition: transform .2s linear 0s;
    transition: transform .2s linear 0s;
    z-index: 1;
vertical-align: top;
}
.shirteeshopdiv .products-grid-campaigns .product-image .product-image-zoom {
    -webkit-transition: all .2s linear 0s;
    -moz-transition: all .2s linear 0s;
    -o-transition: all .2s linear 0s;
    transition: all .2s linear 0s;
}
.shirteeshopdiv .products-grid .product-image img {
    width: 100%;
    height: auto;
}
.shirteeshopdiv .products-grid-campaigns .product-info {
    padding-bottom: 0;
    padding: 0;
    text-align: left;
    padding: 10px 18px 10px;
    padding-bottom: 10px;
    background: #f0f0f0;
    border-top: 1px solid #b5b5b5;
}
.shirteeshopdiv .products-grid .product-info {
    position: relative;
    padding-bottom: 65px;
}
.shirteeshopdiv .products-grid-campaigns .product-name {
    font-size: 19px;
    font-weight: 400;
    color: #000;
    text-align: left;
    margin: 0 0 7px;
    line-height: 24px;
    height: 24px;
    overflow: hidden;
    font-family: 'Open Sans',sans-serif;
    font-weight: 400;
    text-overflow: ellipsis;
    -webkit-transition: all .2s linear 0s;
    -moz-transition: all .2s linear 0s;
    -o-transition: all .2s linear 0s;
    transition: all .2s linear 0s;
}
.shirteeshopdiv .products-grid .product-name, .products-list .product-name {
    text-transform: uppercase;
    margin-bottom: 5px;
    font-family: "Raleway","Helvetica Neue",Verdana,Arial,sans-serif;
}
.shirteeshopdiv .products-grid h2.product-name, h3.product-name, h4.product-name, h5.product-name, p.product-name {
    margin: 0;
    margin-bottom: .5em;
    color: #636363;
    font-family: "Raleway","Helvetica Neue",Verdana,Arial,sans-serif;
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
    text-rendering: optimizeLegibility;
    text-transform: uppercase;
    font-family: "Helvetica Neue",Verdana,Arial,sans-serif;
    font-weight: normal;
    line-height: 1.4;
}
.shirteeshopdiv .products-grid-campaigns .product-name a {
    color: #000;
    text-decoration: none;
    text-transform: uppercase;
    font-family: 'Open Sans',sans-serif;
    font-weight: 400;
}
.shirteeshopdiv .products-grid-campaigns .price-box-text {
    float: left;
    font-size: 14px;
    padding: 8px 0 0;
    color: #939393;
white-space: nowrap;
}
.shirteeshopdiv .products-grid-campaigns .price-box {
    margin: 0;
    float: right;
    color: #a0a0a0;
    font-size: 13px;
    margin: 0 0 5px;
white-space: nowrap;
}
.shirteeshopdiv .products-grid-campaigns .price-box .price {
    font-weight: 700;
    font-size: 22px;
    font-weight: 600;
    font-family: 'Open Sans',sans-serif;
    color: #39c;
    line-height: 26px;
}
.shirteeshopdiv .products-grid-campaigns .item:hover {
    -webkit-transform: scale(1.03);
    -moz-transform: scale(1.03);
    -ms-transform: scale(1.03);
    -o-transform: scale(1.03);
    transform: scale(1.03);
    z-index: 2;
    -webkit-box-shadow: 0 0 10px 0 rgba(28,28,28,.4);
    box-shadow: 0 0 10px 0 rgba(28,28,28,.4);
}
.shirteeshopdiv .products-grid-campaigns .product-image:hover .product-image-zoom {
    -webkit-transform: scale(1.4);
    -moz-transform: scale(1.4);
    -ms-transform: scale(1.4);
    -o-transform: scale(1.4);
    transform: scale(1.4);
}
.shirteeshopdiv .products-grid-campaigns .product-image {
    position: relative;
    padding: 0;
    margin: 10px;
    display: block;
    overflow: hidden;
    width: calc(100% - 20px);
}
.shirteeshopdiv .products-grid-campaigns .item:hover .product-info {
    border-radius: 0 0 3px 3px;
}
.shirteeshopdiv .products-grid-campaigns .item:hover .product-name {
    max-height: 80px;
    height: auto;
    white-space: normal;
}
.shirteeshopdiv .products-grid h2.product-name a:hover, h3.product-name a:hover, h4.product-name a:hover, h5.product-name a:hover, p.product-name a:hover {
    color: #39c;
    text-decoration: none;
}
/* Shirteeshop Original CSS END */

Keine Garantie. Keine Gewährleistung. Kein Support.
Verwendung auf eigenes Risiko.
Weiterlesen »

Freitag, 2. Februar 2018

Shirtee-Shop per Shop CSV in die eigene Webseite einbinden

Shirtee ist einer von vielen POD (Print on Demand) Anbietern, die ihren Partnern einen Marktplatz und ein Shop-System anbieten. Beide liegen unter der Domain von Shirtee. Für das Anbieten der eigenen Shirtee-Produkte auf der eigenen Webseite bietet Shirtee derzeit noch keine eigenständige Möglichkeit. Shirtee bietet aber eine CSV Datei für Amazon-Händler und Facebook-Marketing mit den wichtigsten Produkt-Informationen. Mit dieser CSV Datei und PHP können die eigenen Shirtee-Produkte in der eigenen Webseite angezeigt werden.

UPDATE: Die Methode per CSV Shop Datei taugt nicht besonders. In der CSV Datei sind Produktbilder aller möglichen Versionen der Produkte und aller Produktfarben. Es ist nicht so einfach hier Filter einzubauen, damit nicht wahllos alle angezeigt werden.
HIER ist eine Methode ohne CSV Datei erklärt: Shirtee-Shop embedded (Link).

Für WordPress User gibt es das Shirtee WordPress Plugin (Link).

Update 11/2018: Es gab ein Update in der Shirtee-Website-Software. Es ist von daher möglich, dass das folgende Tutorial nicht mehr funktioniert. Die Verwendung des folgenden Codes bitte nur auf eigene Verantwortung verwenden.

Shirtee-Shop in eigene Webseite einbinden


Tutorial Shirtee-Shop per SHOP CSV in eigene Webseite einbinden

Es bestehen 2 Methoden. Bei der ersten Methode werden die Produktbilder immer von Shirtee geladen, bei der zweiten Methode werden die Produktbilder (wenn noch nicht vorhanden) zuerst auf dem eigenen Server/Webhost gespeichert.

Mit diesen beiden Methoden wird nicht ein kompletter Shirtee-Shop in die eigene Webseite eingebunden, sondern werden nur automatisiert die Produkt-Grafiken mit Produkt-Titel, Produkt-Beschreibung, Produkt-Preis und Produkt-Link zum Shirtee-Shop in die eigene Webseite eingebunden.
(Hinweis: Verlinkung der Produktbilder aktuell wegen eines Bugs nach Zufallsprinzip mit Ziel entweder Marktplatz oder eigener Shirtee-Shop [02.02.2018]).

Was benötigt wird:
  • CSV Datei aus einem Shirtee-Shop
  • Eigene Webseite
  • Zugang zu einem Server/Webhost-Verzeichnis mit PHP (evtl. noch ImageMagick).

1.) CSV Datei download

Die CSV Datei ist bei Shirtee im Login-Bereich unter dem linken Sidebar Menüpunkt "Shops" zu erreichen.
Für jeden erstellten Shirtee-Shop gibt es eine extra CSV Datei mit CSV download. Der Donwloadlink ist an dem CSV Symbol zu erkennen.

Shirtee-Shop in eigene Webseite einbinden


2.) CSV Datei upload

Diese Shirtee-Shop CSV Datei jetzt auf dem eigenen Server/Webhost speichern.


3.) PHP Script einbinden

Als nächstes das folgende PHP Script in die eigene Webseite einbinden und einige Parameter anpassen.
Das Script muss in den HTML <body>.
Anzupassen ist der Verweis zur CSV Datei. Wenn der Shop in einem CMS in mehreren Webseiten angezeigt werden soll, dann bitte einen absoluten Verweis verwenden.
Die Reihenfolge der Produkte kann Vorwärts oder Rückwärts sortiert werden. (Mehr Möglichkeiten bestehen derzeit noch nicht).

1. Methode - Produktbilder immer von Shirtee laden (nicht empfohlen)
<div class="shirteeshop">
<div class="shirteeshopheader">My Privat Shirtee-Shop</div>
<div class="shirteeshopdescription">T-Shirts - Girlies - Tank-Tops - Sweatshirts</div>
<?php
// PATH TO CSV FILE - Please swap the "//" at the beginning of the line.
// relativer Pfad
$shirteecsvfile = file('shopname_facebook_feed.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// absoluter Pfad
//$shirteecsvfile = file('/var/www/html/shopname_facebook_feed.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// URL Pfad
//$shirteecsvfile = file('https://www.example.com/shopname_facebook_feed.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
//
// SORT: swap the "//" at the beginning of the line.
for ($i = 0; $i < count($shirteecsvfile); $i++ ) { // sort forward
//for ($i = (count($shirteecsvfile) -1); $i > -1; $i-- ) { // sort backward
//
$shirteecsvfileexplode = explode(";", $shirteecsvfile[$i]);
//
// BCTU004_16 - T-Shirt Männer
// A880_16 - T-Shirt Frauen (Girlie)
// G64200_16 - Tank-Top Männer
// 3361_16 - Tank-Top Frauen
// JH030_1624 - Sweatshirt Unisex
// PRODUCT ID EINFÜGEN - eine oder zwei (oder selbst erweitern) - Please swap the "//" at the beginning of the line.
if (strpos($shirteecsvfileexplode[0], "BCTU004_16")) {
//if (strpos($shirteecsvfileexplode[0], "BCTU004_16") || strpos($shirteecsvfileexplode[0], "A880_16")) {
//
$shirteecsvfileexplodelinkexplode = explode("?", $shirteecsvfileexplode[5]);
$shirteecsvfileexplodelink = $shirteecsvfileexplodelinkexplode[0];
$shirteecsvfileexplodeimgurl = $shirteecsvfileexplode[4];
$shirteecsvfileexplodetitle = preg_replace("/(^\"|\"$)/", "", $shirteecsvfileexplode[6]);
$shirteecsvfileexplodeprice = preg_replace("/(^\"|\"$)/", "", $shirteecsvfileexplode[7]);
$shirteecsvfileexplodedescription = preg_replace("/(^\"|\"$)/", "", $shirteecsvfileexplode[3]);
//
echo '<div class="shirteeproductdiv">';
echo '<div class="shirteeproductimgdiv"><a href="' . $shirteecsvfileexplodelink . '" target="_blank">';
echo '<img class="shirteeproductimg" src="' . $shirteecsvfileexplodeimgurl . '" width="200px" height="" alt="' . $shirteecsvfileexplodetitle . '" title="' . $shirteecsvfileexplodetitle . '">';
echo '</a></div>';
echo '<div class="shirteeproducttitlediv"><span>' . $shirteecsvfileexplodetitle . '</span></div>';
echo '<div class="shirteeproductpricediv"><span>' . $shirteecsvfileexplodeprice . '</span></div>';
echo '<div class="shirteeproductdescriptiondiv"><span>' . $shirteecsvfileexplodedescription . '</span></div>';
echo '</div>';
echo "\n";
}
}
?>
</div>
Die Auswahl der Produkte wird mittels der (gekürzten) Produkt-ID vorgenommen. Die Produkt-IDs können der CSV Datei entnommen werden. Einige Produkt-IDs sind im PHP Script vermerkt. Es ist möglich die PHP if-Regel mit einem ODER (||) zu erweitern, dann können mehrere Produkte angezeigt werden.


2. Methode - Produktbilder auf eigenem Server/Webhost speichern (empfohlen/recommended) 

Mit diesem Script werden die Produktbilder zuerst von Shirtee gedownloaded und auf dem eigenen Server/Webhost gespeichert, wenn sie dort noch nicht vorhanden sind.
Die URLs der Produktbilder aus der CSV Datei haben eine falsche Dateiendung (File Extension). Es sind keine "jpeg", sondern "png" Dateien. Im Script wird die File Extension geändert.
Bitte das Ziel-Verzeichnis für das Speichern der Produktbilder im PHP Script angeben (Vorauswahl: "shirteeimages").
<div class="shirteeshop">
<div class="shirteeshopheader">My Private Shirtee Shop</div>
<div class="shirteeshopdescription">T-Shirts - Girlies - Tank-Tops - Sweatshirts</div>
<?php
// PATH TO CSV FILE - Please swap the "//" at the beginning of the line.
// relativer Pfad
$shirteecsvfile = file('shopname_facebook_feed.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// absoluter Pfad
//$shirteecsvfile = file('/var/www/html/shopname_facebook_feed.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// URL Pfad
//$shirteecsvfile = file('https://www.example.com/shopname_facebook_feed.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
//
// SORT: Please swap the "//" at the beginning of the line.
for ($i = 0; $i < count($shirteecsvfile); $i++ ) { // sort forward
//for ($i = (count($shirteecsvfile) -1); $i > -1; $i-- ) { // sort backward
//
$shirteecsvfileexplode = explode(";", $shirteecsvfile[$i]);
//
// BCTU004_16 - T-Shirt Männer
// A880_16 - T-Shirt Frauen (Girlie)
// G64200_16 - Tank-Top Männer
// 3361_16 - Tank-Top Frauen
// JH030_1624 - Sweatshirt Unisex
// PRODUCT ID EINFÜGEN - eine oder zwei (oder selbst erweitern) - Please swap the "//" at the beginning of the line.
if (strpos($shirteecsvfileexplode[0], "BCTU004_16")) {
//if (strpos($shirteecsvfileexplode[0], "BCTU004_16") || strpos($shirteecsvfileexplode[0], "A880_16")) {
//
$shirteecsvfileexplodelinkexplode = explode("?", $shirteecsvfileexplode[5]);
$shirteecsvfileexplodelink = $shirteecsvfileexplodelinkexplode[0];
$shirteecsvfileexplodeimgurl = $shirteecsvfileexplode[4];
$shirteecsvfileexplodetitle = preg_replace("/(^\"|\"$)/", "", $shirteecsvfileexplode[6]);
$shirteecsvfileexplodeprice = preg_replace("/(^\"|\"$)/", "", $shirteecsvfileexplode[7]);
$shirteecsvfileexplodedescription = preg_replace("/(^\"|\"$)/", "", $shirteecsvfileexplode[3]);
//
// DIRECTORY TO SAVE THE IMAGES - it's possible: "../../path/to/shirteeimages" (don't set a "/" at the start).
$shirteeimagesdir = "shirteeimages"; // relative path
if (!file_exists($shirteeimagesdir)) {
mkdir($shirteeimagesdir, 0755);
}
$shirteeimagespath = explode("/", $shirteecsvfileexplodeimgurl);
$shirteeimagesfilename = end($shirteeimagespath);
$shirteeimagesfilenamepng = preg_replace('"\.(jpeg)$"', '.png', $shirteeimagesfilename);
$shirteeimagespathfilename = $shirteeimagesdir . "/" . $shirteeimagesfilenamepng;
if (!file_exists($shirteeimagespathfilename)) {
$shirteecsvfileexplodeimg = imagecreatefrompng($shirteecsvfileexplodeimgurl);
imagepng($shirteecsvfileexplodeimg, $shirteeimagespathfilename, 9, PNG_ALL_FILTERS);
//
// PRODUKTBILDER RESIZE WENN IMAGEMAGICK INSTALLIERT: remove the "//" at the beginning of the second line.
$shirteeimagesresize = "mogrify -path " . $shirteeimagesdir . " -format png -resize 345x377 " . $shirteeimagespathfilename;
//shell_exec($shirteeimagesresize);
}
//
echo '<div class="shirteeproductdiv">';
echo '<div class="shirteeproductimgdiv"><a href="' . $shirteecsvfileexplodelink . '" target="_blank">';
echo '<img class="shirteeproductimg" src="' . $shirteeimagespathfilename . '" width="200px" height="" alt="T-Shirt Tank-Top Sweatshirt ' . $shirteecsvfileexplodetitle . '" title="T-Shirt Tank-Top Sweatshirt ' . $shirteecsvfileexplodetitle . '">';
echo '</a></div>';
echo '<div class="shirteeproducttitlediv"><span>' . $shirteecsvfileexplodetitle . '</span></div>';
echo '<div class="shirteeproductpricediv"><span>' . $shirteecsvfileexplodeprice . '</span></div>';
echo '<div class="shirteeproductdescriptiondiv"><span>' . $shirteecsvfileexplodedescription . '</span></div>';
echo '</div>';
echo "\n";
}
}
?>
</div>
INFO: Die Produktbild-Dateien haben eine sehr große Dateigröße bei 577x630 Pixel PNG. Ein Resize Image ist im Script eingebaut und kann freigeschalten werden, wenn ImageMagick auf dem Server installiert ist.

Check on the command line if ImageMagick is installed on the server:
mogrify --version


4.) CSS Stylesheet (Beispiel)

Jetzt noch ein passendes CSS Stylesheet dazu in die Webseite kopieren.
.shirteeshop {
width: 970px;
margin: 0 auto;
text-align: center;
border-top-style: dotted;
border-top-color: #0f0;
border-top-width: 6px;
border-bottom-style: dotted;
border-bottom-color: #0f0;
border-bottom-width: 6px;
padding-bottom: 20px;
}
.shirteeshopheader {
font-size: 3em;
font-weight: bold;
margin-top: 20px;
margin-bottom: 20px;
}
.shirteeshopdescription {
font-size: 1.4em;
margin-bottom: 20px;
}
.shirteeproductdiv {
width: 220px;
display: inline-block;
vertical-align: top;
margin: 5px;
}
.shirteeproductimgdiv {
padding: 5px;
}
.shirteeproductimg {
border: none;
border-radius: 10px;
}
.shirteeproducttitlediv {
font-weight: bold;
text-transform: uppercase;
}
.shirteeproductpricediv {
color: #080;
font-weight: bold;
text-decoration: underline;
}
.shirteeproductdescriptiondiv {
color: #666;
}
.shirteeproductimg:hover {
transform: scale(1.5,1.5);
border-style: dashed;
border-color: #0f0;
border-width: 15px;
border-radius: 30px;
}
Das Ergebnis:
Shirtee-Shop in eigene Webseite einbinden

5.) Sortierung und WORDPRESS

Für eine manuelle Sortierung, oder für das Einbinden in Wordpress, jetzt einfach den HTML Quellcode kopieren, die Produkte sortieren und anstatt dem PHP Script diesen Quellcode in die eigene Webseite sowie einen Wordpress-Artikel oder eine Wordpress-Page kopieren und das CSS Stylesheet sowie bei Methode 2 die Produktbilder nicht vergessen.


Keine Garantie. Keine Gewährleistung. Kein Support.
Verwendung auf eigenes Risiko.

Weiterlesen »